NFL odds API
NFL prices, markets and identifiers through one REST API.
The NFL has the league key nfl in the SockOdds API. It is an American football league based in the United States (sport key american_football). Its events have a home and an away team.
Request NFL odds
Current prices for the next NFL game, one market, from every bookmaker your plan includes:
curl -sS "https://api.sockodds.com/v1/odds?league=nfl&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=nfl&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=nfl&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_000ckk0rv081",
"name": "Arizona Cardinals v Atlanta Falcons",
"league": {
"key": "nfl",
"name": "NFL"
},
"scheduled_start": "2026-10-16T20:00:00.000Z",
"status": "scheduled",
"participants": [
{
"role": "away",
"identity": {
"key": "atlanta_falcons",
"name": "Atlanta Falcons"
}
},
{
"role": "home",
"identity": {
"key": "arizona_cardinals",
"name": "Arizona Cardinals"
}
}
],
"markets": [
{
"id": "mk_e3xtnkk5rvpn6m0x",
"key": "winner",
"name": "Winner",
"period": "full",
"subject": null,
"alternate": false,
"outcomes": [
{
"id": "oc_7am16p1erakx4676",
"name": "Arizona Cardinals",
"side": "home",
"line": null,
"prices": [
{
"bookmaker": "betblitz",
"decimal_odds": 1.81,
"implied_probability": 0.552486,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "chasebet",
"decimal_odds": 1.77,
"implied_probability": 0.564972,
"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": "betreal",
"decimal_odds": 1.74,
"implied_probability": 0.574713,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "blondebet",
"decimal_odds": 1.72,
"implied_probability": 0.581395,
"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": "betchamps",
"decimal_odds": 1.65,
"implied_probability": 0.606061,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_0acvtdf8hbkjcmpr",
"name": "Atlanta Falcons",
"side": "away",
"line": null,
"prices": [
{
"bookmaker": "betblitz",
"decimal_odds": 2.23,
"implied_probability": 0.44843,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "chasebet",
"decimal_odds": 2.18,
"implied_probability": 0.458716,
"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": "betreal",
"decimal_odds": 2.14,
"implied_probability": 0.46729,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "blondebet",
"decimal_odds": 2.12,
"implied_probability": 0.471698,
"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": "betchamps",
"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
35 bookmakers deliver NFL prices through v1 as of 30 October 2026: Sportsbet, TAB, PointsBet, Unibet, Pinnacle, Dabble, Betr, DraftKings, FanDuel, BetMGM, Kalshi, Polymarket, Bally Bet, BearBet, BetBlitz, BetBuzz, BetChamps, BetDeluxe, BetFocus, BetReal, BetRivers, BlondeBet, CashCage, ChaseBet, Fanatics Markets, Hard Rock Bet, LightningBet, Mintbet, Novig, ProphetX, Star Sports, SwiftBet, TABtouch, theScore Bet and TopBet.
NFL markets
34 market types are defined for the NFL. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Total points odd/even | total_points_odd_even | odd, even | No | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot |
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot |
| Result (with the draw) | result | home, draw, away | No | full, regulation, 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, half_2_ot, quarter_4_ot |
| Total points | total_points | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot |
| Total touchdowns | total_touchdowns | over, under | Yes | full, half_1 |
| First team to score | first_team_to_score | home, away | No | full, half_1, half_2 |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team points odd/even | team_points_odd_even | odd, even | No | full |
| Team points over/under | team_points_over_under | over, under | Yes | full, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot |
| Team touchdowns over/under | team_touchdowns_over_under | over, under | Yes | full, half_1 |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Player passing yards over/under | player_passing_yards_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player rushing yards over/under | player_rushing_yards_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player receiving yards over/under | player_receiving_yards_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player receptions over/under | player_receptions_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player passing touchdowns over/under | player_passing_touchdowns_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player pass completions over/under | player_completions_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player pass attempts over/under | player_passing_attempts_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Player interceptions thrown over/under | player_interceptions_thrown_over_under | over, under | Yes | full, half_1, quarter_1, quarter_2, quarter_3 |
| Anytime touchdown scorer | player_touchdowns_anytime | yes, no | No | full, half_1, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot |
| First touchdown scorer | player_touchdowns_first | Each competitor | No | full |
| Last touchdown scorer | player_touchdowns_last | Each competitor | No | full |
| Player touchdowns over/under | player_touchdowns_over_under | over, under | Yes | full |
| Player rushing attempts over/under | player_rushing_attempts_over_under | over, under | Yes | full, half_1, quarter_1 |
| Player longest reception over/under | player_longest_reception_over_under | over, under | Yes | full |
| Player longest completed pass over/under | player_longest_pass_over_under | over, under | Yes | full |
| Player field goals made over/under | player_field_goals_made_over_under | over, under | Yes | full |
| Player kicking points over/under | player_kicking_points_over_under | over, under | Yes | full |
| Player rushing and receiving yards over/under | player_rushing_receiving_yards_over_under | over, under | Yes | full, quarter_1, quarter_2, quarter_3, quarter_4 |
| Player passing and rushing yards over/under | player_passing_rushing_yards_over_under | over, under | Yes | full, quarter_1, quarter_2, quarter_3, quarter_4 |
| Player receiving touchdowns over/under | player_receiving_touchdowns_over_under | over, under | Yes | full |
| Player rushing touchdowns over/under | player_rushing_touchdowns_over_under | over, under | Yes | full |
| Player longest rush over/under | player_longest_rush_over_under | over, under | Yes | full |
| Player sacks over/under | player_sacks_over_under | over, under | Yes | full |
| Player interceptions (defence) over/under | player_interceptions_over_under | over, under | Yes | 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), quarter_4 (Fourth quarter), half_2_ot (Second half including overtime) and quarter_4_ot (Fourth quarter including overtime).
Plans
The free Developer plan includes the NFL, with Sportsbet and TAB. Rookie and Pro include every league, and Pro adds recorded price history, from 22 December 2025 for the NFL. See pricing.