Skip to content

Payloads

Every event has the same five top-level keys.

{
"type": "update",
"entity": "fact",
"competitionId": 2311,
"date": "2026-09-12T10:04:31.118Z",
"data": {}
}
KeyTypeMeaning
typecreate | update | deleteThe verb
entitymatch | team | fact | competition | summaryThe entity
competitionIdnumberThe competition the change belongs to
dateISO 8601 stringWhen LIGR queued the event
dataobjectThe entity, in the webhook shape

Use (entity, data.id, date) as your deduplication key. Delivery is at least once: the same event can arrive twice with the same key.

data.homeTeam and data.awayTeam follow competitorsType. A teams match carries a team object. A singles match carries a player. A doubles match carries a pair.

lineups is present after a lineup import.

{
"type": "update",
"entity": "match",
"competitionId": 2311,
"date": "2026-09-12T10:04:31.118Z",
"data": {
"id": 1188213,
"name": "Sydney FC v Melbourne City",
"competitorsType": "teams",
"homeTeam": { "id": 5021, "name": "Sydney FC", "gfxName": "SYD" },
"awayTeam": { "id": 5030, "name": "Melbourne City", "gfxName": "MCY" },
"score": { "home": 1, "away": 0 },
"clockData": { "clock": 1712, "running": true },
"liveStatus": "live",
"finishedStatus": "default",
"currentPeriod": { "number": 1, "name": "1st half" },
"coverage": "full",
"lineups": {
"home": { "starters": [], "bench": [] },
"away": { "starters": [], "bench": [] }
}
}
}

A fact carries its match, its type, its clock position and the competitors it names. An undone fact arrives as a delete.

A summary event carries the computed score, the periods and the statistics of one match. LIGR sends it after it folds a fact change into the summary. A summary delete carries ids only.

An overlay event carries the overlay record: the key a browser source uses, the match it belongs to, and the switches an operator or the REST API changes. A new key arrives as an update.

{
"type": "update",
"entity": "overlay",
"competitionId": 2311,
"date": "2026-09-12T10:04:31.118Z",
"data": {
"id": 2300003,
"key": "3f2a9c1e-4b6d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Broadcast",
"matchId": 1188213,
"competitionThemeSettingId": 8802,
"controlRoomId": 91,
"controllerId": null,
"isPrimary": true,
"isActive": true,
"autoMode": false,
"encodingDelay": 6,
"adType": "free",
"lng": null,
"createdAt": "2026-09-01T02:14:09.000Z",
"updatedAt": "2026-09-12T10:04:31.118Z",
"deletedAt": null
}
}

A team event carries the team as the competition holds it, including gfxName. A competition event carries the competition record.

The webhook payload of an entity tracks the entity itself. To see every field your competition produces, read one live delivery in the log. Open Developers → Webhooks, open the webhook, and select Event Logs. The log shows the payload LIGR sent.