Pinned Tweet
We're OddsRelay, a new odds data API. 140+ bookmakers, 60+ of them live in the UK & Ireland, bet365 included, as raw prices or already matched against lays on Betfair, Smarkets, Matchbook and BETDAQ. Start free: oddsrelay.io/?utm_source=x&u…
1
131
Store the ETag from every reply and send it back as If-None-Match. If the board hasn't changed, the reply is an empty 304 that costs no tokens.
A changed board comes back in full, with a new ETag to keep: oddsrelay.io/docs/guides/con…
7
Lay odds are an exchange's price for betting that an outcome won't happen. At lay odds of 3.0, each unit the backer stakes puts two of yours at risk.
That's why a matched board shows the liquidity beside every lay price: oddsrelay.io/glossary/lay-od…
13
One event's price history is one call: GET /v2/historical/events/{id}/odds with a from and a to. Every row after the opening prices is a change.
The Python walk-through also reads the gap list, so a flat price and a recording gap don't look alike: oddsrelay.io/blog/historical…
12
So a client branches on the code, never on the message text. Quote the request_id when something needs chasing and we can find that exact call.
1
10
An unknown sport, market or bookmaker comes back as a 400 that names the valid values, so the fix is in the reply itself: oddsrelay.io/glossary/odds-a…
8
An odds feed is the ongoing supply of bookmaker and exchange prices as data. The API is how a product asks for it, and the feed is what comes back.
Ours is polled: no socket to hold open, a GET when your product wants the prices. oddsrelay.io/glossary/odds-f…
16
Start with the two free calls. /v2/sports lists every competition with the market keys seen under it, and /v2/bookmakers lists every bookmaker and exchange key.
Ask only for keys that exist: an unknown one is refused with a 400 naming the valid values. oddsrelay.io/glossary/odds-a…
1
23
Historical odds are live: every bookmaker price change the UK and Ireland raw feed has served since 17 October 2026.
Ask for a past board, one event's price history or a day's closing lines, or download a day of one sport as a file: oddsrelay.io/products/histor…
15
OddsRelay retweeted
New video is now live. We look at @oddsrelay and how it can find value for you in real time. If you are into arbs or steamers, we show live examples of how you can benefit from this service
youtu.be/teeBm5WXhWQ
OddsRelay retweeted
New video coming at 4pm UK time
We showcase @oddsrelay A service that provides pre match odds for 140 bookmakers in all of the popular sports. We show how you can consume this data, both through the Odds Relay portal and also in your own applications
Bookmaker margins on the match result moved with the competition in our 11 October snapshot of 15 games: a median of 6.4 per cent on a Premier League match, 12.1 per cent on a Venezuelan one.
Bookmaker prices only, one snapshot, so read it as a hint: oddsrelay.io/blog/uk-bookmak…
29
The overround is a bookmaker's margin on a market: add up the implied probability of every outcome, then take away one.
On a match result that is 1/home + 1/draw + 1/away - 1, worked from the decimal prices in any raw reply: oddsrelay.io/glossary/overro…
16
You can ask what a call will cost before you make it. Add quote=true and the reply is the price instead of the data, and the quote itself is free.
Handy before pulling a whole past board: oddsrelay.io/products/histor…
19
Tipster proofing is the record of each selection, its advised price and the bookmaker offering it, lodged before the race. A feed can supply most of it, each-way terms included where the feed carries them.
The post: oddsrelay.io/blog/tipster-pr…
17
An extra-place offer pays each-way place terms on more positions than the exchange's place market settles on.
On our extra-place board each back offer carries places, and each place lay carries its own, so the gap shows directly: oddsrelay.io/glossary/extra-…
11
You don't have to walk the whole raw board to follow it. Send updatedSince with the time of your last read and the reply keeps only the venues updated since then, at a reduced share of a full read.
The parameter: oddsrelay.io/docs?utm_source…
8
An oddsmatcher in under 50 lines of Python, with nothing to install: one call for a matched board, every bookmaker back price set against the lowest exchange lay, and the pairs sorted by a number your own code works out.
1
6
Each outcome carries a back list of bookmaker offers and a lay list of exchange offers in price order. So the first priced lay is the lowest on offer, good for as much as its available field says, and every priced back offer is set against it.
1
6
The sort key is one line: 100 × back × (1 − commission) ÷ (lay − commission). At 100 the two prices balance. We send prices and the liquidity at each lay, never this number, because only your user knows their commission.
The script and a worked race: oddsrelay.io/blog/odds-api-i…
1
















