Skip to content

get_market_odds

10 creditsMulti-tablePOST /v1/get_market_odds

Opening and closing lines by sportsbook for the period and regulation-result markets (history from May 2023)

Use it when you need a game's period or regulation-result lines as history: each sportsbook's opening and closing price on the regulation result (three-way), the 1st period result and puck line, or the 1st, 2nd and 3rd period totals.

Parameters

game_idstringrequired
Game id from get_schedule or get_games.
marketenum: h2h_3_way | totals_p1 | totals_p2 | totals_p3 | h2h_p1 | spreads_p1required
The market: h2h_3_way (regulation result: home, draw or away after 60 minutes), totals_p1 (1st period total goals), totals_p2 (2nd period total goals), totals_p3 (3rd period total goals), h2h_p1 (1st period result: home, draw or away), spreads_p1 (1st period puck line)
bookmakerstringoptional
One bookmaker key, e.g. draftkings, fanduel, pinnacle.
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_market_odds itself. Point any MCP client at https://mcp.puckapi.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.puckapi.com/v1/get_market_odds \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "game_id": "2024020005",
  "market": "totals_p1"
}'

Response

json
{
  "game_id": "2024020005",
  "market": "totals_p1",
  "label": "1st period total goals",
  "scheduled_start": "2024-10-09T02:00:00.000Z",
  "books": [
    {
      "bookmaker": "betmgm",
      "opening": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -130
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 100
        }
      ],
      "opening_captured_at": "2024-10-09T01:35:38.000Z",
      "closing": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -130
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 100
        }
      ],
      "closing_captured_at": "2024-10-09T01:35:38.000Z",
      "minutes_before_start": 24.4
    },
    {
      "bookmaker": "betonlineag",
      "opening": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -135
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 115
        }
      ],
      "opening_captured_at": "2024-10-09T01:35:38.000Z",
      "closing": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -135
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 115
        }
      ],
      "closing_captured_at": "2024-10-09T01:35:38.000Z",
      "minutes_before_start": 24.4
    },
    {
      "bookmaker": "bovada",
      "opening": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -135
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 105
        }
      ],
      "opening_captured_at": "2024-10-09T01:35:38.000Z",
      "closing": [
        {
          "outcome": "Over",
          "point": 1.5,
          "price": -135
        },
        {
          "outcome": "Under",
          "point": 1.5,
          "price": 105
        }
      ],
      "closing_captured_at": "2024-10-09T01:35:38.000Z",
      "minutes_before_start": 24.4
    }
  ],
  "count": 7
}

Response fields

game_idstring
The game
marketstring
The market asked for
labelstring
The market in plain words
scheduled_startstring | null
The game's scheduled start (ISO 8601 UTC)
books[]array
One row per sportsbook
books[].openingarray
The first line captured: outcome, point and American price for each side
books[].opening_captured_atstring
When the opening line was captured
books[].closingarray
The last line captured before the game started; the same as the opening where only one capture was taken
books[].closing_captured_atstring
When the closing line was captured
books[].minutes_before_startnumber | null
Minutes from the closing capture to the scheduled start

Related endpoints

Try it

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