Skip to content

get_prop_history

10 creditsMulti-tablePOST /v1/get_prop_history

A player's prop lines against what he did, game by game, with the over rate.

Use it when you are asking whether a player beats his line: for one market, each game's closing line (the median across books), what he actually recorded in shots, goals or points from our play-by-play, and the over rate, from May 2023.

Parameters

player_idstring | numberrequired
Player id (e.g. 8478402) from search_players.
marketenum: player_points | player_goals | player_assists | player_shots_on_goal | player_blocked_shots | player_total_saves | player_goal_scorer_anytimerequired
The market.
from_datestringoptional
First date, YYYY-MM-DD (the game's date).
to_datestringoptional
Last date, YYYY-MM-DD (the game's date).
bookmakerstringoptional
One book's closing line instead of the median across books, e.g. draftkings.
limitintegeroptional
Games to return, oldest first (default 50, max 200). next_from_date says where to continue.

Notes

  • Over MCP, ask for it in plain English and the client calls get_prop_history 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_prop_history \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "player_id": 8470000,
  "market": "player_shots_on_goal"
}'

Response

json
{
  "player_id": 8470000,
  "player_name": "Example Player",
  "market": "player_shots_on_goal",
  "stat": "shots on goal",
  "bookmaker": null,
  "games": [
    {
      "game_id": "2023020001",
      "game_date": "2023-10-10",
      "line": 3.5,
      "open_line": 3.5,
      "over_odds": -110,
      "under_odds": -110,
      "books": 7,
      "actual": 4,
      "result": "over",
      "margin": 0.5
    }
  ],
  "count": 1,
  "summary": {
    "games": 1,
    "graded": 1,
    "overs": 1,
    "unders": 0,
    "pushes": 0,
    "over_rate": 1,
    "avg_line": 3.5,
    "avg_actual": 4
  },
  "truncated": false,
  "next_from_date": null,
  "note": "Illustrative example: made-up player and numbers, to show the shape of a response."
}

Response fields

player_idnumber
The player
marketstring
The market asked for
statstring
What the market settles on, e.g. shots on goal
games[]array
One row per game, oldest first
games[].linenumber | null
Closing line: the median across books, or the one book asked for
games[].open_linenumber | null
Opening line, same rule
games[].booksnumber
Books the closing line is drawn from
games[].actualnumber | null
What the player recorded; null where we have no result
games[].resultstring | null
over, under or push against the closing line
summaryobject
Games, graded, overs, unders, pushes, over_rate, avg_line, avg_actual
next_from_datestring | null
Where to continue when more games matched than one call returns

Related endpoints

Try it

500 credits free on signup: 50 calls to get_prop_history, and no card.