Bulk exports
Create an export
POST/v2/exportsBusiness
Start an export of one league season. Body (JSON): league (our id), season (an id from /v2/leagues/{id}/seasons), format — json (default: one season.json with league, season, rounds, every fixture, standings, top players and top teams as the endpoints serve them), csv or parquet (two flat tables, fixtures and standings). Answers 202 with the export, status pending.
Fixtures come from the season’s rounds: a competition the source does not organize in rounds (NBA and NHL regular seasons) exports no fixtures, and the export’s error field names anything that could not be read (“not included: topPlayers”). A postponed match that was replayed later can appear twice, as the source lists it: the postponed fixture and the played one, under different ids (Premier League 25/26: 381 fixtures, one postponed). CSV / Parquet columns — fixtures: fixture_id, sport, start_time, round, round_name, status, status_description, home_team_id, home_team, away_team_id, away_team, home_score, away_score, winner, venue; standings: table, primary, position, team_id, team, played, wins, draws, losses, scores_for, scores_against, points, zone.
Response
- data
Export- errors
- 404 not_found — no such league, or the season is not one of the league’s429 export_limit — 20 exports a UTC day used
Every /v2 call can also answer the common errors.
Example
$ curl -X POST -H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \ -d '{ "league": 17, "season": 61627, "format": "parquet" }' https://api.sportsapi.app/v2/exports { "data": { "id": 42, "league": 17, "season": 61627, "format": "parquet", "status": "pending", "error": null, "fixtureCount": null, "createdAt": "2026-11-01T18:00:00.000Z", "finishedAt": null, "files": [] } }