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.

Endpoints

GET /api/v1/sportsbooks GET /api/v1/sportsbooks/{bookId}

These are public endpoints — no authentication required. Unauthenticated requests are rate-limited to 10 requests/minute. Authenticated requests receive your tier’s full rate limit.

List All Sportsbooks

Example Requests

# No API key required curl -X GET "https://api.sharpapi.io/api/v1/sportsbooks" # With API key for higher rate limits curl -X GET "https://api.sharpapi.io/api/v1/sportsbooks" \ -H "X-API-Key: YOUR_API_KEY"

Response

{ "data": [ { "id": "draftkings", "name": "draftkings", "display_name": "DraftKings", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 1250, "last_update": "2026-01-26T02:24:58.000Z", "requires_tier": null }, { "id": "fanduel", "name": "fanduel", "display_name": "FanDuel", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 1180, "last_update": "2026-01-26T02:24:50.000Z", "requires_tier": null }, { "id": "betmgm", "name": "betmgm", "display_name": "BetMGM", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 950, "last_update": "2026-01-26T02:24:45.000Z", "requires_tier": "hobby" }, { "id": "caesars", "name": "caesars", "display_name": "Caesars", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 920, "last_update": "2026-01-26T02:24:40.000Z", "requires_tier": "hobby" }, { "id": "espnbet", "name": "espnbet", "display_name": "theScore Bet", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 880, "last_update": "2026-01-26T02:24:38.000Z", "requires_tier": "hobby" }, { "id": "betrivers", "name": "betrivers", "display_name": "BetRivers", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 760, "last_update": "2026-01-26T02:24:30.000Z", "requires_tier": "pro" }, { "id": "rebet", "name": "rebet", "display_name": "Rebet", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 640, "last_update": "2026-01-26T02:24:22.000Z", "requires_tier": null }, { "id": "pinnacle", "name": "pinnacle", "display_name": "Pinnacle", "has_live_odds": true, "has_player_props": true, "regions": ["GLOBAL"], "is_sharp": true, "status": "active", "event_count": 980, "last_update": "2026-01-26T02:24:55.000Z", "requires_tier": "sharp" }, { "id": "bookmaker", "name": "bookmaker", "display_name": "Bookmaker", "has_live_odds": true, "has_player_props": false, "regions": ["GLOBAL"], "is_sharp": true, "status": "active", "event_count": 850, "last_update": "2026-01-26T02:24:48.000Z", "requires_tier": "sharp" }, { "id": "bet365", "name": "bet365", "display_name": "Bet365", "has_live_odds": true, "has_player_props": true, "regions": ["UK", "EU", "AU"], "is_sharp": false, "status": "active", "event_count": 1100, "last_update": "2026-01-26T02:24:35.000Z", "requires_tier": "pro" }, { "id": "betway", "name": "betway", "display_name": "Betway", "has_live_odds": true, "has_player_props": true, "regions": ["UK", "EU"], "is_sharp": false, "status": "active", "event_count": 720, "last_update": "2026-01-26T02:24:18.000Z", "requires_tier": null }, { "id": "skybet", "name": "skybet", "display_name": "Sky Bet", "has_live_odds": true, "has_player_props": false, "regions": ["UK"], "is_sharp": false, "status": "active", "event_count": 580, "last_update": "2026-01-26T02:24:15.000Z", "requires_tier": null }, { "id": "prophetx", "name": "prophetx", "display_name": "ProphetX", "has_live_odds": true, "has_player_props": false, "regions": ["GLOBAL"], "is_sharp": true, "status": "active", "event_count": 310, "last_update": "2026-01-26T02:24:12.000Z", "requires_tier": "sharp" }, { "id": "betfair", "name": "betfair", "display_name": "Betfair", "has_live_odds": true, "has_player_props": false, "regions": ["UK", "EU", "AU"], "is_sharp": true, "status": "active", "event_count": 900, "last_update": "2026-01-26T02:24:10.000Z", "requires_tier": "sharp" }, { "id": "polymarket", "name": "polymarket", "display_name": "Polymarket", "has_live_odds": false, "has_player_props": false, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 420, "last_update": "2026-01-26T02:24:08.000Z", "requires_tier": null }, { "id": "kalshi", "name": "kalshi", "display_name": "Kalshi", "has_live_odds": true, "has_player_props": false, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 280, "last_update": "2026-01-26T02:24:05.000Z", "requires_tier": null } ], "meta": { "count": 16, "total": 16, "pagination": { "limit": 50, "offset": 0, "has_more": false, "next_offset": null }, "updated_at": "2026-01-26T02:25:00.000Z", "filters": {} } }

Get Single Sportsbook

GET /api/v1/sportsbooks/{bookId}

Retrieve details for a specific sportsbook, including supported sports and market types.

Example Request

curl -X GET "https://api.sharpapi.io/api/v1/sportsbooks/draftkings"

Response

{ "data": { "id": "draftkings", "name": "draftkings", "display_name": "DraftKings", "has_live_odds": true, "has_player_props": true, "regions": ["US"], "is_sharp": false, "status": "active", "event_count": 1250, "last_update": "2026-01-26T02:24:58.000Z", "requires_tier": null, "sports": ["basketball", "football", "baseball", "hockey", "soccer", "tennis", "mma", "golf"], "markets": ["moneyline", "spread", "total", "player_prop", "team_prop", "game_prop", "first_half", "first_quarter"] }, "meta": { "updated_at": "2026-01-26T02:25:00.000Z" } }

Error Response

404 Not Found

{ "error": { "code": "not_found", "message": "Sportsbook 'bovada' not found", "docs": "https://sharpapi.io/docs/api-reference/sportsbooks" } }

Sportsbook Object Schema

FieldTypeDescription
idstringUnique identifier (use in API filters)
namestringInternal name (same as id)
display_namestringHuman-readable name
has_live_oddsbooleanSupports live/in-play odds
has_player_propsbooleanSupports player prop markets
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_tierstring | nullMinimum tier required: null (free), hobby, pro, sharp
sportsstring[]Supported sport IDs (single book endpoint only)
marketsstring[]Supported market type IDs (single book endpoint only)

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

Book Access by Tier

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
Hobby5+ BetMGM, Caesars, theScore Bet
Pro15+ Bet365, BetRivers, and more
SharpAllAll available sportsbooks
EnterpriseAllAll available sportsbooks

Pinnacle, Bookmaker, ProphetX, and Betfair require Sharp tier or higher. Pinnacle is a sharp book whose efficient lines are used as the reference for +EV calculations. Requesting sharp book odds on Free, Hobby, or Pro tier will return a 403 tier_restricted error.

Understanding requires_tier

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

Supported Sportsbooks

Major US Books

IDNameLivePropsTier
draftkingsDraftKingsYesYesFree
fanduelFanDuelYesYesFree
betmgmBetMGMYesYesHobby
caesarsCaesarsYesYesHobby
espnbettheScore BetYesYesHobby
betriversBetRiversYesYesPro
rebetRebetYesYesFree

Sharp Books

IDNameLivePropsTier
pinnaclePinnacleYesYesSharp
bookmakerBookmakerYesNoSharp

International

IDNameLivePropsTier
bet365Bet365YesYesPro
betwayBetwayYesYesFree
skybetSky BetYesNoFree

Exchanges

IDNameLivePropsTier
prophetxProphetXYesNoSharp
betfairBetfairYesNoSharp

Prediction Markets

IDNameLivePropsTier
polymarketPolymarketNoNoFree
kalshiKalshiYesNoFree

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.

Coming Soon

IDNameCategory
fanaticsFanaticsMajor US

Sharp vs Soft Books

Sharp Books

  • 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, Bookmaker

Soft Books

  • 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.

Last updated on