Skip to content

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
200
curlJavaScriptPython
$ curl api.oddsrelay.io/v2/odds/standard?region=uk \  -H "Authorization: Bearer or_live_••••" \  -H "Accept: application/json"  sending · api.oddsrelay.io200 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

Football
Horse racing
Tennis
Basketball
Cricket
Golf
Rugby
Darts
Ice hockey
Baseball
American football
Table tennis

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.

GET/v2/odds/standard?region=uk

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.

01

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_••••

02

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

03

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
Regions

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.