The odds feed, raw or ready-matched.
Deep coverage across 140+ bookmakers in 20 countries, 17 sports network-wide. Take the raw normalised prices and build your own edge, or let us pair and rate them for you. One clean API.
$ curl api.oddsrelay.io/v2/odds/standard?region=uk \ -H "Authorization: Bearer or_live_••••" \ -H "Accept: application/json" → sending · api.oddsrelay.io← 200 OK · application/json{ "home_team": "Arsenal", "away_team": "Chelsea", "markets": [{ "key": "h2h", "outcomes": [{ "name": "Arsenal", "back": [{ "bookmaker": "bet365", "price": 2.10 }], "lay": [{ "exchange": "smarkets", "price": 2.05, "available": 1840.0 }] }] }]}Coverage
Every book and exchange, one wall.
Sports across the network
Two ways to take the same coverage.
Raw · normalised prices
- Bet3652.10
- Bet Victor2.08
- Exchange2.12
- Sky Bet2.05
- …140+ books
Clean prices across every book. Bring your own matching and models.
Matched · rated
Arsenal v Chelsea · Match Odds
Football · Arsenal
- Back · Bet365
- 2.10
- Lay · Exchange
- 2.05
- Rating
- 102.4%
Paired and liquidity-gated, with the lay price and liquidity carried. The rating here is one line of client-side maths at your own commission rate (at 0: 100 × back ÷ lay). You render the row.
Not sure which you need? Start with the matched feed.
One clean feed, fully maintained.
Six matched feed types, one endpoint.
Same shape: swap the type in the path.
The core pair: every back price beside the exchange lay, liquidity attached.
One normalised schema
Every book arrives in the same shape: numbers for odds and money, stable IDs, ISO timestamps. Integrate once.
Exchange-lay matching
Every back paired to a lay price, liquidity-gated. That's the half most APIs leave to you.
Region fan-out
One scrape fans out across a 20-country coverage network: one board per region, same schema everywhere. Filtered by a query param.
Reliability, published
Coverage, update times and live status are shown, not promised, on a live dashboard you can check before you sign up.
03 · Getting started
Integrate in an afternoon.
Get a key
Mint an or_live_ or or_test_ key with the scope you need: feed types, regions, add-ons.
Authorization: Bearer or_live_••••
Call one endpoint
One GET, the feed type in the path, a region filter. Predictable JSON, gzip + ETag/304.
GET /v2/odds/standard?region=uk
Go live
Render the rows straight into your product. An OpenAPI spec and copy-paste snippets cover the rest.
200 · matched rows
- 140+
- Bookmakers, one schema
- 20
- countries in the coverage network
- 70,000+
- Live opportunities on the board
- 6
- Matched feed types
04 · Built for builders
Whatever you're shipping on top.
Start with a free trial.
Spin up a trial key and call the full UK feed. Or talk to us about the coverage and regions you need.













































































































































