Skip to Content
API ReferenceOdds Snapshot

Odds Snapshot

Get a snapshot of current odds from sportsbooks.

GET /api/v1/odds

Authentication

Requires API key. Available to all tiers.

The sportsbooks returned in your results depend on your subscription tier. Free tier users receive odds from DraftKings and FanDuel only. See Book Access by Tier below.

Query Parameters

ParameterTypeDefaultDescription
sportsbookstringtier-allowedComma-separated sportsbook IDs (e.g., draftkings,fanduel). Tier limits enforced.
sportstringallFilter by sport(s), comma-separated (e.g., basketball, football). Supports category aliases.
leaguestringallFilter by league(s), comma-separated (e.g., nba, nfl, nhl)
marketstringallFilter by market type(s), comma-separated. Supports categories (moneyline, spread, total, props) or exact types (point_spread, player_points).
eventstringFilter by event ID(s), comma-separated
livebooleantrue = live only, false = prematch only, omit = both
sortstringSort field with optional - prefix for descending (e.g., -odds_american, probability)
fieldsstringallComma-separated field names to include in response (e.g., id,sportsbook,odds_american)
min_oddsnumberMinimum American odds filter (e.g., -110)
max_oddsnumberMaximum American odds filter (e.g., +200)
group_bystringGroup results by field (e.g., event)
limitinteger50Max results per page (max 500)
offsetinteger0Pagination offset (max 5000)

Use comma-separated values to filter by multiple sportsbooks: sportsbook=draftkings,fanduel,betmgm

Example Requests

curl -X GET "https://api.sharpapi.io/api/v1/odds?league=nba&sportsbook=draftkings&market=moneyline" \ -H "X-API-Key: YOUR_API_KEY"

Response

Success (200)

{ "success": true, "data": [ { "id": "draftkings_33483153_moneyline_PHO", "sportsbook": "draftkings", "sportsbook_name": "DraftKings", "event_id": "33483153", "sport": "basketball", "league": "nba", "home_team": "PHI 76ers", "away_team": "PHO Suns", "market_type": "moneyline", "selection": "PHO Suns", "selection_type": "away", "odds_american": -150, "odds_decimal": 1.667, "probability": 0.60, "line": null, "event_start_time": "2026-01-26T19:00:00Z", "timestamp": "2026-01-26T02:10:24.125Z", "is_live": false }, { "id": "draftkings_33483153_moneyline_PHI", "sportsbook": "draftkings", "sportsbook_name": "DraftKings", "event_id": "33483153", "sport": "basketball", "league": "nba", "home_team": "PHI 76ers", "away_team": "PHO Suns", "market_type": "moneyline", "selection": "PHI 76ers", "selection_type": "home", "odds_american": 130, "odds_decimal": 2.30, "probability": 0.4348, "line": null, "event_start_time": "2026-01-26T19:00:00Z", "timestamp": "2026-01-26T02:10:24.125Z", "is_live": false } ], "meta": { "count": 2, "total": 3095, "books_available": ["draftkings", "fanduel", "betmgm", "caesars", "pinnacle"], "books_returned": ["draftkings"], "pagination": { "limit": 50, "offset": 0, "has_more": true, "next_offset": 50 }, "updated_at": "2026-01-26T02:10:37.846Z", "filters": { "league": "nba", "sportsbook": "draftkings", "market": "moneyline" } } }

Response Headers

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 299 X-RateLimit-Reset: 1737853200 X-Data-Delay: 0 X-Request-Id: req_abc123def456
HeaderDescription
X-RateLimit-LimitMaximum requests per minute for your tier
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the rate limit resets
X-Data-DelayData delay in seconds (0 for real-time, 60 for free tier)
X-Request-IdUnique request identifier for debugging

Error Responses

401 Unauthorized

{ "error": { "code": "unauthorized", "message": "Invalid or missing API key", "docs": "https://sharpapi.io/docs/authentication" } }

403 Tier Restricted

{ "error": { "code": "tier_restricted", "message": "Sportsbook 'pinnacle' requires Sharp tier or higher", "docs": "https://sharpapi.io/docs/pricing" } }

429 Rate Limited

{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Retry after 45 seconds.", "docs": "https://sharpapi.io/docs/authentication#rate-limits" } }

Odds Object Schema

FieldTypeDescription
idstringUnique odds identifier
sportsbookstringSportsbook ID (e.g., draftkings)
sportsbook_namestringDisplay name (e.g., DraftKings)
event_idstringEvent identifier
sportstringSport slug (e.g., basketball, football)
leaguestringLeague slug (e.g., nba, nfl)
home_teamstringHome team name
away_teamstringAway team name
market_typestringmoneyline, spread, total, player_prop, etc.
selectionstringThe selection (team name, Over/Under, player name)
selection_typestringhome, away, over, under
odds_americannumberAmerican odds (e.g., -110, +150)
odds_decimalnumberDecimal odds (e.g., 1.909)
probabilitynumberImplied probability (e.g., 0.5238)
linenumber | nullSpread or total line value (null for moneyline)
event_start_timestringISO 8601 event start time
timestampstringISO 8601 timestamp when odds were last updated
is_livebooleanWhether the event is currently live
player_namestring|undefinedPlayer name (player prop markets only)
stat_categorystring|undefinedStat category, e.g. points, rebounds (player prop markets only)
public_bet_pctnumber|undefinedPublic betting ticket percentage (0.0-1.0). Currently BetMGM only.

Live game state (scores, periods, clocks) is available via the Game State endpoint.

Sorting

Use the sort parameter to order results by any field. Prefix with - for descending order.

# Sort by best American odds (descending) curl "https://api.sharpapi.io/api/v1/odds?league=nba&sort=-odds_american" \ -H "X-API-Key: YOUR_API_KEY" # Sort by probability (ascending) curl "https://api.sharpapi.io/api/v1/odds?league=nba&sort=probability" \ -H "X-API-Key: YOUR_API_KEY" # Sort by event start time curl "https://api.sharpapi.io/api/v1/odds?sort=event_start_time" \ -H "X-API-Key: YOUR_API_KEY"

Valid sort fields: odds_american, odds_decimal, probability, event_start_time, timestamp, sportsbook, league, sport.

Field Selection

Use the fields parameter to return only specific fields, reducing payload size.

# Only return id, sportsbook, and American odds curl "https://api.sharpapi.io/api/v1/odds?league=nba&fields=id,sportsbook,odds_american" \ -H "X-API-Key: YOUR_API_KEY"

The response will only include the requested fields for each odds object:

{ "data": [ { "id": "draftkings_33483153_moneyline_PHO", "sportsbook": "draftkings", "odds_american": -150 } ] }

Odds Range Filtering

Use min_odds and max_odds to filter by American odds value.

# Only return plus-money odds (+100 and above) curl "https://api.sharpapi.io/api/v1/odds?league=nba&min_odds=100" \ -H "X-API-Key: YOUR_API_KEY" # Only return odds between -200 and +200 curl "https://api.sharpapi.io/api/v1/odds?league=nba&min_odds=-200&max_odds=200" \ -H "X-API-Key: YOUR_API_KEY"

Event-Grouped Response

Use group_by=event to group odds by event instead of a flat list. This is useful for building event-centric UIs.

curl "https://api.sharpapi.io/api/v1/odds?league=nba&group_by=event" \ -H "X-API-Key: YOUR_API_KEY"
{ "data": [ { "event_id": "33483153", "event_name": "PHI 76ers vs PHO Suns", "sport": "basketball", "league": "nba", "start_time": "2026-01-26T19:00:00Z", "is_live": false, "odds": [ { "id": "draftkings_33483153_moneyline_PHO", "sportsbook": "draftkings", "sportsbook_name": "DraftKings", "market_type": "moneyline", "selection": "PHO Suns", "selection_type": "away", "odds_american": -150, "odds_decimal": 1.667, "probability": 0.60, "line": null, "timestamp": "2026-01-26T02:10:24.125Z" } ] } ], "meta": { "group_by": "event", "books_available": 5, "filters": { "league": "nba" }, "updated_at": "2026-01-26T02:10:37.846Z" } }

Book Access by Tier

The sportsbooks included in your odds results depend on your subscription tier:

TierBooks AvailableIncluded Sportsbooks
Free2DraftKings, FanDuel
Hobby5+ BetMGM, Caesars, theScore Bet
Pro15+ Bet365, BetRivers, and more
SharpAll 16+All available sportsbooks
EnterpriseAll 16+All available sportsbooks

Pinnacle (sharp book) requires Sharp tier or higher. Requesting sportsbook=pinnacle on a Free, Hobby, or Pro tier will return a 403 tier_restricted error.

Filtering Examples

# Get live NBA odds from all your available books curl "https://api.sharpapi.io/api/v1/odds?league=nba&live=true" \ -H "X-API-Key: YOUR_API_KEY" # Get moneyline and spread odds for a specific event curl "https://api.sharpapi.io/api/v1/odds?event=33483153&market=moneyline,spread" \ -H "X-API-Key: YOUR_API_KEY" # Paginate through all NFL spread odds curl "https://api.sharpapi.io/api/v1/odds?league=nfl&market=spread&limit=100&offset=100" \ -H "X-API-Key: YOUR_API_KEY"
  • Odds Delta - Get only odds that changed since a given timestamp
  • Best Odds - Get the best odds across all books for each selection
  • Odds Comparison - Compare odds across books side by side
  • Batch Odds - Fetch odds for multiple events in one request
  • Markets - List available market types
  • Sportsbooks - List available sportsbooks and their status
Last updated on