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
}

Promocode webhook

event_name: promo-code-user-allocated

ПараметрТипОписание
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
}