Fundamentals
How bookmaker odds data is structured
Odds data is a four-level hierarchy: event to market to selection to price, plus bookmaker, region and freshness metadata. Once the shape clicks, integrating a feed is straightforward.
· 5 min read
Football is where odds data does most of its volume. This explains the main markets, how they're structured as event, market and selections, and how matched back/lay pairs work for football.
Football is the highest-volume market for odds data. A single fixture carries match odds (the 1X2 result), plus over/under goals, both teams to score, correct score, and many more markets, each with its own prices. It is also where matched betting and arbitrage do most of their volume, because the fixtures are frequent, the markets are deep, and the exchanges are liquid. This is the practical shape of football odds data: the markets, how they are structured, and what turns a raw price into something you can act on.
Match odds is the headline market, but a football fixture carries far more. The common ones, and how they behave in data, are:
match_odds market and the one most people picture first.yes and no. Simple, popular, and liquid on the exchanges.The important point is that markets vary in shape. match_odds has three tidy selections; correct_score has dozens. Football odds data has to represent both cleanly, which is why the structure below matters as much as the prices.
Football odds data is structured as three nested levels: the event, the market, and the selection. The event is the fixture. The market is a way of betting on it. The selection is a specific outcome within that market, and it is the thing that actually carries a price.
Arsenal vs Chelsea, with its competition and kickoff time.match_odds or over_under_2_5.Arsenal, Draw, or Over, each with a decimal price.That event → market → selection shape is consistent across sports, but football exercises it hardest because of the number of markets per fixture. We go through the general model in detail in how odds data is structured, and walk a full payload field by field in a response walkthrough.
A matched pair is a bookmaker back price joined to an exchange lay price for the same football selection. You back the selection at a book, for example bet365, and lay the same selection at an exchange. The relationship between those two prices, not either price alone, is what matched betting and arbitrage run on.
For a match-odds selection like Arsenal to win, the back price is what bet365 is showing, and the lay price is the current price to lay Arsenal on Betfair, Smarkets or Matchbook. The market depth that matters here is the exchange lay side: a lay price is only usable if there is real liquidity behind it, so the amount available to lay is part of the data, not an afterthought. A tidy back price with no liquidity to lay against is not an opportunity.
OddsRelay pairs those two sides for you before you receive the data, and attaches a rating and the qualifying_loss so a football selection is ready to render. Here is a single matched match-odds row (illustrative shape, not live data):
{
"event": "Arsenal vs Chelsea",
"market": "match_odds",
"selection": "Arsenal",
"back": { "bookmaker": "bet365", "odds": 2.10 },
"lay": { "exchange": "betfair", "odds": 2.14, "liquidity": 1840 },
"rating": 98.1,
"qualifying_loss": -0.12
// ... region, feed_type and freshness fields elided
}The part a raw feed cannot give you is the lay block joined to the back price, with rating and qualifying_loss computed. Without that pairing you have a football price; with it you have a football opportunity. The matched model, and how oddsmatchers and scanners consume it, is covered in the matched-betting data guide.
Coverage for football is strong across 60+ UK bookmakers, with bet365 included as standard. For the UK market that means the fixtures you would expect, the Premier League, EFL, cup competitions and the major European leagues shown by UK books, matched against three exchanges: Betfair, Smarkets and Matchbook for the lay side.
Regional coverage extends beyond the UK where it makes sense. South African fixtures, including the PSL, and Nigerian domestic football are reachable through the region model, alongside the international fixtures those markets follow, because the domestic books there are often the ones the large aggregators skip. Where a region has no exchange, we say so plainly rather than implying a matched, lay-covered feed that does not exist for it.
On freshness, the honest posture is pre-match polling on roughly a few-second cycle, which suits pre-match football matched betting and pre-match arbitrage well. That is where the durable value sits today. We do not claim live in-play streaming, because that is not what the feed ships. The exact books and fixtures live right now are on the coverage dashboard, so the claim is checkable rather than asserted.
Football is the deepest, busiest corner of odds data, structured as event, market and selection, and most useful when each back price is already matched against an exchange lay price with the liquidity attached. OddsRelay delivers football odds data that way across 60+ UK books, bet365 included, matched against Betfair, Smarkets and Matchbook, and it powers a leading UK matched-betting platform today. You can see the football coverage live on the coverage dashboard, or start a free trial and pull the matched rows yourself.
Written by
Founder, OddsRelay
James is the founder of OddsRelay — the odds-data feed behind matched betting, arbitrage and odds-comparison products: 60+ UK bookmakers with bet365 included, matched against exchange lay prices and delivered as one clean, documented API. He writes here about how that data layer actually behaves — coverage, matching, freshness and the trade-offs — from the side that builds and runs it. The same feed powers a leading UK matched-betting platform today.
Part of the Fundamentals cluster
What is an odds API? A 2026 guide for builders18+ · Data product for licensed operators. Please gamble responsibly.
Fundamentals
Odds data is a four-level hierarchy: event to market to selection to price, plus bookmaker, region and freshness metadata. Once the shape clicks, integrating a feed is straightforward.
· 5 min read
Matched betting & oddsmatcher
Matched betting runs on one thing: a bookmaker back price paired with the current exchange lay price, with a rating and qualifying loss attached. This is the complete picture of that data layer, and how to ship it without building the matcher.
· 7 min read
Fundamentals
What every field in a good odds API response is for, walked one at a time: the event/market/selection keys, the back and lay blocks, rating and qualifying_loss, and the envelope around them.
· 6 min read