Odds

Access real-time betting odds and player props from US sportsbooks, supported DFS pick'em platforms, and exchange/prediction-market venues, normalized into one consistent format. DFS prices are indicative and exposed in American odds for side-by-side comparison. All plans can access the full tracked bookmaker set.

For a player-grouped prop response using the same canonical event IDs, see the Player Props docs.

Browse Odds

GET/v1/odds

Browse odds with filtering by league, market, bookmaker, and source type. If you omit market, the API returns game-level markets only (moneyline, spread, total).

ParameterTypeRequiredDescription
leaguestringNoFilter by league identifier
sourceTypestringNoall, sportsbook, dfs, exchange
marketstringNomoneyline, spread, total, player_points, player_pass_yds, etc.
bookmakerstringNoFilter by bookmaker key
limitnumberNoMax 50, default 25
pagenumberNoPage number for pagination

Response

{
  "success": true,
  "data": [
    {
      "eventId": "nba-ev-311286",
      "leagueId": "nba",
      "sport": "basketball",
      "bookmakers": [
        {
          "bookmakerId": "draftkings",
          "bookmakerName": "DraftKings",
          "sourceType": "sportsbook",
          "markets": [
            {
              "marketType": "moneyline",
              "outcomes": [
                { "name": "Boston Celtics", "price": -180 },
                { "name": "Los Angeles Lakers", "price": 155 }
              ]
            }
          ]
        }
      ]
    }
  ],
  "meta": { "count": 1, "page": 1 }
}

Event Odds

GET/v1/events/:eventId/odds

Get odds for a specific event. Includes a summary object with fair (no-vig), best, and average odds computed across all bookmakers.

ParameterTypeRequiredDescription
eventIdstringYesThe event identifier
sourceTypestringNoall, sportsbook, dfs, exchange
marketstringNoOptional exact market filter such as moneyline, spread, or total

Response

{
  "success": true,
  "data": {
    "eventId": "nba-ev-311286",
    "leagueId": "nba",
    "sport": "basketball",
    "summary": {
      "moneyline": [
        { "name": "Boston Celtics", "fairOdds": -172, "bestOdds": -165, "avgOdds": -175 },
        { "name": "Los Angeles Lakers", "fairOdds": 148, "bestOdds": 155, "avgOdds": 145 }
      ],
      "spread": [
        { "name": "Boston Celtics", "point": -4.5, "fairOdds": -108, "bestOdds": -105, "avgOdds": -110 },
        { "name": "Los Angeles Lakers", "point": 4.5, "fairOdds": -104, "bestOdds": -102, "avgOdds": -108 }
      ],
      "total": [
        { "name": "Over", "point": 220.5, "fairOdds": -106, "bestOdds": -104, "avgOdds": -110 },
        { "name": "Under", "point": 220.5, "fairOdds": -106, "bestOdds": -105, "avgOdds": -108 }
      ]
    },
    "bookmakers": [
      {
        "bookmakerId": "draftkings",
        "bookmakerName": "DraftKings",
        "sourceType": "sportsbook",
        "markets": [
          { "marketType": "moneyline", "outcomes": [{ "name": "Boston Celtics", "price": -175 }, { "name": "Los Angeles Lakers", "price": 150 }] }
        ]
      }
    ]
  },
  "meta": { "league": "nba", "event": "nba-ev-311286" }
}

Summary field

  • fairOdds — No-vig price: implied probabilities from all books are averaged, then normalized so the binary pair sums to 1.0, then converted back to American odds.
  • bestOdds — The highest American odds offered by any single bookmaker for that outcome.
  • avgOdds — Simple average of implied probabilities across all books, converted to American odds.
  • Summary is computed from the full bookmaker set returned for the event.

Odds History

Track how a line has moved over time. Each snapshot is a consensus row per (marketType, player, outcome, point) with the cross-book average, best, and no-vig fair price at that moment. Game markets and player props are both included. Consensus covers sportsbooks and exchanges; DFS is excluded because its prices are indicative, not tradeable.

Snapshots are written on a tiered cadence based on time-to-game so storage and payload sizes stay small:

  • More than 7 days out → every 24 hours
  • 24 hours to 7 days out → every 12 hours
  • 3 to 24 hours out → every 60 minutes
  • Less than 3 hours out → every 20 minutes

The first snapshot for an event is written the first time the API fetches odds for it (typically within ~10 minutes of a new event being seeded). History for an event is automatically deleted shortly after the game goes final.

GET/v1/events/:eventId/odds-history

Consensus line-movement history for a specific event, sorted ascending by snapshot time so the first entry is the opening line captured and the last is the most recent.

ParameterTypeRequiredDescription
eventIdstringYesThe event identifier
marketstringNoOptional exact market filter (e.g. moneyline, spread, total, player_points)
playerIdstringNoOptional canonical player ID — returns only rows belonging to that player within the event
fromstringNoOptional ISO 8601 timestamp lower bound on snapshotAt
tostringNoOptional ISO 8601 timestamp upper bound on snapshotAt
limitnumberNoMax snapshots returned. Default 500, max 2000

Response

{
  "success": true,
  "data": {
    "eventId": "nba-ev-311286",
    "count": 14,
    "snapshots": [
      {
        "eventId": "nba-ev-311286",
        "leagueId": "nba",
        "sport": "basketball",
        "snapshotAt": "2026-04-08T19:00:00.000Z",
        "markets": [
          {
            "marketType": "moneyline",
            "outcome": "Boston Celtics",
            "avgPrice": -175,
            "avgImpliedProb": 0.6364,
            "bestPrice": -165,
            "bestBook": "draftkings",
            "fairOdds": -172,
            "bookCount": 12
          },
          {
            "marketType": "player_points",
            "outcome": "Over",
            "player": "Jayson Tatum",
            "playerId": "nba-p-4065648",
            "point": 28.5,
            "avgPrice": -112,
            "avgImpliedProb": 0.5283,
            "bestPrice": -105,
            "bestBook": "fanduel",
            "fairOdds": -108,
            "bookCount": 9
          }
        ],
        "playerIds": ["nba-p-4065648"]
      }
    ]
  },
  "meta": { "event": "nba-ev-311286" }
}

Bookmakers

GET/v1/odds/bookmakers

List all tracked sportsbooks, DFS platforms, and exchanges.

ParameterTypeRequiredDescription
sourceTypestringNoall, sportsbook, dfs, exchange

Response

{
  "success": true,
  "data": [
    { "bookmakerId": "draftkings", "bookmakerName": "DraftKings", "sourceType": "sportsbook", "sourceRegion": "us" },
    { "bookmakerId": "prizepicks", "bookmakerName": "PrizePicks", "sourceType": "dfs", "sourceRegion": "us_dfs" },
    { "bookmakerId": "espnbet", "bookmakerName": "ESPN BET", "sourceType": "sportsbook", "sourceRegion": "us2" },
    { "bookmakerId": "kalshi", "bookmakerName": "Kalshi", "sourceType": "exchange", "sourceRegion": "us_ex" }
  ],
  "meta": { "count": 4 }
}