Skip to content
datasportsAPI

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. 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. 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. 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. 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_…
All SDKs and the CLI
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.

  1. Logos and photos are absolute URLs on our CDN, so templates never build image paths by hand.

  2. Statistic keys are shared across sports, which keeps one stats component working everywhere.

  3. 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.

  1. Free

    01

    $0/ month

    1,000 requests / day

    Prototype page templates against real fixtures from the last seven days.

  2. Starter

    02

    $49/ month

    250,000 requests / month

    Schedules, tables and match reports for a site with steady traffic.

  3. 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.

  4. Business

    04

    $999/ month

    10,000,000 requests / month

    Archive pages from the full history, and signed webhooks to trigger live-blog updates.

Draft the match centre on a free key.

1,000 free requests a day during the beta. No card, no sales call.