WebhooksEvent catalogGamification
gamification.streak.advanced
Version 1 of the gamification.streak.advanced webhook event.
The gamification.streak.advanced event.
| Event type | gamification.streak.advanced |
| Schema version | 1 |
| Routing key | event.gamification.streak.advanced.v1 |
| Produced by | Gamification |
| Schema | urn:defendr:contract:gamification:streak-advanced:1 |
data fields
| Field | Type | Required | Description |
|---|---|---|---|
accountId | string | yes | |
playerId | string | yes | |
currentStreak | integer | yes | |
longestStreak | integer | yes | |
activityDate | string | yes | |
milestone | object or null | yes | |
milestone.days | integer | yes | |
milestone.rewardKey | string | yes | |
advancedAt | string (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"
}
}
}