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

MarketKeySidesLinePeriods
Total points odd/eventotal_points_odd_evenodd, evenNofull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot
Winnerwinnerhome, away, competitor_1, competitor_2Nofull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot
Result (with the draw)resulthome, draw, awayNofull, regulation, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4
Handicaphandicaphome, away, competitor_1, competitor_2Yesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot
Total pointstotal_pointsover, underYesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot
Total touchdownstotal_touchdownsover, underYesfull, half_1
First team to scorefirst_team_to_scorehome, awayNofull, half_1, half_2

Team markets

MarketKeySidesLinePeriods
Team points odd/eventeam_points_odd_evenodd, evenNofull
Team points over/underteam_points_over_underover, underYesfull, half_1, half_2, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot
Team touchdowns over/underteam_touchdowns_over_underover, underYesfull, half_1

Player markets

MarketKeySidesLinePeriods
Player passing yards over/underplayer_passing_yards_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player rushing yards over/underplayer_rushing_yards_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player receiving yards over/underplayer_receiving_yards_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player receptions over/underplayer_receptions_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player passing touchdowns over/underplayer_passing_touchdowns_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player pass completions over/underplayer_completions_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player pass attempts over/underplayer_passing_attempts_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Player interceptions thrown over/underplayer_interceptions_thrown_over_underover, underYesfull, half_1, quarter_1, quarter_2, quarter_3
Anytime touchdown scorerplayer_touchdowns_anytimeyes, noNofull, half_1, quarter_1, quarter_2, quarter_3, quarter_4, half_2_ot, quarter_4_ot
First touchdown scorerplayer_touchdowns_firstEach competitorNofull
Last touchdown scorerplayer_touchdowns_lastEach competitorNofull
Player touchdowns over/underplayer_touchdowns_over_underover, underYesfull
Player rushing attempts over/underplayer_rushing_attempts_over_underover, underYesfull, half_1, quarter_1
Player longest reception over/underplayer_longest_reception_over_underover, underYesfull
Player longest completed pass over/underplayer_longest_pass_over_underover, underYesfull
Player field goals made over/underplayer_field_goals_made_over_underover, underYesfull
Player kicking points over/underplayer_kicking_points_over_underover, underYesfull
Player rushing and receiving yards over/underplayer_rushing_receiving_yards_over_underover, underYesfull, quarter_1, quarter_2, quarter_3, quarter_4
Player passing and rushing yards over/underplayer_passing_rushing_yards_over_underover, underYesfull, quarter_1, quarter_2, quarter_3, quarter_4
Player receiving touchdowns over/underplayer_receiving_touchdowns_over_underover, underYesfull
Player rushing touchdowns over/underplayer_rushing_touchdowns_over_underover, underYesfull
Player longest rush over/underplayer_longest_rush_over_underover, underYesfull
Player sacks over/underplayer_sacks_over_underover, underYesfull
Player interceptions (defence) over/underplayer_interceptions_over_underover, underYesfull

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.

Search across the SockOdds documentation and catalogue.