04AI & data products
Feed your models whole seasons, not scraped pages.
Pull a league season as a single file, join it to our in-play win-probability model, and key everything on ids that stay put from one season to the next. One envelope and one key from the first notebook to production.
The play
Four calls. Final whistle: model ready.
Each marker is a request. Each run carries its ids to the next.
read it left to right- 1
Find the season
List a league's seasons, newest first, to get the season id an export asks for.
GETSeasons:/v2/leagues/{id}/seasonsAll plans - 2
Order the season
On Business, start an export of one league season as JSON, CSV or Parquet: fixtures, standings, top players and top teams. It answers 202 and builds in the background.
POSTCreate an export:/v2/exportsBusiness - 3
Collect the files
Poll until the status reads ready, then download from links that stay valid for an hour. Ask again for fresh links. A cached season is ready in seconds, others in a few minutes.
GETExport status:/v2/exports/{id}Business - 4
Add a live signal
On Pro and Business, our own football model: where it stood before kick-off, the home/draw/away split right now, and the full curve, recomputed as the match goes on.
GETWin probability:/v2/fixtures/{id}/win-probabilityPro + Business
In code
A season into your pipeline
Order the export, wait for the files, then add the live model for the matches you score. The same key and the same envelope throughout.
- Install
pip install datasportsapi- Key
export DATASPORTSAPI_API_KEY=dsa_live_…
import time
from datasportsapi import DataSportsAPI
client = DataSportsAPI() # reads DATASPORTSAPI_API_KEY
season_id = client.leagues.seasons(league_id)["data"][0]["id"]
job = client.exports.create(league=league_id, season=season_id, format="parquet")["data"]
while job["status"] not in ("ready", "failed"):
time.sleep(5)
job = client.exports.get(job["id"])["data"]
for f in job["files"]:
print(f["name"], f["url"]) # fixtures.parquet, standings.parquet
curve = client.fixtures.win_probability(fixture_id)["data"]Field notes
Worth knowing before launch.
Up to 20 exports per account per UTC day; finished files are kept for seven days.
CSV and Parquet exports are two flat tables, fixtures and standings. JSON holds the whole season as the endpoints serve it.
The win model is an analysis indicator, built without bookmaker odds. It is not betting advice.
Which plan
Goes live on Business.
Season exports and the full history, more than ten years on average, are Business features. If all you need is the live model, Pro serves the win-probability endpoint with six months of history.
Free
01$0/ month
1,000 requests / day
Learn the schema on a week of real data.
Starter
02$49/ month
250,000 requests / month
Thirty days of fixtures for a proof of concept.
Pro
03$199/ month
1,000,000 requests / month
Win-probability curves and six months of history through the REST endpoints.
- Fits this play
Business
04$999/ month
10,000,000 requests / month
Season exports in JSON, CSV or Parquet, the full history and 10M requests a month.
Other plays
All 5 side by side- 01BusinessLive score appsEvery match in play on one board, each a tap away, kept current by push.
- 02ProMedia match centresSchedules, tables, match numbers and AI live text for every sport you cover.
- 03ProFantasy & gamesMatch ratings, season totals, form lines and leaderboards to score with.
- 05ProWebsite widgetsA score list, a match card or a league table, from one script tag.
Prototype on a free key. Export on Business.
1,000 free requests a day during the beta. No card, no sales call.