Skip to main content

Webhooks

Request format​

Data sending is performed via POST-request to the url adress specified in options. The payload is sent via JSON in request body. For additional security X-signature header is sent, which contains the HMAC SHA256 request body signature based on a secret key in the options.

All events contain following fields:

ParameterDescription
event_idUnique event identifier, 32 character string
event_nameName of an event
timestamp_msTime of creation in milliseconds

Other fields depend on the type

In case of successful event handling the client must send a response containing HTTP status code 2xx, otherwise the the attempts to send data will persist.

Story statuses​

ValueDescription
0Draft, currently in work by another user
1Published
2Deleted
3Archived
4In moderation
5Approved
6Declined

Events​

Story status change​

Appears after any change of story's status.

event_name: story-status-changed

ParameterDescription
storyObject, contains story data
story.idStory's unique number identifier
story.statusCurrent story status
story.titleStory title
story.displayFromTimestamp of the story display start UNIX TIMESTAMP
uint32 or NULL
story.displayToTimestamp of the story display end UNIX TIMESTAMP
uint32 or NULL
story.expressionStory display conditions
String or NULL
changesInformation about changes
changes.statusChanged field
changes.status.previousPrevious story status
changes.status.currentCurrent story status

Notification example

{
"story": {
"id": 6496,
"status": 5,
"title": "story #6496"
},
"changes": {
"status": {
"previous": 6,
"current": 5
}
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "story-status-changed",
"timestamp_ms": 1655728818761
}

UGC story moderation​

event_name: ugc-story-moderation

ParameterTypeDescription
ugcStoryobjectObject containing story information
ugcStory.idunsigned integerStory's unique number identifier
ugcStory.statusunsigned integerCurrent story status
ugcStory.externalUserIdstring or nullUnique user identifier in partner's app
ugcStory.payloaddynamic objectObject containing additional story data
ugcStory.hasVideobooleanHas video flag

Notification example

{
"ugcStory": {
"id": 12,
"status": 6,
"externalUserId": "ext-10",
"hasVideo": false,
"payload": {
"prop1": "alpha",
"prop2": "omega"
}
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "ugc-story-moderation",
"timestamp_ms": 1655728818761
}

UGC Story approval​

event_name: ugc-story-approve

ParameterTypeDescription
ugcStoryobjectObject containing story information
ugcStory.idunsigned integerStory's unique number identifier
ugcStory.statusunsigned integerCurrent story status
ugcStory.externalUserIdstring or nullUnique user identifier in partner's app
ugcStory.payloaddynamic objectObject containing additional story data
ugcStory.commentstring or nullCommentary
ugcStory.hasVideobooleanHas video flag

Notification example

{
"ugcStory": {
"id": 12,
"status": 5,
"externalUserId": "ext-10",
"comment": null,
"hasVideo": false,
"payload": {
"prop1": "alpha",
"prop2": "omega"
}
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "ugc-story-approve",
"timestamp_ms": 1655728818761
}

UGC Story declination​

event_name: ugc-story-decline

ParameterTypeDescription
ugcStoryobjectObject containing story information
ugcStory.idunsigned integerStory's unique number identifier
ugcStory.statusunsigned integerCurrent story status
ugcStory.externalUserIdstring or nullUnique user identifier in partner's app
ugcStory.payloaddynamic objectObject containing additional story data
ugcStory.commentstring or nullCommentary
ugcStory.hasVideobooleanHas video flag

Notification example

{
"ugcStory": {
"id": 12,
"status": 6,
"externalUserId": "ext-10",
"comment": "comment text place",
"hasVideo": false,
"payload": {
"prop1": "alpha",
"prop2": "omega"
}
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "ugc-story-decline",
"timestamp_ms": 1655728818761
}

Game webhook​

General parameters

ParameterTypeDescription
gameobjectObject containing game information
game.idunsigned integerUnique game number identifier
game.gamestringGame name
userobjectObject containing user information
user.externalUserIdstring or nullUnique user identifier in partner's app
payloaddynamic objectAdditional game info. Will vary game to game
event_idstringGenerated event id
event_namestringName of the fired event
timestamp_msunsigned integerTimestamp of event in milliseconds

Payload examples​

Fifteen puzzle​

ParameterTypeDescription
tryIdunsigned integerUnique try id
typestringGame result type: "win" or "lose"
durationunsigned integerGame duration
movesunsigned integerMoves count

Notification example

{
"game": {
"id": 2893,
"game": "boxed-fifteen"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98841037,
"type": "win",
"duration": 13,
"moves": 5
},
"event_id": "0QoSbrTxxwB7pMReUm7BTYWCQnYRKWx1",
"event_name": "game-end",
"timestamp_ms": 1771239460714
}

Wheel of fortune​

ParameterTypeDescription
tryIdunsigned integerUnique try id
sectorIndexunsigned integerIndex of sector(starts from 0) created in game settings

Notification example

{
"game": {
"id": 3159,
"game": "boxed-wheel"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98841070,
"sectorIndex": 6
},
"event_id": "4HskAiRNkNQ9cHSCGUDzRJ5M1jSNs1YQ",
"event_name": "game-end",
"timestamp_ms": 1771239493236
}

Memories​

ParameterTypeDescription
tryIdunsigned integerUnique try id
typestringGame result type: "win" or "lose"
durationunsigned integerGame duration
movesunsigned integerMoves count

Notification example

{
"game": {
"id": 3092,
"game": "boxed-memory"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98841151,
"type": "lose",
"duration": 18,
"moves": 6
},
"event_id": "yJohAcWH5iAnrzphEI1F_JwbSHdobJzY",
"event_name": "game-end",
"timestamp_ms": 1771239624581
}

Advent calendar​

ParameterTypeDescription
tryIdunsigned integerUnique try id (always 0 in Advent)
indexunsigned integerOpened card index (starts from 0)
isBonusbooleanIndication that this screen is a bonus screen

Notification example

{
"game": {
"id": 3013,
"game": "boxed-advent-calendar"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 0,
"index": 0,
"isBonus": false
},
"event_id": "We8rxJSFy8tR6xDX4IOK5efm7h9F6R3C",
"event_name": "game-end",
"timestamp_ms": 1771239677306
}

Slicer​

ParameterTypeDescription
tryIdunsigned integerUnique try id
durationunsigned integerGame duration
scoreunsigned integerUser score
winunsigned integerGame result: win: "1", lose: "-1"

Notification example

{
"game": {
"id": 4804,
"game": "boxed-slicer"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 129020047,
"score": 25,
"duration": 14,
"win": 1
},
"event_id": "eGR74hH_-MnF8dmYi_FXqXac1JwaWBMp",
"event_name": "game-end",
"timestamp_ms": 1783687520792
}

Sorting​

ParameterTypeDescription
tryIdunsigned integerUnique try id
typestringGame result type: "win" or "lose"
durationunsigned integerGame duration
levelunsigned integerGame level

Notification example

{
"game": {
"id": 3120,
"game": "boxed-sorting"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98841426,
"type": "win",
"duration": 4,
"level": 1
},
"event_id": "DvqB3qzk0Ta34nSzBUJo-L5X9FNhD8z3",
"event_name": "game-end",
"timestamp_ms": 1771239859099
}

Match three​

ParameterTypeDescription
tryIdunsigned integerUnique try id
durationunsigned integerGame duration
scoreunsigned integerGame score

Notification example

{
"game": {
"id": 3157,
"game": "boxed-match-3"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98841541,
"score": 12,
"duration": 19
},
"event_id": "ic-eb5mx351j6jaJN_HxjupHLkhOzFaE",
"event_name": "game-end",
"timestamp_ms": 1771239978287
}

Mystery boxes​

ParameterTypeDescription
tryIdunsigned integerUnique try id
indexunsigned integerOpened item index on the field (starts from 0)
itemIndexunsigned integerItem number in the game settings (starts from 0)
itemTypestringOpened item type: "win", "lose", "empty", "prize" or "extra_move"

Notification example

{
"game": {
"id": 2063,
"game": "lootbox"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 129023600,
"index": 0,
"itemIndex": 0,
"itemType": "prize"
},
"event_id": "JgK7Y0HVH4A4BMV7fZxs0ijkV3IY1gTq",
"event_name": "game-end",
"timestamp_ms": 1783688193140
}

Shaker​

ParameterTypeDescription
tryIdunsigned integerUnique try id
countunsigned integerHit count
durationunsigned integerGame duration
itemIndexunsigned integerOpened item index(starts from 0)

Notification example

{
"game": {
"id": 3095,
"game": "boxed-shaker"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98515524,
"count": 60,
"duration": 3,
"itemIndex": 3
},
"event_id": "fRZKOiZ0IO4ed0xXnw4LF-QTahIFvV7-",
"event_name": "game-end",
"timestamp_ms": 1770813507585
}

Words​

ParameterTypeDescription
tryIdunsigned integerUnique try id
typestringGame result type: "win" or "lose"
durationunsigned integerGame duration
levelunsigned integerGame level

Notification example

{
"game": {
"id": 3130,
"game": "boxed-words"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 98888616,
"type": "win",
"duration": 25,
"level": 1
},
"event_id": "dln7eAb46ZRCad1E8imcVgz2WGEqq_rk",
"event_name": "game-end",
"timestamp_ms": 1771317902901
}

Catcher​

ParameterTypeDescription
tryIdunsigned integerUnique try id
durationunsigned integerGame duration
scoreunsigned integerUser score
winunsigned integerGame result: win: "1", lose: "-1"

Notification example

{
"game": {
"id": 4805,
"game": "boxed-catcher"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 129021390,
"score": 0,
"duration": 9,
"win": -1
},
"event_id": "Y42Ej3RumiKb6vclfuCj-k6Q0-3Ikmdx",
"event_name": "game-end",
"timestamp_ms": 1783687753763
}

Runner​

ParameterTypeDescription
tryIdunsigned integerUnique try id
durationunsigned integerGame duration
scoreunsigned integerUser score
winunsigned integerGame result: win: "1", lose: "-1"

Notification example

{
"game": {
"id": 4806,
"game": "boxed-runner"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 129022706,
"score": 4,
"duration": 15,
"win": -1
},
"event_id": "RD_jAEek-5taJZqWmuoDCraMPhYhyt8E",
"event_name": "game-end",
"timestamp_ms": 1783688028488
}

Claw​

ParameterTypeDescription
tryIdunsigned integerUnique try id
itemIndexunsigned integerOpened item index(starts from 0)

Notification example

{
"game": {
"id": 4807,
"game": "boxed-clawmachine"
},
"user": {
"internalUserId": 395582092,
"externalUserId": "1929",
"deviceId": null
},
"payload": {
"tryId": 129024000,
"itemIndex": 2
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "game-end",
"timestamp_ms": 1783688200000
}

Promocode webhook​

event_name: promo-code-user-allocated

ParameterTypeDescription
promoCodeobjectObject containing information about the promocode
promoCode.idunsigned integerUnique numerical identifier for a group of promo codes
promoCode.namestringText name of the promocode group
promoCode.codestringPromocode value
userobjectObject containing information about the user
user.internalUserIdunsigned integerInternal unique user identifier
user.externalUserIdstring or nullUnique user identifier transmitted via UserID
user.deviceIdstring or nullUnique device identifier, if UserID was not transmitted

Notification example

{
"promoCode": {
"id": 12,
"name": "New Year Promotion 2025",
"code": "1234567890"
},
"user": {
"internalUserId": 4564465784,
"externalUserId": "ext-10",
"deviceId": null
},
"event_id": "8k7SdBMz6KPGhC3S4e4ZpMlm4c1U8p9v",
"event_name": "promo-code-user-allocated",
"timestamp_ms": 1655728818761
}