02Media match centres
Match centres your newsroom never has to type up.
Fixture lists, league tables, match reports and live text for every sport you cover, all in one JSON shape. A match page template built for football also works for handball, and the club crests come from our CDN.
The play
Four calls. Final whistle: match centre.
Each marker is a request. Each run carries its ids to the next.
read it left to right- 1
Set the day's schedule
Every fixture kicking off on one UTC day, for a whole sport, one country or a single league. Kick-off times come in UTC, so each edition localises them its own way.
GETFixtures by date:/v2/fixturesAll plans - 2
Print the table
The season's main table by default. For deeper pages, ask for every group and conference at once, or for home-only and away-only tables.
GETStandings:/v2/leagues/{id}/standingsAll plans - 3
Write around the numbers
Statistics by period and category for the match you lead with. Events, lineups and best players are sibling calls on the same fixture id.
GETStatistics:/v2/fixtures/{id}/statisticsAll plans - 4
Run a live text
On Pro, short AI-written lines whenever there is a goal, a red card, a VAR decision or a big swing in momentum, with a summary at half-time and another at full time. Football only, written from our own match data with no betting language.
GETAI commentary:/v2/fixtures/{id}/commentaryPro + Business
In code
One match day, four calls
The schedule, the table, the numbers behind the lead match and, on Pro, a live text to run beside it.
- Install
npm install datasportsapi- Key
export DATASPORTSAPI_API_KEY=dsa_live_…
import { DataSportsAPI } from 'datasportsapi';
const client = new DataSportsAPI({ apiKey: process.env.DATASPORTSAPI_API_KEY });
const date = new Date().toISOString().slice(0, 10);
const { data: fixtures } = await client.fixtures.list({ date, league: leagueId });
const { data: table } = await client.leagues.standings(leagueId, { season: seasonId });
const { data: stats } = await client.fixtures.statistics(fixtures[0].id);
// Pro: AI live text for the lead match
const { data: liveText } = await client.fixtures.commentary(fixtures[0].id);Field notes
Worth knowing before launch.
Logos and photos are absolute URLs on our CDN, so templates never build image paths by hand.
Statistic keys are shared across sports, which keeps one stats component working everywhere.
AI commentary keeps writing while someone follows the match, so call it during play.
Which plan
Goes live on Pro.
Starter already covers fixtures, tables, events, lineups and statistics. Pro adds what sets a match centre apart: AI commentary, the win-probability model, shot maps and momentum, embeddable widgets for partner pages, and six months of history for previews and form guides.
Free
01$0/ month
1,000 requests / day
Prototype page templates against real fixtures from the last seven days.
Starter
02$49/ month
250,000 requests / month
Schedules, tables and match reports for a site with steady traffic.
- Fits this play
Pro
03$199/ month
1,000,000 requests / month
The analytics layer, AI live text and widgets, with six months to look back on.
Business
04$999/ month
10,000,000 requests / month
Archive pages from the full history, and signed webhooks to trigger live-blog updates.
Other plays
All 5 side by side- 01BusinessLive score appsEvery match in play on one board, each a tap away, kept current by push.
- 03ProFantasy & gamesMatch ratings, season totals, form lines and leaderboards to score with.
- 04BusinessAI & data productsWhole-season exports, a live win model and ids that hold from season to season.
- 05ProWebsite widgetsA score list, a match card or a league table, from one script tag.
Draft the match centre on a free key.
1,000 free requests a day during the beta. No card, no sales call.