Get Historical Odds
Get historical odds at a point in time.
Credits: 10 × billable markets × regions. This archive holds moneyline, spread and total columns and nothing else, so h2h, spreads and totals are the only keys that can be billed here. outrights, the alt ladder and every prop key are accepted, return nothing from this archive, cost zero, and come back named in x-markets-unservable with the archive endpoint that does hold them in x-markets-served-elsewhere (prop history is /v1/historical/sports/{sport_key}/closing-odds?markets=<key>; period history is /v1/historical/sports/{sport_key}/period_markets).
iter_058 #463 — date= vs dateFrom=&dateTo= return different rows for the same date. The single-date path (?date=YYYY-MM-DD) reads from the long-term archive and includes the _an "anchored" closing-line variants (e.g. draftkings_an, fanduel_an, bet365_an) alongside the regular bookmaker rows. The range path (?dateFrom=...&dateTo=...) reads from the rolling snapshot table and surfaces only the bare bookmaker keys (without _an). For consistent backtest joins, prefer ?date= when you need closing-line anchors. See /v1/bookmakers/{key}.historical_variants for the suffix convention.
date omitted returns the latest snapshot (equivalent to current /v1/sports/{sport_key}/odds but routed through the historical pricing). This matches the UX of /closing-odds which doesn't require an explicit date either - removes the 422-on-missing-param trap that customers hit when they don't read the schema first.
Request
- Base URL: https://parlay-api.com
- URL: https://parlay-api.com/v1/historical/sports/{sport_key}/odds
- Auth: one of:
- API key in header X-API-Key
- API key in query parameter apiKey
- HTTP bearer
Path parameters
Query parameters
ISO 8601 timestamp OR YYYY-MM-DD date. Omit to get the most recent snapshot. See doc note below for behavior.
Comma-separated: us,us2,uk,eu,au. Default us.
Comma-separated: us,us2,uk,eu,au. Default us. Repeating this parameter is the same as the comma form: ?markets=h2h&markets=spreads and ?markets=h2h,spreads are one request, billed identically, and return the union. A value repeated across occurrences is counted once.
Comma-separated: h2h,spreads,totals. Default h2h. Those three are the whole servable list here; any other key is answered but billed zero and routed by the x-markets-served-elsewhere header.
Comma-separated: h2h,spreads,totals. Default h2h. Those three are the whole servable list here; any other key is answered but billed zero and routed by the x-markets-served-elsewhere header. Repeating this parameter is the same as the comma form: ?markets=h2h&markets=spreads and ?markets=h2h,spreads are one request, billed identically, and return the union. A value repeated across occurrences is counted once.
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.