Skip to content

Data product · raw

Per-book prices with the lay side included

Per-book prices in one consistent schema: 140+ bookmakers across 20 countries, each book's back prices plus the exchange lay side and its liquidity, from one endpoint (GET /v2/odds/raw). Cross-book pairing and ratings stay your work, by design.

api.oddsrelay.io/v2/odds/raw?region=uk
$ curl api.oddsrelay.io/v2/odds/raw?region=uk \
  -H "Authorization: Bearer or_live_••••••••••••"
GET 200 · application/json
{
  "meta": {
    "feed_type": "raw",
    "region": "uk",
    "odds_format": "decimal",
    "processed_at": "2026-08-15T12:03:12.000Z",
    "count": 1,
    "version": "v2",
    "next_cursor": null
  },
  "data": [
    {
      "id": "or_evt_2a7a8855d318",
      "sport_key": "soccer_premier_league",
      "sport_title": "Premier League",
      "commence_time": "2026-08-15T14:00:00Z",
      "home_team": "Arsenal",
      "away_team": "Chelsea",
      "bookmakers": [
        {
          "key": "bet365",
          "title": "Bet365",
          "region": "uk",
          "last_update": "2026-08-15T12:03:11Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:11Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.1
                },
                {
                  "name": "Chelsea",
                  "price": 3.6
                },
                {
                  "name": "Draw",
                  "price": 3.4
                }
              ]
            }
          ]
        },
        {
          "key": "william_hill",
          "title": "William Hill",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.05
                },
                {
                  "name": "Chelsea",
                  "price": 3.55
                },
                {
                  "name": "Draw",
                  "price": 3.5
                }
              ]
            }
          ]
        },
        {
          "key": "bet_victor",
          "title": "BetVictor",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.08
                },
                {
                  "name": "Chelsea",
                  "price": 3.65
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "paddy_power",
          "title": "Paddy Power",
          "region": "uk",
          "last_update": "2026-08-15T12:03:11Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:11Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.1
                },
                {
                  "name": "Chelsea",
                  "price": 3.5
                },
                {
                  "name": "Draw",
                  "price": 3.4
                }
              ]
            }
          ]
        },
        {
          "key": "sky_bet",
          "title": "Sky Bet",
          "region": "uk",
          "last_update": "2026-08-15T12:03:08Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:08Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.04
                },
                {
                  "name": "Chelsea",
                  "price": 3.6
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "ladbrokes",
          "title": "Ladbrokes",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.06
                },
                {
                  "name": "Chelsea",
                  "price": 3.55
                },
                {
                  "name": "Draw",
                  "price": 3.5
                }
              ]
            }
          ]
        },
        {
          "key": "coral",
          "title": "Coral",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.07
                },
                {
                  "name": "Chelsea",
                  "price": 3.6
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "betfred",
          "title": "Betfred",
          "region": "uk",
          "last_update": "2026-08-15T12:03:09Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:09Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.05
                },
                {
                  "name": "Chelsea",
                  "price": 3.7
                },
                {
                  "name": "Draw",
                  "price": 3.4
                }
              ]
            }
          ]
        },
        {
          "key": "unibet",
          "title": "Unibet",
          "region": "uk",
          "last_update": "2026-08-15T12:03:11Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:11Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.09
                },
                {
                  "name": "Chelsea",
                  "price": 3.55
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "888sport",
          "title": "888sport",
          "region": "uk",
          "last_update": "2026-08-15T12:03:09Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:09Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.06
                },
                {
                  "name": "Chelsea",
                  "price": 3.65
                },
                {
                  "name": "Draw",
                  "price": 3.5
                }
              ]
            }
          ]
        },
        {
          "key": "boylesports",
          "title": "BoyleSports",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.1
                },
                {
                  "name": "Chelsea",
                  "price": 3.5
                },
                {
                  "name": "Draw",
                  "price": 3.35
                }
              ]
            }
          ]
        },
        {
          "key": "virgin_bet",
          "title": "Virgin Bet",
          "region": "uk",
          "last_update": "2026-08-15T12:03:08Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:08Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.05
                },
                {
                  "name": "Chelsea",
                  "price": 3.6
                },
                {
                  "name": "Draw",
                  "price": 3.5
                }
              ]
            }
          ]
        },
        {
          "key": "livescore_bet",
          "title": "LiveScore Bet",
          "region": "uk",
          "last_update": "2026-08-15T12:03:11Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:11Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.08
                },
                {
                  "name": "Chelsea",
                  "price": 3.55
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "bet_uk",
          "title": "BetUK",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.07
                },
                {
                  "name": "Chelsea",
                  "price": 3.6
                },
                {
                  "name": "Draw",
                  "price": 3.4
                }
              ]
            }
          ]
        },
        {
          "key": "quinnbet",
          "title": "QuinnBet",
          "region": "uk",
          "last_update": "2026-08-15T12:03:09Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:09Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.04
                },
                {
                  "name": "Chelsea",
                  "price": 3.7
                },
                {
                  "name": "Draw",
                  "price": 3.45
                }
              ]
            }
          ]
        },
        {
          "key": "star_sports",
          "title": "Star Sports",
          "region": "uk",
          "last_update": "2026-08-15T12:03:10Z",
          "markets": [
            {
              "key": "h2h",
              "last_update": "2026-08-15T12:03:10Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "price": 2.06
                },
                {
                  "name": "Chelsea",
                  "price": 3.65
                },
                {
                  "name": "Draw",
                  "price": 3.5
                }
              ]
            }
          ]
        },
        {
          "key": "betfair_exchange",
          "title": "Betfair Exchange",
          "region": "uk",
          "last_update": "2026-08-15T12:03:09Z",
          "markets": [
            {
              "key": "h2h_lay",
              "last_update": "2026-08-15T12:03:09Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "back_price": 2.1,
                  "lay_price": 2.12,
                  "available": 1450
                },
                {
                  "name": "Chelsea",
                  "back_price": 3.6,
                  "lay_price": 3.65,
                  "available": 980
                },
                {
                  "name": "Draw",
                  "back_price": 3.4,
                  "lay_price": 3.45,
                  "available": 1120
                }
              ]
            }
          ],
          "currency": "GBP"
        },
        {
          "key": "smarkets",
          "title": "Smarkets",
          "region": "uk",
          "last_update": "2026-08-15T12:03:08Z",
          "markets": [
            {
              "key": "h2h_lay",
              "last_update": "2026-08-15T12:03:08Z",
              "outcomes": [
                {
                  "name": "Arsenal",
                  "back_price": 2.09,
                  "lay_price": 2.11,
                  "available": 860
                },
                {
                  "name": "Chelsea",
                  "back_price": 3.6,
                  "lay_price": 3.7,
                  "available": 540
                },
                {
                  "name": "Draw",
                  "back_price": 3.4,
                  "lay_price": 3.5,
                  "available": 610
                }
              ]
            }
          ],
          "currency": "GBP"
        }
      ]
    }
  ]
}

What the raw feed delivers

One envelope, the same response shape and market keys across every book, so you integrate one schema, not a hundred.

It is not cross-book normalised, though. Each book's outcomes arrive as that book labels them, and reconciling them into one row is the matching problem the matched feed solves. The docs show the shape.

The edge over a plain aggregator is the exchange side. Most raw feeds stop at back prices. This one carries the exchange lay price and its liquidity in the same payload, which saves you sourcing the lay half separately.

Two discovery endpoints sit alongside: GET /v2/sports and GET /v2/events (with a has_coverage flag), so you see what data exists before you pull it.

Raw versus matched

Same coverage, two altitudes. Flip the response between raw and matched here to see it.

Building an oddsmatcher or arb scanner? That matching layer is a year of engineering you can skip. Matched is usually the buy.

For a comparison surface or your own models, raw keeps you in control. Vs The Odds API covers when a raw aggregator is the right choice.

api.oddsrelay.io/v2/odds/standard?region=uk
$ curl api.oddsrelay.io/v2/odds/standard?region=uk \
  -H "Authorization: Bearer or_live_••••••••••••"
GET 200 · application/json
{  "event_id": "or_evt_9f2c1a7b41d0",  "sport_key": "soccer_premier_league",  "sport_title": "Premier League",  "commence_time": "2026-07-08T14:00:00Z",  "home_team": "Arsenal",  "away_team": "Chelsea",  "markets": [{    "key": "h2h",    "outcomes": [{      "name": "Arsenal",      "back": [{        "bookmaker": "bet365",        "price": 2.10,        "link": null,        "last_update": "2026-07-08T12:34:48Z"      }],      "lay": [{        "exchange": "smarkets",        "price": 2.05,        "available": 1840.0,        "link": null,        "last_update": "2026-07-08T12:34:48Z"      }]    }]  }]}

Standard: The core pair: every back price beside the exchange lay, liquidity attached.

Coverage, delivery and enablement

Each book carries its region, a live update-time signal and a deep link to the event at that bookmaker.

The feed runs a ~3s pre-match polling cycle, monitored, with published update times. There is no in-play feed. The coverage dashboard shows every market against its cutoff.

Delivery is one HTTPS endpoint, server-to-server, Bearer or x-api-key auth, JSON out.

Raw is enablement-gated, not self-serve: the scope is switched on per key on request. Until then the endpoints say so plainly, with raw_not_in_scope for a non-raw key and raw_not_enabled while provisioning. Deep bookmaker links are off by default.

Coverage · update time

  • Bet365UK1,284
  • Bet VictorUK1,102
  • William HillUK1,190
  • Betfair ExchangeUK2,041
  • Paddy PowerUK1,067
  • Sky BetUK998
  • LadbrokesUK1,043
  • CoralUK1,011

… and the rest of the 140+-book network

Questions

Can I start on raw and move to matched later?

Yes. Both products use the same endpoint discipline and key model, so moving from raw to matched is a scope change, not a re-integration.

Clean per-book prices, the lay side included

Ask us to switch raw on for your key, then put your own logic on top.