How do I see how an NFL player prop line moved before kickoff in Python?
Every capture of one player's prop line before kickoff, book by book, with the minutes to the start and both prices.
Code verified November 4, 2026. One call to get_prop_movement, 10 credits.
The call
Find a game id with get_games and a player's GSIS id with search_players. Prop history starts with the 2023 season.
import requests
import pandas as pd
API_KEY = "YOUR_API_KEY"
resp = requests.post(
"https://mcp.endzoneapi.com/v1/get_prop_movement",
headers={"x-api-key": API_KEY},
json={
"game_id": "2026_08_KC_DEN",
"player_id": "00-0033873",
"market": "player_pass_yds",
},
timeout=60,
)
resp.raise_for_status()
data = resp.json()["data"]
rows = [dict(s, bookmaker=b["bookmaker"]) for b in data["books"] for s in b["snapshots"]]
moves = pd.DataFrame(rows).sort_values(["bookmaker", "captured_at"])
print(data["player_name"], data["market"])
print(moves[["bookmaker", "minutes_before_scheduled_start", "line", "over_odds", "under_odds"]])
Replace YOUR_API_KEY with a key from your dashboard. Python needs requests and pandas (pip install requests pandas). JavaScript runs on Node 18 or newer, or in the browser.
Or use the official client: pip install endzoneapi
What comes back
The data object of the response, trimmed to the first rows. Every field is real output from the run above.
{
"game_id": "2026_08_KC_DEN",
"player_id": "00-0033873",
"player_name": "Patrick Mahomes",
"market": "player_pass_yds",
"books": [
{
"bookmaker": "draftkings",
"snapshots": [
{
"captured_at": "2026-10-28T22:05:51.803Z",
"minutes_before_scheduled_start": 5719.1,
"line": 224.5,
"over_odds": -111,
"under_odds": -113
},
{
"captured_at": "2026-10-30T22:05:51.359Z",
"minutes_before_scheduled_start": 2839.1,
"line": 221.5,
"over_odds": -112,
"under_odds": -112
},
{
"captured_at": "2026-10-31T21:20:36.000Z",
"minutes_before_scheduled_start": 1444.4,
"line": 218.5,
"over_odds": -114,
"under_odds": -110
},
{
"captured_at": "2026-10-31T22:05:51.989Z",
"minutes_before_scheduled_start": 1399.1,
"line": 219.5,
"over_odds": -110,
"under_odds": -114
}
],
"line_change": -3
},
{
"bookmaker": "fanduel",
"snapshots": [
{
"captured_at": "2026-10-28T22:05:51.803Z",
"minutes_before_scheduled_start": 5719.1,
"line": 225.5,
"over_odds": -114,
"under_odds": -114
},
{
"captured_at": "2026-10-30T22:05:51.359Z",
"minutes_before_scheduled_start": 2839.1,
"line": 223.5,
"over_odds": -114,
"under_odds": -114
},
{
"captured_at": "2026-10-31T21:20:36.000Z",
"minutes_before_scheduled_start": 1444.4,
"line": 220.5,
"over_odds": -114,
"under_odds": -114
},
{
"captured_at": "2026-10-31T22:05:51.989Z",
"minutes_before_scheduled_start": 1399.1,
"line": 220.5,
"over_odds": -113,
"under_odds": -113
}
],
"line_change": -5
}
],
"count": 54
}The example player is Patrick Mahomes. The record against the line, market by market, is on the Patrick Mahomes prop history page.
What to do next
- get_prop_history (10 credits). The player against his closing line, game by game.
- get_player_props (10 credits). Every player's lines for one game.
More guides
The same guide for other sports
The latest lines from every book are on the odds board. Today's props, with the best price on each side, are on the player props board. Rather ask Claude? 16 free Claude skills call these endpoints for you.
Start with 500 free credits every month
No card. REST or MCP.