Structured data, built for modeling
Clean, structured and backfilled sports data — results, statistics and odds history — ready to feed straight into your models, notebooks and pipelines. Same schema whether you're pulling last night's match or the last five seasons.
Multi-Season Archive
Backfilled history across every sport.
Structured Schema
Consistent, well-typed data for pipelines.
Bulk Export
Pull large ranges for offline analysis.
Advanced Metrics
Deeper statistics for research use cases.
Point-in-Time Data
Snapshots as they stood, not revised with hindsight.
Shared Live/Historical Schema
The same field names in backtests and production.
What teams use this data for
The same structured feed supports a range of analytics and data science workflows.
Predictive Modeling
Feed match results, team form and player stats into forecasting or rating models.
- Historical and live data share one schema
- Elo-friendly result and margin fields
- Player and team IDs stay stable across seasons
Backtesting & Research
Replay past seasons against a strategy or model without contaminating results with hindsight.
- Point-in-time snapshots avoid lookahead bias
- Bulk export for multi-season pulls
- Consistent competition and season identifiers
Player & Team Analytics
Build scouting boards, performance dashboards or fantasy scoring engines on structured stats.
- Season and match-level statistics
- Consistent fields across competitions
- Works alongside the Fantasy & Analytics solution
Automated Reporting
Schedule pulls into a warehouse and generate recurring reports without manual data entry.
- Predictable, typed JSON — easy to load into a warehouse
- Pagination metadata for safe incremental syncs
- Webhooks available to trigger reports on new results
What you get back
A representative slice of the fields available on historical and statistics endpoints — full field-by-field detail is in the API Reference.
| Field | Type | Description |
|---|---|---|
fixture_id | string | Stable identifier for the match, consistent across live and historical calls |
season | string | Season label, e.g. 2024-2025 |
competition_id | string | League or tournament identifier |
home_team / away_team | string | Team names, with matching team_id fields for joins |
home_goals / away_goals | integer | Final score, present once the fixture is complete |
statistics | object | Possession, shots, cards and other match-level stats, where available |
odds_close | object | Closing odds snapshot, for studies comparing pre-match pricing to outcomes |
GET /v1/football/historical/results
Bulk historical results for modeling — the response, and loading it straight into pandas.
{
"data": [
{
"fixture_id": "f_20481",
"season": "2024-2025",
"competition_id": "premier-league",
"home_team": "Arsenal",
"away_team": "Chelsea",
"home_goals": 2,
"away_goals": 1
}
],
"meta": { "season": "2024-2025", "matches": 380 },
"pagination": { "page": 1, "per_page": 100, "total_pages": 4 }
}
results = client.football.historical(season="2024-2025")
df = pd.DataFrame(results["data"])
df["margin"] = df["home_goals"] - df["away_goals"]
print(df.groupby("competition_id")["margin"].mean())
See the full Historical Backtest example for a complete, runnable walkthrough.
Common questions
Is the historical data point-in-time correct?
Yes. Historical endpoints return the data as it stood at the time, not data revised with hindsight, so backtests don't suffer from lookahead bias.
Does live data use the same schema as historical data?
Yes. Historical and live endpoints share the same field names and types, so a model trained on historical data can consume live data without a rewrite.
Can I bulk-export data instead of paginating through the API?
Yes. Growth and Enterprise plans include bulk export for large date ranges, which is faster than paginating a season at a time for research pipelines.
Can I use this data to train and sell a commercial model?
Usage rights depend on your plan and data-licensing terms. Contact sales to confirm commercial modeling and redistribution rights before building a paid product on top of the data.
Related pages
Explore more of the platform.
Start free. Upgrade when you need enterprise SLAs.
Self-serve API keys for developers today — dedicated infrastructure, custom feeds and SLAs when you're ready.