Event Type: Bookmaker Market – Runner-Wise Updates

Updated on November 5, 2025

Bookmaker markets (BM) contain multiple runners (teams) within a single market. The SDK sends runner-specific updates whenever odds change or a runner is suspended.

Example 1: Only Team 1 Updated

{
  "data": [
    {
      "room": "4.273812198424-BM",
      "data": {
        "eid": 34491618,
        "mid": "4.273812198424-BM",
        "na": "Bookmaker",
        "res": "",
        "go": false,
        "r": [
          {
            "rid": 161433,
            "na": "Iyanola Heritage",
            "sb": null,
            "l": 4,
            "b": 3
          },
          {
            "rid": 281206,
            "na": "Whiptail Smashers",
            "sb": "S",
            "l": 0,
            "b": 0
          }
        ],
        "s": true,
        "t": 1752148014811
      }
    }
  ]
}

Example 2: Only Team 2 Updated

{
  "data": [
    {
      "room": "4.273812198424-BM",
      "data": {
        "eid": 34491618,
        "mid": "4.273812198424-BM",
        "na": "Bookmaker",
        "res": "",
        "go": false,
        "r": [
          {
            "rid": 161433,
            "na": "Iyanola Heritage",
            "sb": "S",
            "l": 0,
            "b": 0
          },
          {
            "rid": 281206,
            "na": "Whiptail Smashers",
            "sb": null,
            "l": 3,
            "b": 2
          }
        ],
        "s": true,
        "t": 1752148134123
      }
    }
  ]
}

Example 3: Both Teams Updated (Back only)

{
  "data": [
    {
      "room": "4.273812198424-BM",
      "data": {
        "eid": 34491618,
        "mid": "4.273812198424-BM",
        "na": "Bookmaker",
        "res": "",
        "go": false,
        "r": [
          {
            "rid": 161433,
            "na": "Iyanola Heritage",
            "sb": null,
            "l": 0,
            "b": 5
          },
          {
            "rid": 281206,
            "na": "Whiptail Smashers",
            "sb": null,
            "l": 0,
            "b": 5
          }
        ],
        "s": true,
        "t": 1752148200833
      }
    }
  ]
}

Example 4: Lay Suspension (Both Teams Suspended)

{
  "data": [
    {
      "room": "4.273812198424-BM",
      "data": {
        "eid": 34491618,
        "mid": "4.273812198424-BM",
        "na": "Bookmaker",
        "res": "",
        "go": false,
        "r": [
          {
            "rid": 161433,
            "na": "Iyanola Heritage",
            "sb": "S",
            "l": 0,
            "b": 0
          },
          {
            "rid": 281206,
            "na": "Whiptail Smashers",
            "sb": "S",
            "l": 0,
            "b": 0
          }
        ],
        "s": true,
        "t": 1752148241640
      }
    }
  ]
}

Example 5: Full Market Suspended (All Runners)

{
  "data": [
    {
      "room": "4.273812198424-BM",
      "data": {
        "eid": 34491618,
        "mid": "4.273812198424-BM",
        "na": "Bookmaker",
        "res": "",
        "go": false,
        "r": [
          {
            "rid": 161433,
            "na": "Iyanola Heritage",
            "sb": "S",
            "l": 0,
            "b": 0
          },
          {
            "rid": 281206,
            "na": "Whiptail Smashers",
            "sb": "S",
            "l": 0,
            "b": 0
          }
        ],
        "s": true,
        "t": 1752148303503
      }
    }
  ]
}

Glossary of Keys (Bookmaker Market)

KeyDescription
roomUnique identifier for the BM market
eidEvent ID
midMarket ID
naMarket name
resMarket result status (if declared)
r[]Array of runner objects
ridRunner ID (unique for each team)
sbStatus for each runner (S = Suspended, null = Active, B = Ball running)
lLay for the runner
bBack for the runner
sIs market active (true = active)
tEpoch timestamp in milliseconds
goGame Over (Bool)

Usage Notes:

  • Always loop over the r[] array to get runner-specific data
  • If sb = "S" for a runner, that team is currently suspended
  • If all runners are suspended, the market should be blocked in UI