Enterprise Odds Feed Pricing: 4 of 5 Vendors Quote by Sales Call

Enterprise Odds Feed Pricing - OddsPapi API Blog
How To Guides September 18, 2026

You run a mid-sized sportsbook, a trading desk or a prediction market, and you need an odds feed. Your first question is what it costs. On 8 September 2026 we read the odds product pages, the developer portals and the contact pages of five vendors. Sportradar, Genius Sports, LSports and OddsMatrix publish no price. Each one routes you to a sales team, an account representative or a trial request form. OddsPapi publishes a calculator: pick bookmakers, pick sports, pick a request tier, and pay by card.

Are Sportradar’s sports betting APIs affordable for an early-stage sportsbook? Sportradar does not say. Its developer portal states that its APIs are a business-to-business service, its Odds Comparison Core documentation says the feed is enabled per API key by Sportradar Support, and its odds page ends in “Contact us”. Genius Sports, LSports and OddsMatrix read the same way. The one number you can read today comes from OddsPapi: the six major sports cost $27 a month as a bundle, a bookmaker feed costs $10 to $30 a month, and the request tier multiplies that sum by 1, 2, 5 or 10. Nine major feeds plus the six sports come to $1,285 a month on the Pro tier, and the free tier gives you 250 requests a month on the full catalogue while you evaluate.

This post is the operator-side twin of our odds API pricing comparison, which covers the developer vendors (The Odds API, SportsGameOdds, OpticOdds). Here the buyer is a book, and the vendors are the ones a book puts on its shortlist.

What We Checked, and What Each Page Said About Price

Each row below comes from the vendor’s own site, read on 8 September 2026. We did not use third-party price guides, forums or resellers. If a vendor publishes no price, the cell says so and names the page we read.

Vendor Pages read Price on the page What the page asks you to do
Sportradar sportradar.com odds product page, developer.sportradar.com, Odds Comparison Core overview and FAQ Sales-gated, no public price “Contact us”, “Get in touch with our team”. OC Core is “configured by Sportradar Support at the API key level”; the FAQ says “Reach out to your account representative or Sportradar Support to trial”
Genius Sports geniussports.com/sportsbook, geniussports.com/contact Sales-gated, no public price “Let’s talk”, “Contact Sales”
LSports lsports.eu, lsports.eu/trade, lsports.eu/contact (lsports.eu/pricing returns 404) Sales-gated, no public price “Free Trial”, “talk to us”, a sales team listed by region
OddsMatrix (EveryMatrix) oddsmatrix.com, the FAQ, the bookmaker feed page, the contact page (oddsmatrix.com/pricing returns 404) Sales-gated, no public price. FAQ: “Pricing depends on the amount and the detail level of the sports data you require as well as the purpose of using our services” “One-month free trial”, “Get started”, “Request a Data Feed Quote”
OddsPapi oddspapi.io/en/pricing, oddspapi.io/en/sign-up, docs.oddspapi.io Published calculator: (bookmakers + sports) × request tier Sign up, select, pay. WebSocket and live odds sit on the B2B plan, which the docs cover

Four vendors route the price question to a contact form. That is the finding, and a founder reaches the same finding after a week of emails. The sections below put numbers where numbers exist.

The Five Feeds Side by Side

Coverage claims for the four enterprise vendors are quoted from their own pages. OddsPapi’s figures were measured on the live API the same day; the code is further down.

Feature Sportradar Genius Sports LSports OddsMatrix OddsPapi
Public price Sales-gated Sales-gated Sales-gated Sales-gated Calculator, card payment
Trial Via account representative or Support Contact sales Free trial via contact form One-month free trial via contact form Free tier, 250 requests a month, all bookmakers and sports
Bookmakers quoted “140+ global bookmakers” (OC Core) Not stated on the sportsbook page Not stated; “1+” live sources on the TRADE page “Over 150 bookmaker suppliers” 357 slugs in the catalogue on 8 Sep 2026, 282 with live odds
Scale quoted “More than 900,000 events in 32 sports” (live data) “300 sportsbook partners”, “500 expert sportsbook traders” “100+” sports, “2,500+” markets, “15,000+” leagues, “3 million” annual fixtures 70+ sports, 133,055 live football events a year 60+ sports, 262 bookmakers and 743 market IDs on one Serie B fixture
Delivery REST APIs on the developer portal “Data & Odds APIs” Push feed, “0 to 1 seconds” latency claimed on the TRADE page XML and JSON, push or pull; pull limited to one request per 30 seconds REST plus WebSocket with resume and replay
Settlement Part of the wider product set Part of Genius Trading Services Part of TRADE “Lightning-fast settlements” Per-outcome grades on the free tier; margin and score on the B2B plan
Where the vendor wins Official data, integrity, managed trading, streams Official NFL, Premier League, FIBA and Serie A content; trading services; BetVision Trading platform, engagement tools, Defend system Turnkey sportsbook platform Price transparency, breadth, self-serve start

How OddsPapi Pricing Works

The pricing page is a three-step calculator. The formula sits at the top of the page: (bookmakers + sports) × requests = the monthly price.

  • Sports. The Big 6 (soccer, basketball, tennis, baseball, American football, ice hockey) cost $5 each, with a 10% discount when you take all six. Esports titles cost $3 each. Every other sport costs $2. All six majors rendered at $27.00 a month when we selected them.
  • Bookmakers. The calculator’s bookmaker list prices each feed at $10, $20 or $30 a month. On 8 September 2026 the list held 82 feeds at $10, 178 at $20 and 54 at $30. bet365, Betfair Exchange, Polymarket, Kalshi, FanDuel, Caesars, Stake and Singbet sit at $30; DraftKings, BetMGM, bwin, Unibet and Betano at $20; 1xBet, Betway and Ladbrokes at $10. Nine feeds, Pinnacle among them, show as locked with a contact link instead of a price. Baskets of 10 or more feeds get 10% off, 20 or more get 15% off, and 30 or more get 20% off; the worked example below stays under that first threshold.
  • Requests. Normal (×1) is about 5,000 requests a month, Dev (×2) about 100,000, Pro (×5) about 500,000 and Ultra (×10) about 1,500,000. The multiplier applies to the whole sum: the six majors at $27 rendered as $135.00 a month on Pro.

A worked example at list price. Take nine feeds a mid-sized book benchmarks against: bet365, Betfair Exchange, Polymarket, Kalshi and FanDuel at $30, DraftKings, BetMGM, bwin and Unibet at $20. That is $230 a month. Add the six majors at $27 and the sum is $257. On Normal that is $257 a month for about 5,000 requests. On Dev it is $514 for about 100,000. On Pro it is $1,285 for about 500,000. On Ultra it is $2,570 for about 1.5 million. Run the calculator with your own basket to confirm the total before you pay; the arithmetic above uses the calculator’s per-item prices.

The self-serve plan leaves out two things. Live odds and player props are listed as features of the custom plan, and the pricing page states that WebSocket access comes through the B2B plan or by contacting the team. The B2B product is documented in full at docs.oddspapi.io, and the section after the tutorial walks through what it ships.

The free tier is the evaluation path. Sign up, take a key, and read all sports and all bookmakers with 250 requests a month, historical odds included. There is no card and no sales call.

Tutorial: Measure the Feed Before You Price It

Three scripts, each run against the live v4 API on 8 September 2026. The key goes in the apiKey query parameter. Put yours in the ODDSPAPI_API_KEY environment variable.

Step 1: Count the bookmakers you would be paying for

The catalogue lists brand feeds, regional skins flagged with cloneOf, and a few internal test feeds. Count them before you build a basket.

import os
import requests

API_KEY = os.environ["ODDSPAPI_API_KEY"]
BASE = "https://api.oddspapi.io/v4"

books = requests.get(f"{BASE}/bookmakers", params={"apiKey": API_KEY}).json()

live = [b for b in books if b["liveOdds"]]
clones = [b for b in books if b["cloneOf"]]
test_feeds = [b for b in books if b["slug"] in ("demo", "singbet-b") or "+" in b["slug"]]

print(f"catalogue:        {len(books)}")
print(f"liveOdds true:    {len(live)}")
print(f"cloneOf set:      {len(clones)}")
print(f"internal feeds:   {len(test_feeds)}  {[b['slug'] for b in test_feeds]}")
print(f"independent live: {len([b for b in live if not b['cloneOf'] and b not in test_feeds])}")

Output on 8 September 2026:

catalogue:        357
liveOdds true:    282
cloneOf set:      117
internal feeds:   4  ['demo', 'pinnacle+30', 'pinnacle+5', 'singbet-b']
independent live: 170

The marketing number is 350+ bookmakers, and the catalogue backs it. The number a trading desk should plan around is 170: live feeds that are neither a flagged clone nor an internal test slug. Skip the four internal feeds in any consensus, or Pinnacle counts three times.

Step 2: Cost per fixture, measured

OddsPapi bills a request as a request, whatever comes back. So the question a buyer should ask is how much board one request returns. The script pulls one fixture and counts.

import os
import requests

API_KEY = os.environ["ODDSPAPI_API_KEY"]
BASE = "https://api.oddspapi.io/v4"
FIXTURE = "id1000039068823262"   # Cuiaba v Athletic Club, Brasileiro Serie B

r = requests.get(f"{BASE}/odds", params={"apiKey": API_KEY, "fixtureId": FIXTURE})
r.raise_for_status()
board = r.json()["bookmakerOdds"]

markets, prices, active = set(), 0, 0
for slug, book in board.items():
    for market_id, market in book["markets"].items():
        markets.add(market_id)
        for outcome in market["outcomes"].values():
            for price in outcome["players"].values():
                prices += 1
                active += price["active"]

print(f"one request returned {len(board)} bookmakers, "
      f"{len(markets)} market IDs, {prices:,} prices "
      f"({active:,} active), {len(r.content)/1e6:.1f} MB")

# What the request tiers on the pricing calculator buy you at this depth.
# A desk that snapshots one fixture every 60 s for the 24 h before kick-off.
polls_per_fixture = 24 * 60
for tier, monthly in [("Normal", 5_000), ("Dev", 100_000),
                      ("Pro", 500_000), ("Ultra", 1_500_000)]:
    fixtures = monthly // polls_per_fixture
    print(f"{tier:<7} {monthly:>9,} req/mo -> {fixtures:>3} fixtures a month "
          f"at a 60 s poll, {fixtures * len(board):,} book-boards")

Output on Cuiabá v Athletic Club (Brasileiro Série B, kick-off 8 September 2026 23:30 UTC):

one request returned 262 bookmakers, 743 market IDs, 82,106 prices (57,883 active), 28.3 MB
Normal      5,000 req/mo ->   3 fixtures a month at a 60 s poll, 786 book-boards
Dev       100,000 req/mo ->  69 fixtures a month at a 60 s poll, 18,078 book-boards
Pro       500,000 req/mo -> 347 fixtures a month at a 60 s poll, 90,914 book-boards
Ultra   1,500,000 req/mo -> 1041 fixtures a month at a 60 s poll, 272,742 book-boards

One request, 262 bookmakers, 28 MB. Pinnacle, bet365, Betfair Exchange, Polymarket, Kalshi, DraftKings and FanDuel were all on the board. Of the 259 books quoting the 1X2, 90 distinct price tuples remained after we deduped identical quotes, which is the number to use in a consensus. Pass bookmakers=pinnacle and the same request returns 88 KB. The request count is the same either way, so a book that needs the whole market pays the same as a book that needs one reference price. On the Pro tier, a 60-second snapshot cadence over the final 24 hours covers 347 fixtures a month. A Premier League weekend is 10. A desk that needs sub-second updates on 50 fixtures at once should be on the WebSocket, which is the B2B plan.

Step 3: Grade a settled fixture

Settlement is the operator workflow that decides whether a feed is a data source or a dependency. Select finished fixtures on statusName == "Finished", because hasOdds flips to false once a fixture ends.

import os
from collections import Counter
import requests

API_KEY = os.environ["ODDSPAPI_API_KEY"]
BASE = "https://api.oddspapi.io/v4"
FIXTURE = "id1000024068687884"   # Orense v Guayaquil City, finished 8 Sep 2026

r = requests.get(f"{BASE}/settlements", params={"apiKey": API_KEY, "fixtureId": FIXTURE})
r.raise_for_status()
markets = r.json()["markets"]

grades = Counter()
for market in markets.values():
    for outcome in market["outcomes"].values():
        for player in outcome["players"].values():
            grades[player["result"]] += 1

print(f"{len(markets)} markets graded")
for grade in ("WIN", "LOSE", "HALFWIN", "HALFLOSS", "PUSH", "UNDECIDED"):
    print(f"{grade:<10} {grades[grade]:>5}")

# Grade one bet: home win on the 1X2 market (market 101, outcome 101)
home = markets["101"]["outcomes"]["101"]["players"]["0"]["result"]
print(f"1X2 home outcome settled {home}")

Output:

1066 markets graded
WIN          274
LOSE         275
HALFWIN       16
HALFLOSS      16
PUSH          21
UNDECIDED   1622
1X2 home outcome settled WIN

The 1,622 UNDECIDED rows are handicap and total rungs that no book priced on this fixture, so there was nothing to grade. Each priced outcome carries a grade, and the half results show the grader handles quarter-line Asian handicaps. Free tier, same key. The B2B settlement endpoint adds the winning margin, the final score and a reason field for cancellations. Our trading desk onboarding playbook wires this into a five-day integration plan.

What the B2B Plan Ships

The self-serve calculator covers REST. The operator product is the v5 feed at docs.oddspapi.io, and the facts below come from that documentation.

  • WebSocket-first delivery at wss://v5.oddspapi.io/ws, with channels for odds, fixtures, scores, clocks, bookmakers, futures, currencies, lineups, injuries and stats. Encodings are JSON, MessagePack, zstd and dictionary-trained zstd, which the docs put at 7 to 9 times smaller on the odds channel.
  • Resume and replay. The gateway returns a serverEpoch and a per-channel entryId cursor. Reconnect inside the replay window (60 seconds in the documented example) and the server replays what you missed; outside it, you get a snapshot_required message for the affected channels and refill from REST. The WebSocket pipeline post shows the handler.
  • Opening and closing line endpoints. GET /fixtures/odds/clv and GET /futures/odds/clv return the earliest and the last recorded price per outcome per bookmaker, so a CLV audit is one call per fixture.
  • Settlement. GET /fixtures/settlement grades each outcome WIN, LOSE, PUSH, HALFWIN, HALFLOSS, CANCELLED or UNDECIDED, with margin and score.
  • Fixture mapping. GET /fixtures/mapping joins an OddsPapi fixture to a bookmaker’s native fixture ID and flags rotated participants. On v4, each fixture already ships ten provider IDs (Betradar, Genius, LSports, OpticOdds, Pinnacle and others), so reconciliation against an incumbent feed is a key you already hold.
  • Reliability. The docs publish measured observation delays (Polymarket 0.05 s, Betfair Exchange 0.10 s, Pinnacle 0.38 s) and a public status page, and state that uptime targets and support response times are set per agreement for B2B customers.
  • REST limits. 10 requests a second on the odds endpoints, 200 a minute elsewhere, with rate-limit headers on each response.

The docs also state that the majority of the top ten prediction markets run on OddsPapi data. If you are a prediction market rather than a book, that is the reference you want to ask about.

Where the Enterprise Vendors Win

An honest comparison names what the incumbents sell that an aggregated odds feed does not.

  • Official data rights. Genius Sports lists official content for the NFL, the Premier League, FIBA and Serie A. If your regulator or your league deal requires official data, that is the product, and no aggregator replaces it.
  • Integrity. Sportradar’s integrity services page cites more than a million sporting events monitored a year and 11,000+ suspicious matches detected. LSports sells a Defend system. OddsPapi does not run a bet-monitoring service.
  • Managed trading. Sportradar’s Managed Trading Services, Genius Trading Services and the LSports TRADE platform run your book for you. OddsPapi hands you prices, settlement and mapping; the trading logic stays yours.
  • Streaming and platform. Genius BetVision and Sportradar Live Streams put video in the bet slip. EveryMatrix and Sportradar both sell a turnkey sportsbook. OddsPapi is a feed, and it plugs into those platforms rather than competing with them.
  • Live data collection. Sportradar quotes 12,600 scouts and more than 900,000 events in 32 sports. OddsPapi’s live data is the bookmaker board, so where you need in-venue scouting you still need a scout network.

A tier-one operator with league deals buys the official stack and adds OddsPapi for the board it does not see. A mid-sized book, a trading desk or a prediction market that needs prices, settlement and mapping at a published rate starts with OddsPapi and adds the official stack when a contract demands it.

How to Decide

  • Early-stage sportsbook. Take the free key, run the three scripts above on your own fixtures, and price a basket on the calculator. You will have a number before the first vendor call is booked.
  • Mid-sized operator replacing or adding a feed. Pull the ten provider IDs off /fixtures and reconcile against your incumbent for a week. Then move to the B2B plan for WebSocket, CLV and settlement.
  • Trading desk or prediction market. Start on the B2B docs. The WebSocket cursors, the exchange depth ladders and the settlement grades are the parts of the stack you will read first.
  • Operator with a league data obligation. Keep the official vendor for the obligation and add OddsPapi for market coverage. The Sportradar comparison and the Genius Sports comparison cover the product-level differences in detail.

For the developer-side vendors, read the six-provider odds API comparison. The SportsDataIO comparison covers a vendor whose trial is league-limited and whose pricing is also sales-gated.

FAQ: Enterprise Odds Feed Pricing

Are Sportradar's sports betting APIs affordable for an early-stage sportsbook?

Sportradar does not publish a price for its odds products. On 8 September 2026 its odds page, its developer portal and its Odds Comparison Core documentation all route you to Sportradar Support, an account representative or a contact form, and the portal states that its APIs are a B2B service. An early-stage book cannot read a number off the site; it has to book the call. If you need a price today, OddsPapi publishes a calculator and a free tier of 250 requests a month on the full bookmaker catalogue.

What does an odds feed cost a mid-sized betting operator?

Four of the five vendors we checked quote by sales call, so the market rate is private. OddsPapi prices in the open: the six major sports cost $27 a month as a bundle, a bookmaker feed costs $10, $20 or $30 a month, and the request tier multiplies that sum by 1, 2, 5 or 10 for about 5,000 to 1.5 million requests a month. Nine major feeds plus the six sports come to $1,285 a month on the Pro tier at list price.

Which odds feed vendors publish prices?

Of Sportradar, Genius Sports, LSports, OddsMatrix and OddsPapi, OddsPapi is the one vendor with a public price on 8 September 2026. OddsMatrix and LSports offer a trial through a contact form, Genius Sports asks you to contact sales, and Sportradar enables its odds feeds per API key through Sportradar Support.

Can a sportsbook run settlement off an odds feed?

OddsPapi grades outcomes on finished fixtures. On a LigaPro fixture played on 8 September 2026 the settlements endpoint returned a result for 1,066 markets: WIN, LOSE, HALFWIN, HALFLOSS or PUSH on each priced outcome, and the half results show the grader handles quarter-line Asian handicaps. The B2B documentation adds the winning margin and the final score to each grade.

Where do the enterprise vendors win?

Official league data rights, integrity monitoring, managed trading and streaming. Genius Sports lists official content for the NFL, the Premier League, FIBA and Serie A, Sportradar monitors more than a million events a year for match-fixing, and Sportradar, Genius Sports and LSports each sell a managed trading service. OddsPapi is an aggregated odds and settlement feed, so it sits beside those services rather than replacing them.

Get a Price Without Booking a Call

Four of the five vendors above will price your feed after a sales conversation. OddsPapi prices it on a page. Get a free API key, run the scripts on your own fixtures, and price your basket on the calculator. For WebSocket, CLV and settlement with margins, the B2B reference is docs.oddspapi.io.