Multi-source historical betting data for backtesting. Prices are real book rows only. Result-only archives are labeled separately so modelers know exactly what is price history and what is match history.
Use the endpoint that matches the evidence you need. We keep price archives, closing lines, result archives, and forward line movement separate on purpose.
| Dataset | Endpoint | Best for | Guarantee |
|---|---|---|---|
| Point-in-time odds | /v1/historical/sports/{sport_key}/odds | TOA-style historical pulls | Real historical price rows inside the tier window. |
| Closing odds | /v1/historical/sports/{sport_key}/closing-odds | Pregame backtests | Last real price before commence where we have that archive. |
| Matches/results | /v1/historical/sports/{sport_key}/matches | Schedules, teams, scores, esports training sets | Each row exposes has_odds; result-only rows are not odds history. |
| Line movement | /v1/sports/{sport_key}/line-movement | CLV and before/after movement | Forward capture from our live tables, not a backfilled simulation. |
Current esports status: CS2, Dota 2, and Valorant have match/result archives plus forward Pinnacle price rows from May 2026 onward. They do not yet have deep historical odds movement for prior years.
Every claim a backtester wants to make rests on: are the prices real, do the games settle correctly, and is more than one source telling me the same thing? We pre-deduplicated and cross-tabulated for you.
Six independent feeds, none derived or interpolated. Every row is a real endpoint reading.
Top sports by row count. Each sport lists how many distinct sources we have prices from. Soccer leagues get the deepest cross-source coverage thanks to football-data.co.uk's bookmaker grid.
| Sport | Rows | Sources | First date | Last date |
|---|---|---|---|---|
| loading… | ||||
Each source is a distinct upstream. pinnacle and pinnacle_open are our own forward-going daily snapshots from the live Pinnacle endpoint. draftkings_espn is the DraftKings closing line as published by ESPN. nflverse_pbp is the community NFL play-by-play archive; our NFL records include history from 2005, with sparse seed rows in earlier seasons. hoopr_nba is sportsdataverse's NBA betting-lines archive going back to 2017; NBA closing lines reach further back than that in the archive as a whole, to 2007, via sbr_close. cfbd_consensus and the per-book cfbd_* entries come from collegefootballdata.com's /lines API across 11 NCAAF seasons. Each is an independent read of the market.
| Source | Rows | Sports | First date | Last date |
|---|---|---|---|---|
| loading… | ||||
Same auth as the rest of the API. The endpoint is paginated; you can filter by date range, source, and sport.
# Example: NBA closing lines from any source, last 30 days curl "https://parlay-api.com/v1/historical/sports/basketball_nba/odds?\ start=2026-04-01&end=2026-04-30" \ -H "X-API-Key: YOUR_KEY" # Filter to a specific source for an apples-to-apples backtest curl "https://parlay-api.com/v1/historical/sports/baseball_mlb/odds?\ source=draftkings_espn&start=2026-04-01" \ -H "X-API-Key: YOUR_KEY" # Coverage report (no auth required) curl "https://parlay-api.com/v1/historical/coverage"
Start with the NFL Week 1 opening lines dataset to inspect the response shape. This released dataset and the reuse and adaptations permitted under CC BY 4.0 are licensed with attribution. That grant does not cover the API, other archives, future datasets, commercial derived products using other data, or an SLA. Before planning a backtest or purchase, use the coverage report and a representative sample to verify the exact league, market, book, date range, and row completeness you need. Summary counts do not guarantee coverage for a specific combination. Review the terms; broader commercial or redistribution rights require a separate written agreement. Contact support with the requested scope if you need help checking it.