Skip to content

BlogBuying odds data

What drives the cost of an odds feed

OddsRelay · · Updated · 5 min read

Odds feed prices follow two things: the work a vendor does to produce the data, and the way it meters your use of it. Coverage and exchange pairing decide what a feed is worth. The metering decides what your month actually costs.

Five things set the price

  • Coverage breadth and depth: how many bookmakers, and how far into each book's markets. The headline match-odds price is the easy part. The deeper markets, and the books your users expect to see, are where upkeep goes.
  • Raw or matched: raw is each bookmaker's prices as the book shows them. Matched pairs each back price with an exchange lay price for the same selection, which is extra work on top of raw.
  • Freshness: the younger the prices, the more work they take to deliver. Whatever a vendor charges for it, check that each reply is stamped with when it was built and when each venue was last read, so you can measure price age yourself.
  • The metering model: a flat licence, a price per request, or credits weighted by how much each request asks for.
  • Support and terms: self-serve docs, or onboarding, custom bookmakers and a contract negotiated per deal.

Metering matters more than the headline figure

Two feeds with the same monthly figure can cost you very different amounts. What matters is how your own calls are counted. A comparison page that polls a whole board all day spends differently from an oddsmatcher that asks for one sport at a handful of books.

So ask any vendor whether a narrower request costs less, whether asking again for unchanged data costs anything, and whether you can learn a call's price before you make it. Our view is that the last should be a yes everywhere. If the only way to find out what a call costs is to make it and read the invoice, you are budgeting blind.

The cheapest feed can cost the most to run

A low sticker often means the work has been left with you. A raw feed is cheaper to publish because it stops before the pairing. If your product needs back and lay side by side, someone still has to match events across venues, fetch exchange prices and check there is money on the lay side. That cost lands in salaries and calendar time instead of on an invoice.

Compare total cost to a working product. We set out the effort in buy versus build, and the wider vendor checklist is in how to choose an odds data provider.

Every OddsRelay plan gets every product

The self-serve plans are Free, Starter, Pro, Business. Each one carries the same data: the six matched boards (Standard, Each-way, Extra place, Best odds guaranteed, Dutching, 2Up) plus raw, across the 60+ bookmakers live in the UK & Ireland, bet365 included. Plans differ only in the size of the monthly token pool.

Dutching groups back prices across bookmakers. The other matched boards pair each back price with lay from Betfair, Smarkets, Matchbook and BETDAQ, liquidity-gated.

Enterprise is quoted per deal, for custom bookmakers and for terms and billing agreed case by case. The figures for every plan are on the pricing page.

A call's price comes from the request

Each call spends tokens from the pool, and its price is set by the board and the filters you send. The size of the reply plays no part. Each board has a whole-board price. On standard, dutching and raw, every sport, bookmaker, exchange or market you name narrows it, so a request for one sport at a couple of bookmakers costs no more than the whole board and usually less. The remaining boards cost the same whatever you filter.

Several things cost nothing at all:

  • 304 replies: every data reply carries an ETag. Send it back as If-None-Match, and an unchanged board answers 304 for free.
  • Quotes: add quote=true to any data request and it returns the price instead of the board, without spending.
  • Discovery and accounting: /v2/sports, /v2/events, /v2/bookmakers, /v2/regions, /v2/usage and the price table at /v2/pricing.
  • Empty replies and refusals: a call that returns no events, or is refused, spends nothing.

Pricing a call before making it · example

curl --compressed -s -H "Authorization: Bearer $ODDSRELAY_KEY" \
  "https://api.oddsrelay.io/v2/odds/standard?region=uk&sports=soccer&quote=true"
# {"cost": …, "remaining": …, "rate_card": "…"}

Every reply to a valid key carries an X-Tokens-Cost header, with X-Tokens-Remaining beside it when the balance is known. If a call's price is above what is left, the answer is a 402 and nothing is served or spent.

Budget a month before you buy

You can work out a month's spend on paper:

  1. List the boards your product renders. An oddsmatcher may need standard and each-way. A comparison page may only need raw.
  2. Narrow each request to what you actually show: the sports, bookmakers and markets on screen.
  3. Quote each distinct request once with quote=true.
  4. Multiply each price by how often you will call it, then take off the calls you expect to come back 304.
  5. Set the total against the plan pools on the pricing page.

The full rules, including how filters combine on each board and what to do on a 402 or a 429, are in filters and tokens. How to keep the 304 share high is in polling an odds feed efficiently.

Quote your own calls

Quoting needs a key, and keys are issued on request. Request access, and see live coverage first to check the bookmakers you need are live.