get_prop_backtest
How often a kind of player prop hit against what the market implied, by your filters, since May 2023
Use it when you want to test an idea about props before building anything: how often a kind of prop hit against what the market implied, by season, with the sample size and interval.
Parameters
marketstringrequired- player_points, player_goals, player_assists, player_shots_on_goal, player_blocked_shots, player_total_saves, player_power_play_points or player_goal_scorer_anytime
sideenum: over | underoptional- over (default) or under; anytime goal scorer is over only
from_datestringoptional- First game date, YYYY-MM-DD
to_datestringoptional- Last game date, YYYY-MM-DD
player_idintegeroptional- One player
teamstringoptional- The player's team, e.g. TOR
opponentstringoptional- The team he played
home_awayenum: home | awayoptional- Whether his team was at home
team_roleenum: favorite | underdogoptional- Whether his team was favored, by the books' closing moneylines
line_minnumberoptional- Lowest median closing line
line_maxnumberoptional- Highest median closing line
fair_minnumberoptional- Lowest fair probability of the side, 0 to 1
fair_maxnumberoptional- Highest fair probability of the side, 0 to 1
Notes
- Over MCP, ask for it in plain English and the client calls
get_prop_backtestitself. Point any MCP client athttps://mcp.puckapi.com/mcp?key=YOUR_API_KEY. - Each call costs 25 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_backtest \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"market": "player_shots_on_goal"
}'Response
{
"market": "player_shots_on_goal",
"label": "shots on goal",
"side": "over",
"filters": {},
"results": 66642,
"hits": 32609,
"misses": 34033,
"pushes": 0,
"hit_rate": 0.489,
"avg_implied_prob": 0.543,
"avg_fair_prob": 0.507,
"no_result": 605,
"no_price": 1,
"games": 4492,
"players": 702,
"avg_line": 2.1,
"avg_actual": 2.3,
"hit_rate_minus_implied": -0.054,
"hit_rate_minus_fair": -0.019,
"hit_rate_interval_95": [
0.486,
0.493
],
"market_inside_interval": false,
"by_season": [
{
"season": "20242025",
"results": 19866,
"hit_rate": 0.485
},
{
"season": "20252026",
"results": 21039,
"hit_rate": 0.502
}
]
}Response fields
hit_ratenumber | null- Hits over hits plus misses; a push counts in neither
avg_implied_probnumber | null- The side's average implied probability, margin included
avg_fair_probnumber | null- The side's average fair probability; null when fewer than 90% of results have one
hit_rate_interval_95[number, number] | null- The Wilson 95% interval of the hit rate
market_inside_intervalboolean | null- Whether the market's probability sits inside that interval
by_season[]array- The same counts season by season
cautionstring- What a past result can and cannot tell you
Related endpoints
Returns the team this one takes.
All 32 active NHL teams with divisions, conferences, and arenas.
Returns the player_id this one takes.
Find players by name, team, or position.
Returns the team this one takes.
Current standings with points, point pace, goal differential, and 5v5 possession: Corsi%, Fenwick% and expected goals.
Returns the player_id this one takes.
Goalie leaderboard sorted by save%, GAA, GSAX or wins, with high-danger save%, recent form and rest days.
Try it
500 free credits every month: 20 calls to get_prop_backtest, and no card.