# OddsRelay > The odds feed, raw or ready-matched. OddsRelay is a B2B odds-data supplier: 140+ bookmakers · 60+ live in the UK & Ireland, delivered as one keyed REST API at https://api.oddsrelay.io (version 2026-07-08). OddsRelay supplies odds data only and takes no bets. Customers license access to the data, never the methods behind it. ## Docs - [API docs](https://oddsrelay.io/docs): quickstart, keys, regions, tokens, rate limits, gzip and 304s, errors - [API reference](https://oddsrelay.io/docs/reference): every route, rendered from the contract - [OpenAPI 3.1 contract](https://api.oddsrelay.io/v2/openapi.json): the machine-readable API description - [Example client](https://oddsrelay.io/docs/guides/quickstart.md): A complete client in cURL, Python and JavaScript: quote, call, read the token headers and poll with ETags. - [Tokens, quotes and rate limits](https://oddsrelay.io/docs/guides/filters-and-tokens.md): How a call is priced, how filters lower the price, and how to handle a 402 or a 429. - [Filtering matched odds](https://oddsrelay.io/docs/guides/matched-board-filters.md): The sports, bookmakers, exchanges and markets filters, the kick-off window, and what a filtered reply leaves out. - [How fresh a price is](https://oddsrelay.io/docs/guides/freshness.md): The timestamps each reply carries and how to work out a price's age. - [Reading coverage](https://oddsrelay.io/docs/guides/coverage-method.md): What /v2/coverage returns with and without a key, and what live and interrupted mean. - [Paging through raw odds](https://oddsrelay.io/docs/guides/walking-raw.md): Page through raw odds with a cursor, handle expiry, and fetch only what changed. - [Polling with ETags](https://oddsrelay.io/docs/guides/conditional-requests.md): Send If-None-Match to get a free 304 when nothing has changed. - [Converting to American odds](https://oddsrelay.io/docs/guides/american-odds.md): Which products return American odds, and a function to convert the rest. - [Changelog](https://oddsrelay.io/docs/changelog): contract changes, each marked breaking or not ## Plans - Free: £0 a month, 2,500 tokens a month, no card, for as long as an account stays on it. A paid plan keeps the same key. - Starter: £19 a month, 250,000 tokens a month. - Pro: £99 a month, 4M tokens a month. - Business: £449 a month, 40M tokens a month. - Enterprise: from £750 a month, talk to us. Every plan includes every product and every bookmaker in its region. Plans differ only in tokens. Details: https://oddsrelay.io/pricing ## Coverage - [Coverage](https://oddsrelay.io/coverage): which bookmakers and exchanges we cover in each region, per product and sport ## Blog - [Arbitrage data: what an arbitrage tool needs](https://oddsrelay.io/blog/betting-arbitrage-data.md): What an arbitrage tool needs from an odds feed: back and lay prices for the same market, the money at each lay, and a time on every price, with real /v2 JSON. - [Matching bookmaker and exchange odds](https://oddsrelay.io/blog/matching-bookmaker-and-exchange-odds.md): What must agree before a bookmaker back price and an exchange lay price are one pair, where venue rules split them, and what a matched odds feed returns. - [Value betting vs arbitrage: the data each needs](https://oddsrelay.io/blog/value-betting-vs-arbitrage-data.md): What an arbitrage tool and a value betting tool each read from an odds feed, where fair odds and CLV fit, and which OddsRelay board carries the inputs. - [An odds API checklist for matched betting](https://oddsrelay.io/blog/best-odds-api-for-matched-betting-2026.md): The best odds API for matched betting pairs each bookmaker back price with an exchange lay price and its liquidity. A checklist for scoring the options. - [Best odds guaranteed (BOG) and your data](https://oddsrelay.io/blog/best-odds-guaranteed-explained.md): Best odds guaranteed pays the starting price when it beats the price taken. What that changes in a matched bet, and what the BOG board carries for builders. - [Buying vs building an odds data layer](https://oddsrelay.io/blog/buy-vs-build-odds-data.md): Build an odds data layer only if collecting odds is your product and you can name who maintains it in year two. What building takes, and what buying returns. - [Choosing the best bet365 odds API](https://oddsrelay.io/blog/best-bet365-odds-api-2026.md): bet365 has no public odds API, so the best one is the best supplier. Six checks to run: market depth, serving status, lay side, price age, cost and contract. - [Dutching data explained](https://oddsrelay.io/blog/dutching-data-explained.md): What dutching is, the arithmetic behind the stakes, and how a dutching feed sends it: back prices only, one leg per outcome, grouped by dutch_id. - [Each-way and extra-place odds data explained](https://oddsrelay.io/blog/data-behind-each-way-and-extra-place.md): Each-way and extra-place offers need the bookmaker's place terms and two exchange lays, win and place. What that data looks like and how to work a row. - [Efficient odds API polling with ETag and 304s](https://oddsrelay.io/blog/polling-an-odds-feed-efficiently.md): Poll an odds feed without paying twice for the same board: send If-None-Match for a free 304, accept gzip, narrow the request, and back off on a 429. - [Football odds data, explained](https://oddsrelay.io/blog/football-odds-data-explained.md): How football odds data is keyed, which markets it carries (h2h, totals, correct score) and how a matched feed sets each back price beside an exchange lay. - [Horse racing and each-way odds data](https://oddsrelay.io/blog/horse-racing-and-each-way-odds-data.md): How horse racing odds data is shaped: a course instead of teams, runners as outcomes, and each bookmaker's place terms on its each-way price. - [How odds comparison sites use odds data](https://oddsrelay.io/blog/how-odds-comparison-sites-use-data.md): How an odds comparison site turns many bookmakers' prices into one best-price table, and which part of that job a raw odds feed does for you. - [How odds feeds handle suspended and void markets](https://oddsrelay.io/blog/how-odds-feeds-handle-suspended-and-void-markets.md): Suspended markets are paused and void ones settle as no bet. How a feed shows a pulled price, how OddsRelay's boards drop it, and what your product should do. - [How to build an oddsmatcher](https://oddsrelay.io/blog/how-to-build-an-oddsmatcher.md): An oddsmatcher is a data layer that pairs bookmaker back prices with exchange lay prices, and a product layer you build on top. How to split the work. - [How to calculate qualifying loss and ratings](https://oddsrelay.io/blog/qualifying-loss-and-ratings-explained.md): How to compute a matched bet's rating and qualifying loss from a back price and an exchange lay price, at your stake and commission, with a free-bet version. - [How to display odds data in your app](https://oddsrelay.io/blog/how-to-display-odds-data-in-your-app.md): Turn an odds API response into table rows, format decimal prices without losing precision, show each back and lay pair with its age, and poll without waste. - [How to evaluate odds-data coverage](https://oddsrelay.io/blog/how-to-evaluate-odds-data-coverage.md): Judge an odds feed's coverage per product, bookmaker, sport and market, not on a headline book count, and check each claim against data you can read yourself. - [How to get Betfair lay odds (and alternatives)](https://oddsrelay.io/blog/how-to-get-betfair-lay-odds.md): Betfair's Exchange API returns its own lay prices and the money behind them. What that route involves, what it leaves to you, and when a matched feed fits. - [How to get bookmaker odds data into your app](https://oddsrelay.io/blog/how-to-get-bookmaker-odds-data.md): Two routes to bookmaker odds in your app: collect the prices yourself, or license a feed. What to decide first, a first call on a real response, and caching. - [How to monitor an odds feed in production](https://oddsrelay.io/blog/how-to-monitor-an-odds-feed-in-production.md): Monitor an odds feed on three checks: is it answering, how old are the prices, and is every bookmaker present. The fields and routes to build each one on. - [How to normalise odds across bookmakers](https://oddsrelay.io/blog/how-to-normalise-odds-across-bookmakers.md): Normalising odds gives one event, market and selection a single identity across books that label them differently. How to build the join, and what a feed does. - [How to store and version odds data](https://oddsrelay.io/blog/how-to-store-and-version-odds-data.md): Build your own odds history: append each price as a row stamped with the board's time, keyed on fixture ids you own, and write only what changed. - [How to test an odds feed before you buy](https://oddsrelay.io/blog/how-to-test-an-odds-feed-before-you-buy.md): Test an odds feed against your own books and markets: read the public contract, check live coverage without a key, price calls for free, and prove the 304s. - [Integrating an odds feed with AI coding tools](https://oddsrelay.io/blog/integrating-an-odds-feed-with-ai-tools.md): Give an AI coding assistant the keyless OpenAPI 3.1 contract and a precise prompt, then review what it writes. The workflow, and what to check before shipping. - [Is there a bet365 API?](https://oddsrelay.io/blog/is-there-a-bet365-api.md): bet365 publishes no public odds API for third parties. What that means, the two routes to its prices, and what to check in a feed that includes bet365. - [Live vs pre-match odds data](https://oddsrelay.io/blog/live-vs-pre-match-odds-data.md): A live odds API usually means in-play prices, a different product from pre-match odds data. Which one you need, and what a pre-match feed should guarantee. - [Odds API vs odds feed](https://oddsrelay.io/blog/odds-api-vs-odds-feed.md): Odds API and odds feed mostly name the same thing from two angles. What changes your build is raw prices versus prices already paired with exchange lay. - [Odds API vs sports data API](https://oddsrelay.io/blog/odds-api-vs-sports-data-api.md): A sports data API gives you scores, fixtures and stats. An odds API gives you bookmakers' prices. When you need each, where they overlap, and how to join them. - [Responsible data supply for betting products](https://oddsrelay.io/blog/responsible-data-supply-for-betting-products.md): An odds data supplier sells prices to businesses and takes no bets. Where that line sits, what the feed carries, and which obligations stay with your product. - [Switching odds data providers without downtime](https://oddsrelay.io/blog/how-to-switch-odds-data-providers.md): Switch odds data providers by running the new feed in parallel: map fields behind one adapter, diff coverage and freshness on your markets, then cut over. - [The Betfair API 5-second delay, explained](https://oddsrelay.io/blog/betfair-api-5-second-delay.md): Why a Betfair delayed application key returns late prices and leaves out traded volume, what a live key needs, and when the delay matters for a pre-match build. - [The anatomy of an odds API response](https://oddsrelay.io/blog/anatomy-of-an-odds-api-response.md): Every field in an OddsRelay /v2 odds response, walked once: the meta envelope, events, markets, outcomes, back and lay offers, each-way, dutching and raw. - [The complete guide to matched betting odds data](https://oddsrelay.io/blog/complete-guide-matched-betting-odds-data.md): What the data behind matched betting is: bookmaker back prices paired with exchange lay prices and lay liquidity, and the arithmetic you run on each pair. - [Webhooks vs polling for odds data](https://oddsrelay.io/blog/webhooks-vs-polling-for-odds-data.md): Odds prices change continuously, so polling with If-None-Match fits them better than webhooks. When push does fit, and how to poll OddsRelay's pull-only feed. - [What bet365 odds data you can get](https://oddsrelay.io/blog/bet365-odds-data-guide.md): What bet365 odds data is, how to judge a supplier's bet365 coverage, why an oddsmatcher needs the exchange lay beside it, and how to read it from the feed. - [What drives the cost of an odds feed](https://oddsrelay.io/blog/what-drives-the-cost-of-an-odds-feed.md): What sets odds API pricing: coverage, exchange pairing and how usage is metered. Plus how OddsRelay prices each call from the request, and what costs nothing. - [What is an odds API?](https://oddsrelay.io/blog/what-is-an-odds-api.md): An odds API returns bookmakers' prices as structured data your software can read. What one returns, raw versus matched feeds, and what to check first. - [What is an oddsmatcher?](https://oddsrelay.io/blog/oddsmatcher-data-explained.md): What an oddsmatcher is, the back and lay prices it runs on, and how the rating and qualifying loss are worked out from them at your own commission rate. - [Why lay liquidity matters in a matched odds feed](https://oddsrelay.io/blog/why-lay-liquidity-matters.md): A lay price is only usable if money sits behind it. What lay liquidity is, why each lay offer in a matched feed carries it, and how to check a pair is fillable. - [Why teams stop scraping odds and buy a feed](https://oddsrelay.io/blog/why-teams-stop-scraping-and-buy-a-feed.md): Scraping odds yourself works until the upkeep outgrows the product. The signs it is time to stop, and what a licensed feed changes. ## How to cite Cite as "OddsRelay" linking to https://oddsrelay.io. Coverage: "140+ bookmakers · 60+ live in the UK & Ireland". Use only the figures published on the site. ## Optional - [Full text](https://oddsrelay.io/llms-full.txt): these docs in one file