Skip to content

get_odds

10 creditsMulti-tablePOST /v1/get_odds

Data refreshed · changelog

Odds by game with bookmaker filters

Use it when you need lines for one game: the consensus closing spread and total for any game since 1999 (moneyline from 2006), each sportsbook's closing line from 2014 (4-9 books), and per-book opening, closing and latest lines from up to 8 sportsbooks (including Pinnacle) from the 2020 season.

Parameters

game_idstringoptional
Game id, e.g. 2026_01_KC_BUF. Omit and pass season for a whole season.
seasonstring | numberoptional
Season year for a whole season of per-book lines, e.g. 2026. Used when game_id is not set.
teamstringoptional
With season: only this team's games (e.g. KC).
bookmakerstringoptional
Bookmaker key (draftkings, fanduel, betmgm, espnbet, pinnacle; for 2014-2019 also westgate, caesars, wynn, unibet, 5dimes, sportsbettingag and others)
snapshot_typeenum: opening | closing | latestoptional
Single game: one snapshot type (default all). Season: opening or closing (default closing).
limitintegeroptional
With season: games per page (default 100, max 500).
offsetintegeroptional
With season: page offset; use next_offset from the previous page.
estimate_onlybooleanoptional
Return what this call would cost, without charging or running it.

Notes

  • Over MCP, ask for it in plain English and the client calls get_odds itself. Point any MCP client at https://mcp.endzoneapi.com/mcp?key=YOUR_API_KEY.
  • Each call costs 10 credits, taken before it runs and refunded if the server errors.
  • Not the call you need? Find the right call by what you are trying to answer.

Request

curl -X POST https://mcp.endzoneapi.com/v1/get_odds \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "game_id": "2025_01_KC_LAC"
}'

Response

json
{
  "game_id": "2025_01_KC_LAC",
  "home_team": "LAC",
  "away_team": "KC",
  "kickoff": "2025-09-06T00:00:00.000Z",
  "consensus_closing": {
    "spread_line": -3,
    "total_line": 47.5,
    "home_moneyline": 145,
    "away_moneyline": -175
  },
  "books": [
    {
      "bookmaker": "betmgm",
      "opening": {
        "bookmaker": "betmgm",
        "snapshot_type": "opening",
        "source": "archive",
        "ml_home": 145,
        "ml_away": -175,
        "ml_home_prob": 0.40816328,
        "ml_away_prob": 0.6363636,
        "spread_home": 3,
        "spread_home_odds": -102,
        "spread_away": -3,
        "spread_away_odds": -118,
        "total": 46.5,
        "total_over_odds": -110,
        "total_under_odds": -110,
        "captured_at": "2025-09-04T16:00:00.000Z"
      },
      "latest": {
        "bookmaker": "betmgm",
        "snapshot_type": "snapshot",
        "source": "archive",
        "ml_home": 140,
        "ml_away": -165,
        "ml_home_prob": 0.41666666,
        "ml_away_prob": 0.6226415,
        "spread_home": 3,
        "spread_home_odds": 100,
        "spread_away": -3,
        "spread_away_odds": -110,
        "total": 47.5,
        "total_over_odds": -110,
        "total_under_odds": -110,
        "captured_at": "2025-09-05T21:54:48.000Z"
      },
      "closing": {
        "bookmaker": "betmgm",
        "snapshot_type": "closing",
        "source": "archive",
        "ml_home": 140,
        "ml_away": -165,
        "ml_home_prob": 0.41666666,
        "ml_away_prob": 0.6226415,
        "spread_home": 3,
        "spread_home_odds": 100,
        "spread_away": -3,
        "spread_away_odds": -110,
        "total": 47.5,
        "total_over_odds": -110,
        "total_under_odds": -110,
        "captured_at": "2025-09-05T21:54:48.000Z"
      }
    }
  ],
  "bookmaker_count": 8,
  "count": 8
}

Response fields

game_idstring
home_teamstring
away_teamstring
kickoffstring
consensus_closingobject
consensus_closing.spread_linenumber
consensus_closing.total_linenumber
consensus_closing.home_moneylinenumber
consensus_closing.away_moneylinenumber
books[]array
List of objects
books[].bookmakerstring
books[].openingobject
books[].opening.bookmakerstring
books[].opening.snapshot_typestring
books[].opening.sourcestring
books[].opening.ml_homenumber
books[].opening.ml_awaynumber
books[].opening.ml_home_probnumber
books[].opening.ml_away_probnumber
books[].opening.spread_homenumber
books[].opening.spread_home_oddsnumber
books[].opening.spread_awaynumber
books[].opening.spread_away_oddsnumber
books[].opening.totalnumber
books[].opening.total_over_oddsnumber
books[].opening.total_under_oddsnumber
books[].opening.captured_atstring
books[].latestobject
books[].latest.bookmakerstring
books[].latest.snapshot_typestring
books[].latest.sourcestring
books[].latest.ml_homenumber
books[].latest.ml_awaynumber
books[].latest.ml_home_probnumber
books[].latest.ml_away_probnumber
books[].latest.spread_homenumber
books[].latest.spread_home_oddsnumber
books[].latest.spread_awaynumber
books[].latest.spread_away_oddsnumber
books[].latest.totalnumber

Related endpoints

Try it

500 free credits every month: 50 calls to get_odds, and no card.