Raw odds feed
Prices from 140+ bookmakers, 60+ of them live in the UK & Ireland, each exactly as the bookmaker lists it, in one JSON schema. Exchange lay prices and the amount available come in the same reply, for teams that match, rate or model odds themselves.
Tokens for one call of the whole UK & Ireland feed. A filtered call costs less: pricing publishes the table it is worked out from.
What's in a reply
One entry per bookmaker, each keeping its own names.
bookmakers[]- One entry per bookmaker or exchange, each with its own markets and a
last_updatetime. markets[].key- That bookmaker's own market type, lowercased:
h2hand the rest. outcomes[].name- The selection as that bookmaker writes it. In the example, Ferencváros is spelled three ways.
h2h_lay- An exchange's lay market:
lay_price, andavailable, the amount you can lay at that price. includeLinks=true- Adds a link to the event at each bookmaker.
Pre-match only. There are no in-play prices.
To see what exists before you pull it: GET /v2/sports and GET /v2/events, where every event carries a has_coverage flag.
{
"meta": {
"feed_type": "raw",
"region": "uk",
"odds_format": "decimal",
"processed_at": "2026-09-17T16:32:17.554Z"
},
"data": [
{
"id": "or_evt_ed3ca8739560",
"cluster_id": null,
"sport_key": "soccer_uefa_europa_league",
"sport_title": "UEFA Europa League",
"commence_time": "2026-09-17T19:00:00Z",
"home_team": "Celtic FC",
"away_team": "Ferencvaros",
"bookmakers": [
{
"key": "7bet",
"title": "7bet",
"region": "uk",
"last_update": "2026-09-17T16:31:51Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-09-17T15:45:04Z",
"outcomes": [
{ "name": "Celtic FC", "price": 1.71 },
{ "name": "Draw", "price": 4 },
{ "name": "Ferencvaros TC", "price": 4 }
]
}
]
},
{
"key": "betgoodwin",
"title": "BetGoodwin",
"region": "uk",
"last_update": "2026-09-17T16:31:43Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-09-17T13:39:55Z",
"outcomes": [
{ "name": "Celtic", "price": 1.7 },
{ "name": "Draw", "price": 4 },
{ "name": "Ferencváros", "price": 4.5 }
]
}
]
},
{
"key": "betdaq",
"title": "Betdaq",
"region": "uk",
"last_update": "2026-09-17T16:32:11Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-09-17T16:32:11Z",
"outcomes": [
{ "name": "Celtic", "price": 1.74 },
{ "name": "Draw", "price": 4.2 },
{ "name": "Ferencvárosi TC", "price": 5.1 }
]
},
{
"key": "h2h_lay",
"last_update": "2026-09-17T16:32:11Z",
"outcomes": [
{
"name": "Celtic",
"back_price": null,
"lay_price": 1.75,
"available": 351.13
},
{
"name": "Draw",
"back_price": null,
"lay_price": 4.4,
"available": 65.15
},
{
"name": "Ferencvárosi TC",
"back_price": null,
"lay_price": 5.2,
"available": 98.68
}
]
}
]
}
]
}
]
}Raw or matched
Both are on every plan, on the same key. They differ in what one entry is and how much of the work is already done.
| Dimension | Raw | Matched |
|---|---|---|
| Endpoint | GET /v2/odds/raw | GET /v2/odds/{feed type} |
| One entry per | Bookmaker, per event | Event |
| Selection names | As each bookmaker writes them | One name per outcome, across bookmakers |
| Exchange lay prices | In the exchange's own h2h_lay market | Lowest first, beside every back price |
| Links to the event | With includeLinks=true | On every offer |
| Filters | Sports, bookmakers, exchanges, markets, the kick-off window and updatedSince | Sports, bookmakers, exchanges, markets and the kick-off window |
| Whole feed, one call | 40,000 tokens | 10,000 tokens |
| Suits | Comparison sites, pricing models, and teams matching odds themselves | Oddsmatchers and matched betting tools |
Bookmakers on this feed
Bookmakers
- 10bet
- 7bet
- 888sport
- Bally Bet
- Bet Target
- bet365
- Bet600
- Betano
- Betfair Sportsbook
- Betfred
- BetGoodwin
- BetMGM
- Betnero
- BetTOM
- BetUK
- BetVictor
- Betway
- BetWright
- BoyleSports
- Bwin
- Casumo
- CopyBet
- Coral
- Dabble
- Dafabet
- DAZN Bet
- Double Bubble Bingo
- DragonBet
- FanTeam
- Fitzdares
- Geoff Banks
- Grosvenor
- HighBet
- Hollywoodbets
- Hopa
- Jackpotjoy
- Karamba
- Ladbrokes
- LeoVegas
- LiveScore Bet
- Lottoland
- McBookie
- Monopoly Casino
- Mr Vegas
- MrRex
- NetBet
- Octobet
- Paddy Power
- Parimatch
- Planet Sport Bet
- PricedUP
- Pub Casino
- Puntit
- QuinnBet
- Rainbow Riches Casino
- Sky Bet
- Sporting Index
- Sportingbet
- Spreadex
- Star Sports
- talkSPORT BET
- Toals
- Tote
- Unibet
- Vbet
- Virgin Bet
- William Hill
Exchanges
- BETDAQ
- Betfair Exchange
- Matchbook
- Smarkets
From the live coverage summary. Coverage shows each bookmaker by sport.
Questions
Can I switch to matched later?
Yes. Every plan includes both, on the same key. The matched reply has a different shape, so you would parse it separately. Authentication, regions and tokens work the same way.
From the blog
- Arbitrage data: what an arbitrage tool needsAn arb check needs back and lay prices for the same market, and the money behind the lay.
- Value betting vs arbitrage: the data each needsArbitrage compares prices that disagree. Value betting compares one price with fair odds you work out.
- How odds comparison sites use odds dataA comparison site is a best-price table. The hard part is proving every column is the same bet.
Get an API key
Every plan includes every feed, Free included. Plans differ only in how many tokens you get.