Blog
Practical guides to odds data, for developers building oddsmatchers, comparison sites and other betting tools.
Start here
- What is an odds API?An odds API returns bookmakers' prices as JSON. What a response holds, and raw versus matched data.
- The anatomy of an odds API responseEvery field in a /v2 odds response, from the meta envelope down to each back and lay offer.
- The complete guide to matched betting odds dataBack prices, lay prices and the money on offer: what matched betting data holds and what you work out.
- Horse racing and each-way odds dataRunners, courses and each-way place terms: how horse racing looks in an odds feed.
- How to get Betfair lay odds (and alternatives)Betfair's API gives you one exchange's lay prices, unpaired. What that route leaves you to build.
- Is there a bet365 API?bet365 has no public odds API. The two routes to its prices, and what to check in a feed.
- Buying vs building an odds data layerThe five jobs inside an odds data layer, and which ones a licensed feed takes off your team.
- Arbitrage data: what an arbitrage tool needsAn arb check needs back and lay prices for the same market, and the money behind the lay.
Odds API basics
All 7- UK bookmaker margins compared, brand by brandOf the 58 brands, 29 shared just 9 price lists.
- Football odds data, explainedFootball markets, the keys that name them, and what one matched football price looks like.
- 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.
- How to get bookmaker odds data into your appTwo ways to get bookmaker prices into your app, and a first call against a real response.
- Live vs pre-match odds dataIn-play prices move between incidents, pre-match ones can hold for hours. What that means for a feed.
Building with odds data
All 12- Historical odds in Python: one event's movesA flat price and a gap in the recording look alike until your code reads the gap list.
- Export betting odds to CSV in PythonPut each back and lay offer on its own row and a spreadsheet can filter by side, venue and depth.
- How to build an odds screen in PythonCeltic arrives under two spellings and Ferencváros under three, so a screen keyed on names splits rows.
- Odds API in Python: an oddsmatcher in 50 linesPython's urllib asks for an uncompressed reply by default, and the standard board answers that with a 400.
- How odds feeds handle suspended and void marketsHow feeds mark a suspended or void market, and what your code should do when a price disappears.
Matched betting
All 5- Matching bookmaker and exchange oddsA back and a lay price pair up only when six things agree. Where venue rules pull them apart.
- What is an oddsmatcher?An oddsmatcher ranks back prices against exchange lay prices. The data it needs, and the sums it runs.
- How to calculate qualifying loss and ratingsThe rating and qualifying loss formulas, worked on one back and lay pair at your own commission.
- How to build an oddsmatcherAn oddsmatcher is paired price data plus the product on top. Which half deserves your engineering time.
Racing and each way
All 6- Tipster proofing: recording the price on offerAn ASA ruling found each-way terms not visible in some proofing screenshots. Each-way board offers carry them.
- 2Up odds data explainedA bookmaker's 2Up price can differ from its ordinary match odds, so 2Up has a board of its own.
- Horse racing API in Python: Discord and TelegramPost each race's prices to Discord or Telegram from Python, and never the same table twice in a row.
- Best odds guaranteed (BOG) and your dataBOG pays the starting price when it beats the price you took. What that changes in a matched bet.
- Dutching data explainedThe stake arithmetic behind dutching, and a feed that sends the legs already grouped.
Exchange and lay prices
All 3bet365
All 3Buying a feed
All 6- Is there a free odds API?On OddsRelay, a quote prices a call before any of the Free allowance is spent.
- How to test an odds feed before you buyWhat to check with and without a key, and the red flags that should end a test early.
- Responsible data supply for betting productsA data supplier sells prices and takes no bets. Which obligations stay with your product.
- Switching odds data providers without downtimeRun the new feed beside the old one, compare it on your own markets, then cut over.
- What drives the cost of an odds feedWhat sets the price of an odds feed, and how to budget a month of calls before you buy.