Skip to Content
API ReferenceSportsbooks

Sportsbooks

Get a list of available sportsbooks and their current status, including which tier is required to access each book’s data.

EndpointsPermalink for this section

GET /api/v1/sportsbooks

Requires an API key. Available on all tiers (Free included). Unauthenticated requests return 401.

List All SportsbooksPermalink for this section

Example RequestsPermalink for this section

curl -X GET "https://api.sharpapi.io/api/v1/sportsbooks" \ -H "X-API-Key: YOUR_API_KEY"

ResponsePermalink for this section

Real response, truncated to 6 of the 49 books currently returned (has_limits, added September 2026, has been inserted into each row to show the current shape). Every entry carries the full field set; numerical_id is omitted on unmapped books (like Bet365 US below — also the only book ID with capitals and a space, kept in display-name form for historical reasons):

{ "data": [ { "id": "draftkings", "display_name": "DraftKings", "short_name": "DraftKings", "numerical_id": 17, "category": "major_us", "is_sharp": false, "has_live_odds": true, "has_player_props": true, "has_limits": false, "regions": ["US"], "requires_tier": "free", "status": "active", "event_count": 457, "last_update": "2026-07-02T18:17:55.852268618Z", "coming_soon": false }, { "id": "fanduel", "display_name": "FanDuel", "short_name": "FanDuel", "numerical_id": 19, "category": "major_us", "is_sharp": false, "has_live_odds": true, "has_player_props": true, "has_limits": false, "regions": ["US"], "requires_tier": "free", "status": "active", "event_count": 494, "last_update": "2026-07-02T18:17:55.921509102Z", "coming_soon": false }, { "id": "Bet365 US", "display_name": "Bet365 US", "short_name": "Bet365 US", "category": "regional", "is_sharp": false, "has_live_odds": true, "has_player_props": true, "has_limits": false, "regions": ["US"], "requires_tier": "hobby", "status": "active", "event_count": 35, "last_update": "2026-07-02T18:16:34.848726023Z", "coming_soon": false }, { "id": "polymarket", "display_name": "Polymarket", "short_name": "Polymarket", "numerical_id": 29, "category": "exchange", "is_sharp": false, "has_live_odds": false, "has_player_props": false, "has_limits": false, "regions": ["GLOBAL"], "requires_tier": "hobby", "status": "active", "event_count": 1040, "last_update": "2026-07-02T18:17:44.093204728Z", "coming_soon": false }, { "id": "saba", "display_name": "SABA", "short_name": "SABA", "numerical_id": 32, "category": "regional", "is_sharp": false, "has_live_odds": true, "has_player_props": true, "has_limits": false, "regions": ["GLOBAL"], "requires_tier": "pro", "status": "active", "event_count": 2930, "last_update": "2026-07-02T18:17:50.012487996Z", "coming_soon": false }, { "id": "pinnacle", "display_name": "Pinnacle", "short_name": "Pinnacle", "numerical_id": 28, "category": "sharp", "is_sharp": true, "has_live_odds": true, "has_player_props": true, "has_limits": true, "regions": ["GLOBAL"], "requires_tier": "sharp", "status": "active", "event_count": 740, "last_update": "2026-07-02T18:17:55.967604052Z", "coming_soon": false } ], "updated_at": "2026-07-02T18:17:55.590257979Z" }

Sportsbook Object SchemaPermalink for this section

FieldTypeDescription
idstringUnique identifier (use in API filters)
numerical_idintegerStable integer key (frozen, never reused; omitted when unmapped). New (May 2026) — additive, optional. See Entity reference IDs.
display_namestringHuman-readable name
short_namestringShort display name
categorystringBook category (e.g. major_us, regional, sharp)
has_live_oddsbooleanSupports live/in-play odds
has_player_propsbooleanSupports player prop markets
has_limitsboolean | nullPublishes per-selection bet limits (max_bet on odds rows). Derived from the book’s current snapshot — true, false, or null when no rows have been observed. New (September 2026); see below.
regionsstring[]Available regions: US, UK, EU, AU, GLOBAL
is_sharpbooleanWhether the book is considered a sharp/efficient market
statusstringactive or inactive
event_countintegerNumber of events currently available
last_updatestringISO 8601 timestamp of last data update
requires_tierstringMinimum tier required: free, hobby, pro, or sharp (string; never null)
coming_soonbooleantrue for announced books not yet live

Changed (September 2026): two has_player_props declarations corrected. has_player_props is true when a book is declared to support player props or is currently serving player_* markets. fliff: true → false — Fliff prices moneyline, spread and totals only and has never emitted a player-prop market. prophetx: false → true — ProphetX emits player props on every active day on record, so it already read true whenever it was active; it now reads true during quiet windows too. If you filter books on has_player_props, fliff leaves your book set and prophetx is always in it. The Props column in the per-book tables below is regenerated from the live response and reflects the correction from its next regeneration.

The event_count may be 0 and last_update may be null if a sportsbook is temporarily unavailable or experiencing data delays.

New (May 2026): numerical_idPermalink for this section

numerical_id is a frozen, dense-from-1 integer assigned per sportsbook in the SharpAPI atlas. It’s stable across rebrands and slug renames — pinnacle is numerical_id: 28 regardless of any future display-name changes.

  • Frozen: never reused or remapped.
  • Optional: omitted for sportsbooks not yet mapped (e.g. brand-new books in the catalog before assignment); slug id is always present.
  • Domain-scoped: unique across sportsbooks only.

Every odds row and opportunity leg also carries a matching sportsbook_ref block ({id, label, numerical_id}). See Entity reference IDs.

New (September 2026): has_limitsPermalink for this section

has_limits reports whether a sportsbook publishes per-selection bet limits — the max_bet field on odds rows. Only a small minority of books do (12 of 49 at the time of writing), and on every other book max_bet is simply absent from the row, which looks identical to a selection that happens to carry no limit. has_limits is the per-book answer to “is this absence a missing capability or a missing value?”

ValueMeaning
trueAt least one row in the book’s current snapshot carries max_bet
falseRows were observed and none carry max_bet — a real negative finding
nullNo rows observed, so no claim is made — rows with coming_soon: true and books that currently have zero rows
  • Derived, not declared. Unlike has_live_odds and has_player_props, which combine observed data with a per-book configuration entry, has_limits is computed from the odds SharpAPI is serving right now and nothing else. When a book starts or stops publishing limits, the flag follows on its own — the set of limit-publishing books does change, so read the flag rather than caching a list of books.
  • Any row, not every row. true means the book publishes limits somewhere in its current snapshot; individual rows can still omit max_bet. Treat it as “worth reading max_bet on this book”, not as a guarantee on every selection.
  • Always present; null is not false. The key is on every row. Guard the three states explicitly — a client that treats null as “no limits” re-creates the ambiguity the field exists to remove.
  • Same freshness as last_update. Both are recomputed in the same pass, so has_limits lags the true book state by the same amount: at most about 40 seconds across the recompute, in-process response cache and HTTP cache layers, and typically 15 seconds or less.

See Liquidity and Limits for how to use max_bet once a book reports has_limits: true.

Book Access by TierPermalink for this section

The per-tier and per-category book tables below are regenerated from the live /sportsbooks response when the docs are updated (last regenerated 2026-07-02) and can lag the roster between updates. The authoritative, always-current list is the GET /api/v1/sportsbooks response itself — fetch it rather than relying on these tables.

The requires_tier field indicates the minimum subscription tier needed to access a sportsbook’s odds data through the API.

TierBooks AvailableIncluded Sportsbooks
Free2DraftKings, FanDuel
Hobby41+ Bally Bet, Bet365 US, Betano, BetMGM, BetOnline, betPARX, BetRivers, Betway, Bovada, bwin, Caesars, Coral, Fanatics, Fanatics Markets, Fliff, Galera.bet, Gemini, Goldrush, Hard Rock Bet, Kalshi, Ladbrokes, Ladbrokes UK, Matchbook, Novig, Paddy Power, Polymarket, PrizePicks, PrizePicks Flex, Rebet, Robinhood, Sky Bet, Smarkets, Sportzino, Stake, SX Bet, theScore Bet, Thrillzz, Underdog Fantasy, Unibet
Pro42+ SABA
Sharp49Choose any 25, including sharp books like Pinnacle
Enterprise49All available sportsbooks

requires_tier is the book’s minimum tier class — it is not the only gate. Each tier also has a book-count cap (Free 2, Hobby 5, Pro 15, Sharp 25, Enterprise unlimited), and Free keys are additionally whitelisted to DraftKings + FanDuel only — so a Free key cannot access eighteenbet or sportingbet_br even though those books carry requires_tier: "free". See the tier comparison for the full matrix.

Pinnacle, Circa Sports, SBOBET, 1xBet, ProphetX, and both Betfair feeds (betfair and betfair_lay) require Sharp tier or higher. Pinnacle is a sharp book whose efficient lines are used as the reference for +EV calculations. Circa Sports is another known sharp book with deliberately tight lines and a focused prop menu. Requesting sharp book odds on Free, Hobby, or Pro tier will return a 403 tier_restricted error.

Understanding requires_tierPermalink for this section

ValueMeaning
"free"Available on all tiers, including Free
"hobby"Requires Hobby tier or higher
"pro"Requires Pro tier or higher
"sharp"Requires Sharp or Enterprise tier

Supported SportsbooksPermalink for this section

Major US BooksPermalink for this section

IDNameLivePropsTier
draftkingsDraftKingsYesYesFree
fanduelFanDuelYesYesFree
ballybetBally BetYesYesHobby
Bet365 USBet365 USYesYesHobby
betmgmBetMGMYesYesHobby
betonlineBetOnlineYesYesHobby
betparxbetPARXYesYesHobby
betriversBetRiversYesYesHobby
bovadaBovadaYesYesHobby
caesarsCaesarsYesYesHobby
fanaticsFanaticsYesYesHobby
fanatics_marketsFanatics MarketsYesNoHobby
fliffFliffYesYesHobby
geminiGeminiYesYesHobby
hardrockHard Rock BetYesYesHobby
novigNovigYesYesHobby
prizepicksPrizePicksYesYesHobby
prizepicks_flexPrizePicks FlexYesYesHobby
rebetRebetYesYesHobby
robinhoodRobinhoodYesYesHobby
sportzinoSportzinoYesNoHobby
thescorebettheScore BetYesYesHobby
thrillzzThrillzzYesYesHobby
underdogUnderdog FantasyNoYesHobby

Sharp BooksPermalink for this section

IDNameLivePropsTier
onexbet1xBetYesNoSharp
circaCirca SportsNoYesSharp
pinnaclePinnacleYesYesSharp
sbobetSBOBETYesNoSharp

Reading Pinnacle timestamps. Each odds row carries a single timestamp field — the time SharpAPI last refreshed that row through its pipeline (feed-freshness), which advances every ingest cycle even when Pinnacle holds the line steady. It is not when the price last moved; SharpAPI no longer exposes a separate “when the price last changed” field. See understanding the timestamp field for what “stale” actually means on their feed.

InternationalPermalink for this section

IDNameLivePropsTier
betanoBetanoYesYesHobby
betwayBetwayYesYesHobby
bwinbwinYesYesHobby
coralCoralYesYesHobby
galeraGalera.betYesYesHobby
goldrushGoldrushYesNoHobby
ladbrokesLadbrokesYesYesHobby
ladbrokes_ukLadbrokes UKYesYesHobby
matchbookMatchbookYesYesHobby
paddypowerPaddy PowerYesYesHobby
skybetSky BetYesNoHobby
smarketsSmarketsYesNoHobby
stakeStakeYesYesHobby
sx_betSX BetYesNoHobby
unibetUnibetYesYesHobby
sabaSABAYesYesPro
betfair_layBetfair Exchange (Lay)YesNoSharp

ExchangesPermalink for this section

IDNameLivePropsTier
betfairBetfairYesYesSharp
prophetxProphetXYesYesSharp

Betfair’s two sides are two separate books. An exchange quotes two prices for every selection — the back price (bet for an outcome) and the lay price (bet against it). SharpAPI serves each as its own book: betfair is the back side, betfair_lay is the lay side, and both require Sharp tier. Odds rows carry no side field, so the sportsbook ID is what tells you which side a price is.

A lay price is not a better back price. Laying is taking the other end of someone’s bet: you keep their stake if the outcome does not happen, and you owe (odds − 1) × their stake if it does. A lay quote is therefore normally higher than the back quote on the same selection, so feeding betfair_lay to a model that assumes back odds makes the market look better priced than it is. Do not pool the two books.

Both feeds carry the exchange’s size figures, in GBP and never converted — max_bet, best_bid_liquidity and size_currency; neither emits total_liquidity — see Liquidity and limits. The full price-by-price order book is not included.

Prediction MarketsPermalink for this section

IDNameLivePropsTier
kalshiKalshiYesYesHobby
polymarketPolymarketYesNoHobby

Polymarket and Kalshi are prediction market platforms. Unlike traditional sportsbooks, they use binary outcome contracts priced between $0 and $1. SharpAPI normalizes contract prices into standard odds formats (American, decimal, implied probability) so you can compare them directly with sportsbook odds. Kalshi is CFTC-regulated. SharpAPI ingests the global polymarket.com  venue, not PolymarketUS.

Polymarket rows additionally carry a polymarket_resolution field reflecting the upstream UMA optimistic-oracle lifecycle (settled_normal / voided / disputed / proposed / unknown). See Polymarket Resolution for the per-value semantics and the upstream caveat that cancellation, participant withdrawal, and event-not-occurred all collapse to the single voided bucket.

Sharp vs Soft BooksPermalink for this section

Sharp BooksPermalink for this section

  • Lower vig (juice) — tighter margins mean better odds accuracy
  • Efficient lines — used as the reference for +EV and fair value calculations
  • Not available in all regions — Pinnacle is not licensed in the US
  • Examples: Pinnacle, Circa Sports, SBOBET, 1xBet

Soft BooksPermalink for this section

  • Higher vig — wider margins create more room for +EV opportunities
  • More promotions — bonuses, boosts, and free bets
  • Slower line movement — may lag behind sharp market moves
  • Where value is found — the gap between soft book odds and sharp reference creates +EV
  • Examples: DraftKings, FanDuel, BetMGM, Caesars

Sharp books like Pinnacle set efficient lines quickly. Soft books often lag behind, creating windows where their odds offer positive expected value compared to the sharp reference. This is the foundation of +EV betting strategy.

Building a live betting tool? DraftKings and FanDuel have has_live_odds: true but frequently suspend markets during scoring plays and key moments. If you need continuous live coverage, Pinnacle (Sharp tier) is the reliable reference. See Live vs. Pre-Match for a full breakdown of book behavior during live play.

Last updated on