dartpilot webhook event
dartpilot sends this signed POST to the HTTPS endpoint configured in the web app. Reply with any 2xx status (204 is recommended) within 10 seconds. Redirects are not followed. The type field selects the envelope; every event’s data is the exact object the matching /v1 endpoint returns, and ping is sent only by Send test. The webhook-id header is stable across retries and manual redeliveries.
eventDeliveryWebhookwebhook-idstringrequiredStable event id, also present as id in the body.
webhook-timestampintegerrequiredUnix timestamp in seconds used in the signature.
webhook-signaturestringrequiredStandard Webhooks signature: v1,base64(HMAC-SHA256(secret, id.timestamp.body)).
application/jsonidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
game.startedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataGamerequiredA Game as returned by GET /v1/games.
Show propertiesHide properties
idstringrequiredtypestringrequiredstatusstringrequiredplayersGamePlayer[]requiredShow propertiesHide properties
GamePlayernamestringrequireduserIdstring | nullrequiredimagestring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
game.completedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataGameDetailrequiredA GameDetail as returned by GET /v1/games/{id}.
Show propertiesHide properties
idstringrequiredtypestringrequiredstatusstringrequiredplayersGamePlayer[]requiredcreatedAtstringrequiredupdatedAtstringrequiredconfigobjectrequiredstateobject | nullrequiredShow propertiesHide properties
objectnullstateUpdatedAtstringrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
game.abandonedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataGameDetailrequiredA GameDetail as returned by GET /v1/games/{id}.
Show propertiesHide properties
idstringrequiredtypestringrequiredstatusstringrequiredplayersGamePlayer[]requiredcreatedAtstringrequiredupdatedAtstringrequiredconfigobjectrequiredstateobject | nullrequiredShow propertiesHide properties
objectnullstateUpdatedAtstringrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
tournament.startedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataTournamentDetailrequiredA TournamentDetail as returned by GET /v1/tournaments/{id}.
Show propertiesHide properties
idstringrequirednamestringrequiredgameTypestringrequiredformatstringrequiredstatusstringrequiredvisibilitystringrequiredmodestringrequiredstartsAtstring | nullrequiredstartedAtstring | nullrequiredmaxPlayersintegerrequiredcreatedByTournamentCreatorrequiredShow propertiesHide properties
userIdstringrequireddisplayNamestringrequiredimagestring | nullrequiredcreatedAtstringrequiredmatchConfigTournamentMatchConfigrequiredShow propertiesHide properties
variantintegerrequiredinModestringrequiredoutModestringrequiredbullModestringrequiredbestOfintegerrequiredparticipantsTournamentParticipant[]requiredShow propertiesHide properties
TournamentParticipantidstringrequireduserIdstring | nullrequireddisplayNamestringrequiredimagestring | nullrequiredstatusstringrequiredmatchesTournamentMatch[]requiredroundsintegerrequiredchampionParticipantIdstring | nullrequiredrunnerUpParticipantIdstring | nullrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
tournament.completedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataTournamentDetailrequiredA TournamentDetail as returned by GET /v1/tournaments/{id}.
Show propertiesHide properties
idstringrequirednamestringrequiredgameTypestringrequiredformatstringrequiredstatusstringrequiredvisibilitystringrequiredmodestringrequiredstartsAtstring | nullrequiredstartedAtstring | nullrequiredmaxPlayersintegerrequiredcreatedByTournamentCreatorrequiredcreatedAtstringrequiredmatchConfigTournamentMatchConfigrequiredparticipantsTournamentParticipant[]requiredmatchesTournamentMatch[]requiredroundsintegerrequiredchampionParticipantIdstring | nullrequiredrunnerUpParticipantIdstring | nullrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
tournament.cancelledapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataTournamentDetailrequiredA TournamentDetail as returned by GET /v1/tournaments/{id}.
Show propertiesHide properties
idstringrequirednamestringrequiredgameTypestringrequiredformatstringrequiredstatusstringrequiredvisibilitystringrequiredmodestringrequiredstartsAtstring | nullrequiredstartedAtstring | nullrequiredmaxPlayersintegerrequiredcreatedByTournamentCreatorrequiredcreatedAtstringrequiredmatchConfigTournamentMatchConfigrequiredparticipantsTournamentParticipant[]requiredmatchesTournamentMatch[]requiredroundsintegerrequiredchampionParticipantIdstring | nullrequiredrunnerUpParticipantIdstring | nullrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
tournament.match.startedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataTournamentMatchrequiredA TournamentMatch from GET /v1/tournaments/{id} or GET /v1/tournaments/{id}/matches/{matchId}.
Show propertiesHide properties
idstringrequiredroundintegerrequiredslotintegerrequiredstatusstringrequiredgameIdstring | nullrequiredparticipantAIdstring | nullrequiredparticipantBIdstring | nullrequiredparticipantAScoreinteger | nullrequiredShow propertiesHide properties
integernullparticipantBScoreinteger | nullrequiredShow propertiesHide properties
integernullwinnerParticipantIdstring | nullrequiredparticipantAReadyAtstring | nullrequiredparticipantBReadyAtstring | nullrequiredreadyDeadlineAtstring | nullrequireddecidedByHostbooleanrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
tournament.match.completedapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataTournamentMatchrequiredA TournamentMatch from GET /v1/tournaments/{id} or GET /v1/tournaments/{id}/matches/{matchId}.
Show propertiesHide properties
idstringrequiredroundintegerrequiredslotintegerrequiredstatusstringrequiredgameIdstring | nullrequiredparticipantAIdstring | nullrequiredparticipantBIdstring | nullrequiredparticipantAScoreinteger | nullrequiredShow propertiesHide properties
integernullparticipantBScoreinteger | nullrequiredShow propertiesHide properties
integernullwinnerParticipantIdstring | nullrequiredparticipantAReadyAtstring | nullrequiredparticipantBReadyAtstring | nullrequiredreadyDeadlineAtstring | nullrequireddecidedByHostbooleanrequiredidstringrequiredStable event id. It is identical across retries and manual redeliveries.
typestringrequiredThe event that produced this delivery.
pingapiVersionstringrequiredWebhook payload version.
2026-10-20createdAtstring<date-time>requiredWhen the event was produced.
dataWebhookPingDatarequiredThe synthetic test payload.
Show propertiesHide properties
webhookIdstringrequiredThe webhook that was tested.
messagestringrequiredHuman-readable test message.
Any 2xx acknowledges the delivery. Non-2xx responses are retried with backoff.