TANITARDevelopers
WebhooksEvent catalogGamification

gamification.streak.advanced

Version 1 of the gamification.streak.advanced webhook event.

The gamification.streak.advanced event.

Event typegamification.streak.advanced
Schema version1
Routing keyevent.gamification.streak.advanced.v1
Produced byGamification
Schemaurn:defendr:contract:gamification:streak-advanced:1

data fields

FieldTypeRequiredDescription
accountIdstringyes
playerIdstringyes
currentStreakintegeryes
longestStreakintegeryes
activityDatestringyes
milestoneobject or nullyes
milestone.daysintegeryes
milestone.rewardKeystringyes
advancedAtstring (date-time)yes

Some fields are required only in particular states. The JSON Schema below is authoritative.

Example delivery

Signed with the example secret whsec_placeholder_example_webhooks_signing_secret, so you can check your verifier against it. See Verifying signatures.

POST /your/webhook/endpoint HTTP/1.1
content-type: application/json
webhook-id: whd_00000000-0000-4000-8000-000000000019
webhook-timestamp: 1800000000
webhook-signature: v1,ZxxDJUbhO0wnVEMicrWpuGhFfNC2el2yhROmZsMKzr4=
tanitar-event-type: gamification.streak.advanced
tanitar-schema-version: 1
tanitar-delivery-attempt: 1

{"messageId":"evt_00000000-0000-4000-8000-000000000019","kind":"event","type":"gamification.streak.advanced","schemaVersion":1,"occurredAt":"2027-01-15T10:00:00.000Z","producer":"gamification-service","accountId":"acc_11111111-1111-4111-8111-111111111111","correlationId":"corr_00000000-0000-4000-8000-000000000019","data":{"accountId":"acct_demo","playerId":"player_demo","currentStreak":7,"longestStreak":7,"activityDate":"2026-09-08","milestone":{"days":7,"rewardKey":"weekly-legend"},"advancedAt":"2026-09-08T00:00:00.000Z"}}

The same body, formatted:

{
  "messageId": "evt_00000000-0000-4000-8000-000000000019",
  "kind": "event",
  "type": "gamification.streak.advanced",
  "schemaVersion": 1,
  "occurredAt": "2027-01-15T10:00:00.000Z",
  "producer": "gamification-service",
  "accountId": "acc_11111111-1111-4111-8111-111111111111",
  "correlationId": "corr_00000000-0000-4000-8000-000000000019",
  "data": {
    "accountId": "acct_demo",
    "playerId": "player_demo",
    "currentStreak": 7,
    "longestStreak": 7,
    "activityDate": "2026-09-08",
    "milestone": {
      "days": 7,
      "rewardKey": "weekly-legend"
    },
    "advancedAt": "2026-09-08T00:00:00.000Z"
  }
}

JSON Schema

urn:defendr:contract:gamification:streak-advanced:1
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:defendr:contract:gamification:streak-advanced:1",
  "title": "Gamification daily streak advanced event payload",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "accountId",
    "playerId",
    "currentStreak",
    "longestStreak",
    "activityDate",
    "milestone",
    "advancedAt"
  ],
  "properties": {
    "accountId": {
      "type": "string",
      "minLength": 1
    },
    "playerId": {
      "type": "string",
      "minLength": 1
    },
    "currentStreak": {
      "type": "integer",
      "minimum": 1
    },
    "longestStreak": {
      "type": "integer",
      "minimum": 1
    },
    "activityDate": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    },
    "milestone": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": false,
      "required": [
        "days",
        "rewardKey"
      ],
      "properties": {
        "days": {
          "type": "integer",
          "minimum": 1
        },
        "rewardKey": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "advancedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}

On this page