---
title: "Prop history"
method: POST
path: "/v1/get_prop_history"
tags: ["Multi-table"]
---

# Prop history

`POST /v1/get_prop_history`

## Request

- Base URL: `https://mcp.endzoneapi.com`
- URL: `https://mcp.endzoneapi.com/v1/get_prop_history`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Use to see how a player did against his prop line over time: for one market (passing, rushing or receiving yards, passing touchdowns, completions, attempts, interceptions, carries, receptions or anytime touchdown), one row per game with the closing line (the median across books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

## Request body

- object
  - `player_id` string, required: Player id (a GSIS id such as 00-0033873) from search_players.
  - `market` 'player_pass_yds' | 'player_pass_tds' | 'player_pass_completions' | 'player_pass_attempts' | 'player_pass_interceptions' | 'player_rush_yds' | 'player_rush_attempts' | 'player_receptions' | 'player_reception_yds' | 'player_anytime_td', required: The market: player_pass_yds (passing yards), player_pass_tds (passing touchdowns), player_pass_completions (pass completions), player_pass_attempts (pass attempts), player_pass_interceptions (interceptions thrown), player_rush_yds (rushing yards), player_rush_attempts (rush attempts), player_receptions (receptions), player_reception_yds (receiving yards), player_anytime_td (anytime touchdown (over = scores))
  - `from_date` string: First date, YYYY-MM-DD (the game's date).
  - `to_date` string: Last date, YYYY-MM-DD (the game's date).
  - `bookmaker` string: One book's closing line instead of the median across books, e.g. draftkings.
  - `limit` integer: Games to return, oldest first (default 50, max 200). next_from_date says where to continue.

## Response `200`

The result, wrapped in data.

- object
  - `data` object, required
    - `player_id` union, required
      - string
      - number
    - `player_name` string, nullable, required
    - `market` string, required
    - `stat` string, required
    - `bookmaker` string, nullable, required
    - `games` object[], required
      - `game_id` string, required
      - `game_date` string, nullable, required
      - `line` number, nullable, required
      - `open_line` number, nullable, required
      - `over_odds` number, nullable, required
      - `under_odds` number, nullable, required
      - `books` number, required
      - `actual` number, nullable, required
      - `result` 'over' | 'under' | 'push', nullable, required
      - `margin` number, nullable, required
    - `count` number, required
    - `summary` object, required
      - `games` number, required
      - `graded` number, required
      - `overs` number, required
      - `unders` number, required
      - `pushes` number, required
      - `over_rate` number, nullable, required
      - `avg_line` number, nullable, required
      - `avg_actual` number, nullable, required
    - `truncated` boolean
    - `next_from_date` string, nullable
    - `note` string
    - `estimate_only` boolean
    - `tool` string
    - `credits` number

## Other responses

- `400`: Invalid arguments.
- `401`: Missing or invalid API key.
- `402`: Not enough credits.
- `429`: Rate limited.

---

[API](https://skmtc.dev/endzoneapi/apis/endzoneapi-api.md) · [All operations](https://skmtc.dev/endzoneapi/apis/endzoneapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/endzoneapi/apis/endzoneapi-api/revisions/79ac6ebe298d?raw)
