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/sportsbooksRequires an API key. Available on all tiers (Free included). Unauthenticated requests return 401.
List All Sportsbooks
Example Requests
cURL
curl -X GET "https://api.sharpapi.io/api/v1/sportsbooks" \
-H "X-API-Key: YOUR_API_KEY"Response
{
"data": [
{
"id": "draftkings",
"numerical_id": 12,
"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",
"numerical_id": 14,
"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",
"numerical_id": 28,
"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": "circa",
"name": "circa",
"display_name": "Circa Sports",
"has_live_odds": true,
"has_player_props": true,
"regions": ["US"],
"is_sharp": true,
"status": "active",
"event_count": 620,
"last_update": "2026-01-26T02:24:52.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": 17,
"total": 17,
"pagination": {
"limit": 50,
"offset": 0,
"has_more": false,
"next_offset": null
},
"updated_at": "2026-01-26T02:25:00.000Z",
"filters": {}
}
}Sportsbook Object Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier (use in API filters) |
numerical_id | integer | null | Stable integer key for the sportsbook (frozen, never reused). New (May 2026) — additive, optional. See Entity reference IDs. |
name | string | Internal name (same as id) |
display_name | string | Human-readable name |
has_live_odds | boolean | Supports live/in-play odds |
has_player_props | boolean | Supports player prop markets |
regions | string[] | Available regions: US, UK, EU, AU, GLOBAL |
is_sharp | boolean | Whether the book is considered a sharp/efficient market |
status | string | active or inactive |
event_count | integer | Number of events currently available |
last_update | string | ISO 8601 timestamp of last data update |
requires_tier | string | null | Minimum tier required: null (free), hobby, pro, sharp |
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_id
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: absent (or
null) for sportsbooks not yet mapped (e.g. brand-new books in the catalog before assignment); slugidis 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.
Book Access by Tier
The requires_tier field indicates the minimum subscription tier needed to access a sportsbook’s odds data through the API.
| Tier | Books Available | Included Sportsbooks |
|---|---|---|
| Free | 4 | DraftKings, FanDuel, 18Bet, Sportingbet BR |
| Hobby | 27 | + BetOnline, Polymarket, Kalshi, Bovada, Ladbrokes, Bally Bet, Sportzino, BetRivers, bwin, Betway, Stake, BetMGM, Rebet, Hard Rock Bet, SX Bet, Novig, theScore Bet, Fanatics, Fliff, Caesars, Unibet, Bet365 US, Sky Bet |
| Pro | 28 | + SABA |
| Sharp | 34 | All available sportsbooks |
| Enterprise | 34 | All available sportsbooks |
Pinnacle, Circa Sports, 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. 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_tier
| Value | Meaning |
|---|---|
null | 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 Sportsbooks
Major US Books
| ID | Name | Live | Props | Tier |
|---|---|---|---|---|
eighteenbet | 18Bet | Yes | No | Free |
draftkings | DraftKings | Yes | Yes | Free |
fanduel | FanDuel | Yes | Yes | Free |
sportingbet_br | Sportingbet BR | Yes | Yes | Free |
ballybet | Bally Bet | Yes | Yes | Hobby |
Bet365 US | Bet365 US | Yes | Yes | Hobby |
betmgm | BetMGM | Yes | Yes | Hobby |
betonline | BetOnline | Yes | Yes | Hobby |
betrivers | BetRivers | Yes | Yes | Hobby |
bovada | Bovada | Yes | Yes | Hobby |
caesars | Caesars | Yes | Yes | Hobby |
fanatics | Fanatics | Yes | Yes | Hobby |
fliff | Fliff | Yes | Yes | Hobby |
hardrock | Hard Rock Bet | Yes | Yes | Hobby |
novig | Novig | Yes | Yes | Hobby |
rebet | Rebet | Yes | Yes | Hobby |
sportzino | Sportzino | Yes | No | Hobby |
thescorebet | theScore Bet | Yes | Yes | Hobby |
Sharp Books
| ID | Name | Live | Props | Tier |
|---|---|---|---|---|
onexbet | 1xBet | Yes | No | Sharp |
bookmaker | Bookmaker | Yes | Yes | Sharp |
circa | Circa Sports | Yes | No | Sharp |
pinnacle | Pinnacle | Yes | Yes | Sharp |
sbobet | SBOBET | Yes | No | Sharp |
Reading Pinnacle timestamps. Each odds row carries a single timestamp field — the time SharpAPI last refreshed that row through its pipeline (feed-freshness, matching OpticOdds), 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.
International
| ID | Name | Live | Props | Tier |
|---|---|---|---|---|
betway | Betway | Yes | Yes | Hobby |
bwin | bwin | Yes | Yes | Hobby |
ladbrokes | Ladbrokes | Yes | Yes | Hobby |
skybet | Sky Bet | Yes | Yes | Hobby |
stake | Stake | Yes | Yes | Hobby |
sx_bet | SX Bet | Yes | No | Hobby |
unibet | Unibet | Yes | Yes | Hobby |
saba | SABA | Yes | Yes | Pro |
Exchanges
| ID | Name | Live | Props | Tier |
|---|---|---|---|---|
prophetx | ProphetX | Yes | Yes | Sharp |
Prediction Markets
| ID | Name | Live | Props | Tier |
|---|---|---|---|---|
kalshi | Kalshi | Yes | No | Hobby |
polymarket | Polymarket | No | No | Hobby |
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.
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 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, Circa Sports, 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.
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.
Related Endpoints
- Odds Snapshot - Filter odds by sportsbook
- Best Odds - Best odds across all books with sharp reference
- Odds Comparison - Compare odds across books side by side
- Sports - List available sports