Events Life Cycle

Handle Trading API sport_event WebSocket updates when events are listed, re-listed, or unlisted.

Handle sport_event broadcast updates when an event is listed, re-listed, or unlisted.

Subscribe to event lifecycle updates

Listen on the tournament_xxx broadcast topic for changes to events in that tournament. The message op value identifies the change:

op valueMeaning
cCreate an event that is listed immediately.
uUpdate an existing event, including listing or re-listing it.
dDelete an event by unlisting it.

Event lifecycle behavior

Event state changeWebSocket message
Event created but not listedNo message is sent.
Event created and listedSend a sport_event message with op: "c".
Event listed or re-listed after creationSend a sport_event message with op: "u".
Event unlistedSend a sport_event message with op: "d".

Event created and listed

The broadcast message uses change_type: "sport_event" and op: "c".

{
  "change_type": "sport_event",
  "op": "c",
  "payload": "eyJpZCI6IjE1MDAwOTAxNTAiLCJ0b3VybmFtZW50X2lkIjoiMTYwMDAwMDA3MyIsImluZm8iOnsibmFtZSI6InRlcyBYYW5kZXIgU2NoYXVmZmVsZSB0byBXaW4iLCJkaXNwbGF5X25hbWUiOiIiLCJ0eXBlIjoiY3VzdG9tIiwiZXZlbnRfaWQiOjE1MDAwOTAxNTAsInNwb3J0X25hbWUiOiJHb2xmIiwidG91cm5hbWVudF9uYW1lIjoiVHJhdmVsZXJzIENoYW1waW9uc2hpcCIsInRvdXJuYW1lbnRfaWQiOjE2MDAwMDAwNzMsImNvbXBldGl0b3JzIjpbXSwic3RhdHVzIjoibm90X3N0YXJ0ZWQiLCJzY2hlZHVsZWQiOiIyMDIzLTA2LTI1VDIyOjAwOjAwWiIsInVwZGF0ZWRfYXQiOjE2ODcyNzgwMTkxOTkwNjczNjB9fQ==",
  "timestamp": 1687278019324319700
}

Decoded payload:

{
  "id": "1500090150",
  "tournament_id": "1600000073",
  "info": {
    "name": "tes Xander Schauffele to Win",
    "display_name": "",
    "type": "custom",
    "event_id": 1500090150,
    "sport_name": "Golf",
    "tournament_name": "Travelers Championship",
    "tournament_id": 1600000073,
    "competitors": [],
    "status": "not_started",
    "scheduled": "2023-06-25T22:00:00Z",
    "updated_at": 1687278019199067400
  }
}

Event listed or re-listed

After an event exists, listing or re-listing it sends a sport_event message with op: "u".

{
  "change_type": "sport_event",
  "op": "u",
  "payload": "eyJpZCI6IjE1MDAwMDAxNDQiLCJ0b3VybmFtZW50X2lkIjoiMTUwMDAwMDA2MCIsImluZm8iOnsibmFtZSI6Ik5vdmEgdGVzdDIiLCJkaXNwbGF5X25hbWUiOiIiLCJ0eXBlIjoiY3VzdG9tIiwiZXZlbnRfaWQiOjE1MDAwMDAxNDQsInNwb3J0X25hbWUiOiJCYXNrZXRiYWxsIiwidG91cm5hbWVudF9uYW1lIjoiVG91cm5hbWVudCBUZXN0IE5vdmExIiwidG91cm5hbWVudF9pZCI6MTUwMDAwMDA2MCwiY29tcGV0aXRvcnMiOlt7ImlkIjoxNjAwMDAwMDUwLCJuYW1lIjoiWWVzIiwiZGlzcGxheV9uYW1lIjoiWWVzIiwiYWJicmV2aWF0aW9uIjoiWWVzIiwic2lkZSI6ImhvbWUifSx7ImlkIjoxNjAwMDAwMDUxLCJuYW1lIjoiTm8iLCJkaXNwbGF5X25hbWUiOiJObyIsImFiYnJldmlhdGlvbiI6Ik5vIiwic2lkZSI6ImF3YXkifV0sInN0YXR1cyI6Im5vdF9zdGFydGVkIiwic2NoZWR1bGVkIjoiMjAyMy0wNC0yNVQxNzo0NjoyNFoiLCJ1cGRhdGVkX2F0IjoxNjg2NzYzMzAxNjY0OTQyNjY5fX0=",
  "timestamp": 1686763301998473000
}

Decoded payload:

{
  "id": "1500000144",
  "tournament_id": "1500000060",
  "info": {
    "name": "Nova test2",
    "display_name": "",
    "type": "custom",
    "event_id": 1500000144,
    "sport_name": "Basketball",
    "tournament_name": "Tournament Test Nova1",
    "tournament_id": 1500000060,
    "competitors": [
      {
        "id": 1600000050,
        "name": "Yes",
        "display_name": "Yes",
        "abbreviation": "Yes",
        "side": "home"
      },
      {
        "id": 1600000051,
        "name": "No",
        "display_name": "No",
        "abbreviation": "No",
        "side": "away"
      }
    ],
    "status": "not_started",
    "scheduled": "2023-04-25T17:46:24Z",
    "updated_at": 1686582406275919600
  }
}

Event unlisted

Unlisting an event sends a sport_event message with op: "d".

{
  "change_type": "sport_event",
  "op": "d",
  "payload": "eyJpZCI6IjE1MDAwOTAxNTAiLCJ0b3VybmFtZW50X2lkIjoiMTYwMDAwMDA3MyJ9",
  "timestamp": 1687278241642408700
}

Decoded payload:

{
  "id": "1500090150",
  "tournament_id": "1600000073"
}

Did this page help you?