---
title: "Returns the player prop snapshots recorded for an archived game, optionally narrowed to a player, prop type and book, or reduced to opening lines."
method: GET
path: "/api/v1/history/props"
tags: ["Historical data"]
---

# Returns the player prop snapshots recorded for an archived game, optionally narrowed to a player, prop type and book, or reduced to opening lines.

`GET /api/v1/history/props`

## Request

- Base URL: `https://api.owlsinsight.com`
- URL: `https://api.owlsinsight.com/api/v1/history/props`
- Auth: HTTP bearer

Returns the player prop snapshots recorded for an archived game, optionally narrowed to a player, prop type and book, or reduced to opening lines.

Historical endpoints share a per-key in-flight limit that is lower than the general concurrent-request limit. A request beyond it returns 429 with a Retry-After header giving the delay in seconds; wait that long and resend.

503 with a Retry-After header means the archive could not serve that request: the query was too expensive to run in one request, or the archive read path was busy. Wait the indicated seconds before resending; if it repeats, narrow the request with the filters this endpoint accepts.

Page one event at a time with limit and offset and stop when a page comes back shorter than limit. Do not fan out one request per book or market in parallel.

lineValue is line as a number; line itself keeps the type it always had.

Pass the event's eventId field, the {sport}:{away}@{home}-{YYYYMMDD} form. The numeric id field beside it is the sportsbook's own and returns 400 here rather than an empty result. The date in eventId is the UTC start date, except for MLB games starting from 2026-10-11T10:00Z, which carry the US Eastern date; earlier MLB games keep the UTC date. Before that change, an MLB game starting at 8 PM ET or later and the next day's game between the same teams could share one eventId. NBA and NHL stay UTC-dated. NBA has about one pair of games a season sharing an eventId. NHL has about one pair a season of the same teams on one date, home and away swapped: two eventIds, but the /api/v1/history endpoints match both orderings, so each id returns both games' rows.

## Query parameters

- `eventId` string, required
- `playerName` string
- `propType` string
- `book` string
- `startTime` string
- `endTime` string
- `limit` string
- `offset` string
- `opening` string

## Response `200`

OK

- HistoryPropsResponse
  - `data` object
    - `count` number, double
    - `eventId` string
    - `limit` number, double
    - `offset` number, double
    - `opening` boolean
    - `snapshots` PropsSnapshot[]
      - `alternateLines` PropAlternateLine[]
        - `line` number, double
        - `odds` number, double
      - `book` string
      - `line` unknown
      - `lineValue` number, double, nullable: `line` as a number, always present; `null` when it is null or unparseable.
      - `overPrice` number, double
      - `playerName` string
      - `propType` string
      - `recordedAt` string
      - `underPrice` number, double, nullable
    - `timeRange` object
      - `end` string, nullable
      - `start` string, nullable
  - `success` boolean

---

[API](https://skmtc.dev/owlsinsight/apis/owls-insight-api.md) · [All operations](https://skmtc.dev/owlsinsight/apis/owls-insight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/owlsinsight/apis/owls-insight-api/revisions/76c1ea016ff1?raw)
