get_prop_backtest
25 creditsBacktestsPOST /v1/get_prop_backtest
How often a kind of player prop hit against what the market implied, by your filters, since 2024
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
marketenum: player_goal_scorer_anytime | player_to_receive_card | player_shots_on_target | player_shots | player_assistsrequired- The market, e.g. player_goal_scorer_anytime.
sideenum: over | underoptional- over (default) or under. Yes/no markets are graded on the yes price: over only.
from_datestringoptional- First game date, YYYY-MM-DD. Default all held.
to_datestringoptional- Last game date, YYYY-MM-DD. Default all held.
player_idstringoptional- One player's id (e.g. 280555, from search_players).
teamstringoptional- The player's team, e.g. ARS.
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 to include.
line_maxnumberoptional- Highest median closing line to include.
fair_minnumberoptional- Lowest fair probability of this side to include, 0 to 1.
fair_maxnumberoptional- Highest fair probability of this side to include, 0 to 1.
leagueenum: soccer | mls | laliga | seriea | bundesliga | ligue1 | ucloptional- League. Defaults to soccer. One of: soccer, mls, laliga, seriea, bundesliga, ligue1, ucl.
Notes
- Over MCP, ask for it in plain English and the client calls
get_prop_backtestitself. Point any MCP client athttps://mcp.strikerapi.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.strikerapi.com/v1/get_prop_backtest \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"market": "player_goal_scorer_anytime",
"home_away": "home",
"team_role": "favorite"
}'Response
json
{
"market": "player_goal_scorer_anytime",
"label": "anytime goalscorer (over = scores)",
"side": "over",
"filters": {
"home_away": "home",
"team_role": "favorite"
},
"results": 6118,
"hits": 749,
"misses": 5369,
"pushes": 0,
"hit_rate": 0.122,
"avg_implied_prob": 0.191,
"avg_fair_prob": null,
"no_result": 780,
"no_price": 0,
"games": 552,
"players": 606,
"avg_books": 1.9,
"avg_line": null,
"avg_actual": 0.1,
"hit_rate_minus_implied": -0.069,
"hit_rate_minus_fair": null,
"hit_rate_interval_95": [
0.114,
0.131
],
"market_inside_interval": false,
"by_season": [
{
"season": 2023,
"results": 338,
"hits": 48,
"misses": 290,
"pushes": 0,
"hit_rate": 0.142,
"avg_implied_prob": 0.136,
"avg_fair_prob": null
},
{
"season": 2024,
"results": 2768,
"hits": 330,
"misses": 2438,
"pushes": 0,
"hit_rate": 0.119,
"avg_implied_prob": 0.2,
"avg_fair_prob": null
},
{
"season": 2025,
"results": 2389,
"hits": 295,
"misses": 2094,
"pushes": 0,
"hit_rate": 0.123,
"avg_implied_prob": 0.187,
"avg_fair_prob": null
}
],
"method": "One result per player per game: the closing line is the median across books, the market's probability comes from the books at that line, and a push counts in neither the hits nor the rate. A yes/no market is graded on the yes price. no_result counts players with no result for the game (not played, or no stat line of ours), no_price those with no price on this side. team_role is by the books' closing moneylines. avg_implied_prob averages each book's implied probability, margin included. fair_prob takes the margin out of each book's two prices for the same line, proportionally, then averages. Only identical lines are combined.",
"caution": "A past result is not a forecast. Trying many filters will turn up some that beat the market by luck, so check by_season and the interval. Not a recommendation."
}Response fields
marketstringlabelstringsidestringfiltersobjectfilters.home_awaystringfilters.team_rolestringresultsnumberhitsnumbermissesnumberpushesnumberhit_ratenumberavg_implied_probnumberavg_fair_probnullno_resultnumberno_pricenumbergamesnumberplayersnumberavg_booksnumberavg_linenullavg_actualnumberhit_rate_minus_impliednumberhit_rate_minus_fairnullhit_rate_interval_95[]array- List of number
market_inside_intervalbooleanby_season[]array- List of objects
by_season[].seasonnumberby_season[].resultsnumberby_season[].hitsnumberby_season[].missesnumberby_season[].pushesnumberby_season[].hit_ratenumberby_season[].avg_implied_probnumberby_season[].avg_fair_probnullmethodstringcautionstring
Related endpoints
list_teams1 cr
Returns the team this one takes.
Club ids, abbreviations and colours for a season
search_players1 cr
Returns the player_id this one takes.
Find players by name
list_games2 cr
Returns the team this one takes.
Fixtures and results by season, stage, date, range or club
get_squad2 cr
Returns the player_id this one takes.
A club's current squad (2) or the whole league's (10): every registered player with position, shirt number and age
Try it
500 free credits every month: 20 calls to get_prop_backtest, and no card.