NBA odds API
NBA prices, markets and identifiers through one REST API.
The NBA has the league key nba in the SockOdds API. It is a basketball league based in the United States (sport key basketball). Its events have a home and an away team.
Request NBA odds
Current prices for the next NBA game, one market, from every bookmaker your plan includes:
curl -sS "https://api.sockodds.com/v1/odds?league=nba&markets=winner&limit=1&starts_after=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch(`https://api.sockodds.com/v1/odds?league=nba&markets=winner&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
from datetime import datetime, timezone
request = urllib.request.Request(
f"https://api.sockodds.com/v1/odds?league=nba&markets=winner&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
print(json.dumps(json.load(response), indent=2))Response from a local copy of the API with invented test prices
{
"data": [
{
"id": "ev_000ckk0ee4ze",
"name": "Atlanta Hawks v Boston Celtics",
"league": {
"key": "nba",
"name": "NBA"
},
"scheduled_start": "2026-10-16T17:00:00.000Z",
"status": "scheduled",
"participants": [
{
"role": "away",
"identity": {
"key": "boston_celtics",
"name": "Boston Celtics"
}
},
{
"role": "home",
"identity": {
"key": "atlanta_hawks",
"name": "Atlanta Hawks"
}
}
],
"markets": [
{
"id": "mk_1e3spch3ksp3ptf7",
"key": "winner",
"name": "Winner",
"period": "full",
"subject": null,
"alternate": false,
"outcomes": [
{
"id": "oc_2b675wjrrdr96ngx",
"name": "Atlanta Hawks",
"side": "home",
"line": null,
"prices": [
{
"bookmaker": "fanatics_markets",
"decimal_odds": 1.81,
"implied_probability": 0.552486,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "tab",
"decimal_odds": 1.77,
"implied_probability": 0.564972,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "sportsbet",
"decimal_odds": 1.72,
"implied_probability": 0.581395,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "pointsbet",
"decimal_odds": 1.69,
"implied_probability": 0.591716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "novig",
"decimal_odds": 1.65,
"implied_probability": 0.606061,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_hsr6kxp5rq99zsfx",
"name": "Boston Celtics",
"side": "away",
"line": null,
"prices": [
{
"bookmaker": "fanatics_markets",
"decimal_odds": 2.23,
"implied_probability": 0.44843,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "tab",
"decimal_odds": 2.18,
"implied_probability": 0.458716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "sportsbet",
"decimal_odds": 2.12,
"implied_probability": 0.471698,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "pointsbet",
"decimal_odds": 2.08,
"implied_probability": 0.480769,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "novig",
"decimal_odds": 2.04,
"implied_probability": 0.490196,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
}
]
}
]
}
],
"meta": {
"count": 1,
"cursor": null
},
"links": {
"next": null
}
}Prices are decimal and exactly as each bookmaker showed them, with the time we saw them. A price older than ten minutes is withheld rather than shown as current.
Bookmakers
23 bookmakers deliver NBA prices through v1 as of 30 October 2026: Sportsbet, TAB, PointsBet, Unibet, Betfair Exchange, Pinnacle, Dabble, Betr, DraftKings, FanDuel, BetMGM, Kalshi, Polymarket, Matchbook, Bally Bet, BetDeluxe, BetRivers, Fanatics Markets, Hard Rock Bet, Novig, ProphetX, SwiftBet and TABtouch.
NBA markets
18 market types are defined for the NBA. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
| Total points | total_points | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team points over/under | team_points_over_under | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4 |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Player points over/under | player_points_over_under | over, under | Yes | full, quarter_1 |
| Player rebounds over/under | player_rebounds_over_under | over, under | Yes | full |
| Player assists over/under | player_assists_over_under | over, under | Yes | full |
| Player three-pointers over/under | player_three_pointers_over_under | over, under | Yes | full |
| Player steals over/under | player_steals_over_under | over, under | Yes | full |
| Player blocks over/under | player_blocks_over_under | over, under | Yes | full |
| Player points, rebounds and assists over/under | player_points_rebounds_assists_over_under | over, under | Yes | full |
| Player points and rebounds over/under | player_points_rebounds_over_under | over, under | Yes | full |
| Player points and assists over/under | player_points_assists_over_under | over, under | Yes | full |
| Player rebounds and assists over/under | player_rebounds_assists_over_under | over, under | Yes | full |
| Player blocks and steals over/under | player_blocks_steals_over_under | over, under | Yes | full |
| Player double-double | player_double_double_yes_no | yes, no | No | full |
| Player triple-double | player_triple_double_yes_no | yes, no | No | full |
| First field goal scorer | player_field_goals_first | Each competitor | No | full |
Periods
full (Full match), regulation (Regulation time), half_1 (First half), half_2 (Second half), quarter_1 (First quarter), quarter_2 (Second quarter), quarter_3 (Third quarter) and quarter_4 (Fourth quarter).
Plans
The NBA is included on Rookie and Pro. Pro adds recorded price history, from 23 December 2025. See pricing.