Skip to content

get_player_props

10 creditsMulti-tablePOST /v1/get_player_props

Player prop lines by sportsbook, opening and closing: points, goals, assists, shots on goal, blocked shots, goalie saves and anytime goal scorer.

Use it when you are backtesting or shopping player props: every book's over and under on a market for a game, or one player's lines across a range of dates, with the opening or closing price. From May 2023.

Parameters

game_idstringoptional
Game id: every player's props for that game.
player_idstring | numberoptional
Player id (e.g. 8478402) from search_players. With from_date: that player's props across games.
from_datestringoptional
With player_id: first date, YYYY-MM-DD (the game's date).
to_datestringoptional
With player_id: last date (default: no end), YYYY-MM-DD (the game's date).
marketenum: player_points | player_goals | player_assists | player_shots_on_goal | player_blocked_shots | player_total_saves | player_goal_scorer_anytimeoptional
One market.
bookmakerstringoptional
Bookmaker key, e.g. draftkings, fanduel, pinnacle.
snapshot_typeenum: opening | closingoptional
closing (default): the last line before the game starts. opening: the first one captured.
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_player_props 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_player_props \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "game_id": "2023020001",
  "market": "player_shots_on_goal"
}'

Response

json
{
  "snapshot_type": "closing",
  "games": 1,
  "props": [
    {
      "game_id": "2023020001",
      "game_date": "2023-10-10",
      "player_name": "Example Player",
      "player_id": 8470000,
      "market": "player_shots_on_goal",
      "bookmaker": "draftkings",
      "line": 3.5,
      "over_odds": -115,
      "under_odds": -105,
      "captured_at": "2023-10-10T22:30:00.000Z",
      "source": "the_odds_api"
    },
    {
      "game_id": "2023020001",
      "game_date": "2023-10-10",
      "player_name": "Example Player",
      "player_id": 8470000,
      "market": "player_shots_on_goal",
      "bookmaker": "fanduel",
      "line": 3.5,
      "over_odds": -110,
      "under_odds": -110,
      "captured_at": "2023-10-10T22:31:00.000Z",
      "source": "the_odds_api"
    }
  ],
  "count": 2,
  "note": "Illustrative example: made-up player and numbers, to show the shape of a response."
}

Response fields

snapshot_typestring
opening or closing
gamesnumber
Games the rows come from
props[]array
One row per book, market and player
props[].player_namestring
The player as the book spells him
props[].player_idnumber | null
Our player id where the name matched a player in that game; null otherwise
props[].marketstring
The Odds API market key, e.g. player_shots_on_goal
props[].bookmakerstring
Bookmaker key
props[].linenumber | null
The line; null for anytime goal scorer
props[].over_oddsnumber | null
American price on the over (the Yes price for anytime goal scorer)
props[].under_oddsnumber | null
American price on the under
props[].captured_atstring
When the book posted this line, always before puck drop
countnumber
Rows returned

Related endpoints

Try it

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