Skip to content
dartpilot
Esc
↑↓navigate↵open⌘Jpreview

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.

POSTeventDeliveryWebhook
Header parameters
webhook-idstringrequired

Stable event id, also present as id in the body.

webhook-timestampintegerrequired

Unix timestamp in seconds used in the signature.

webhook-signaturestringrequired

Standard Webhooks signature: v1,base64(HMAC-SHA256(secret, id.timestamp.body)).

Request body
requiredapplication/json
One of:
WebhookEventGameStarted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:game.started
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataGamerequired

A Game as returned by GET /v1/games.

Show properties
idstringrequired
typestringrequired
statusstringrequired
playersGamePlayer[]required
Show properties
Array of GamePlayer
namestringrequired
userIdstring | nullrequired
imagestring | nullrequired
createdAtstringrequired
updatedAtstringrequired
WebhookEventGameCompleted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:game.completed
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataGameDetailrequired

A GameDetail as returned by GET /v1/games/{id}.

Show properties
idstringrequired
typestringrequired
statusstringrequired
playersGamePlayer[]required
createdAtstringrequired
updatedAtstringrequired
configobjectrequired
stateobject | nullrequired
Show properties
Any of:
object
object
null
null
stateUpdatedAtstringrequired
WebhookEventGameAbandoned
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:game.abandoned
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataGameDetailrequired

A GameDetail as returned by GET /v1/games/{id}.

Show properties
idstringrequired
typestringrequired
statusstringrequired
playersGamePlayer[]required
createdAtstringrequired
updatedAtstringrequired
configobjectrequired
stateobject | nullrequired
Show properties
Any of:
object
object
null
null
stateUpdatedAtstringrequired
WebhookEventTournamentStarted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:tournament.started
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataTournamentDetailrequired

A TournamentDetail as returned by GET /v1/tournaments/{id}.

Show properties
idstringrequired
namestringrequired
gameTypestringrequired
formatstringrequired
statusstringrequired
visibilitystringrequired
modestringrequired
startsAtstring | nullrequired
startedAtstring | nullrequired
maxPlayersintegerrequired
min -9007199254740991 · max 9007199254740991
createdByTournamentCreatorrequired
Show properties
userIdstringrequired
displayNamestringrequired
imagestring | nullrequired
createdAtstringrequired
matchConfigTournamentMatchConfigrequired
Show properties
variantintegerrequired
min -9007199254740991 · max 9007199254740991
inModestringrequired
outModestringrequired
bullModestringrequired
bestOfintegerrequired
min -9007199254740991 · max 9007199254740991
participantsTournamentParticipant[]required
Show properties
Array of TournamentParticipant
idstringrequired
userIdstring | nullrequired
displayNamestringrequired
imagestring | nullrequired
statusstringrequired
matchesTournamentMatch[]required
roundsintegerrequired
min -9007199254740991 · max 9007199254740991
championParticipantIdstring | nullrequired
runnerUpParticipantIdstring | nullrequired
WebhookEventTournamentCompleted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:tournament.completed
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataTournamentDetailrequired

A TournamentDetail as returned by GET /v1/tournaments/{id}.

Show properties
idstringrequired
namestringrequired
gameTypestringrequired
formatstringrequired
statusstringrequired
visibilitystringrequired
modestringrequired
startsAtstring | nullrequired
startedAtstring | nullrequired
maxPlayersintegerrequired
min -9007199254740991 · max 9007199254740991
createdByTournamentCreatorrequired
createdAtstringrequired
matchConfigTournamentMatchConfigrequired
participantsTournamentParticipant[]required
matchesTournamentMatch[]required
roundsintegerrequired
min -9007199254740991 · max 9007199254740991
championParticipantIdstring | nullrequired
runnerUpParticipantIdstring | nullrequired
WebhookEventTournamentCancelled
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:tournament.cancelled
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataTournamentDetailrequired

A TournamentDetail as returned by GET /v1/tournaments/{id}.

Show properties
idstringrequired
namestringrequired
gameTypestringrequired
formatstringrequired
statusstringrequired
visibilitystringrequired
modestringrequired
startsAtstring | nullrequired
startedAtstring | nullrequired
maxPlayersintegerrequired
min -9007199254740991 · max 9007199254740991
createdByTournamentCreatorrequired
createdAtstringrequired
matchConfigTournamentMatchConfigrequired
participantsTournamentParticipant[]required
matchesTournamentMatch[]required
roundsintegerrequired
min -9007199254740991 · max 9007199254740991
championParticipantIdstring | nullrequired
runnerUpParticipantIdstring | nullrequired
WebhookEventTournamentMatchStarted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:tournament.match.started
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataTournamentMatchrequired

A TournamentMatch from GET /v1/tournaments/{id} or GET /v1/tournaments/{id}/matches/{matchId}.

Show properties
idstringrequired
roundintegerrequired
min -9007199254740991 · max 9007199254740991
slotintegerrequired
min -9007199254740991 · max 9007199254740991
statusstringrequired
gameIdstring | nullrequired
participantAIdstring | nullrequired
participantBIdstring | nullrequired
participantAScoreinteger | nullrequired
Show properties
Any of:
integer
integer
null
null
participantBScoreinteger | nullrequired
Show properties
Any of:
integer
integer
null
null
winnerParticipantIdstring | nullrequired
participantAReadyAtstring | nullrequired
participantBReadyAtstring | nullrequired
readyDeadlineAtstring | nullrequired
decidedByHostbooleanrequired
WebhookEventTournamentMatchCompleted
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:tournament.match.completed
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataTournamentMatchrequired

A TournamentMatch from GET /v1/tournaments/{id} or GET /v1/tournaments/{id}/matches/{matchId}.

Show properties
idstringrequired
roundintegerrequired
min -9007199254740991 · max 9007199254740991
slotintegerrequired
min -9007199254740991 · max 9007199254740991
statusstringrequired
gameIdstring | nullrequired
participantAIdstring | nullrequired
participantBIdstring | nullrequired
participantAScoreinteger | nullrequired
Show properties
Any of:
integer
integer
null
null
participantBScoreinteger | nullrequired
Show properties
Any of:
integer
integer
null
null
winnerParticipantIdstring | nullrequired
participantAReadyAtstring | nullrequired
participantBReadyAtstring | nullrequired
readyDeadlineAtstring | nullrequired
decidedByHostbooleanrequired
WebhookEventPing
idstringrequired

Stable event id. It is identical across retries and manual redeliveries.

typestringrequired

The event that produced this delivery.

Allowed:ping
apiVersionstringrequired

Webhook payload version.

Allowed:2026-10-20
createdAtstring<date-time>required

When the event was produced.

dataWebhookPingDatarequired

The synthetic test payload.

Show properties
webhookIdstringrequired

The webhook that was tested.

messagestringrequired

Human-readable test message.

Responses
200

Any 2xx acknowledges the delivery. Non-2xx responses are retried with backoff.

Payload
{
  "id": "string",
  "type": "game.started",
  "apiVersion": "2026-10-20",
  "createdAt": "2019-08-24T14:15:22Z",
  "data": {
    "id": "string",
    "type": "string",
    "status": "string",
    "players": [
      {
        "name": "string",
        "userId": "string",
        "image": "string"
      }
    ],
    "createdAt": "string",
    "updatedAt": "string"
  }
}
Response
Any 2xx acknowledges the delivery. Non-2xx responses are retried with backoff.

Was this page helpful?