Skip to content

Reference for the three public CSV downloads

Use the same competition-season files available on Downloads. This page describes that existing export route and helps you construct a valid same-origin link.

Choose a stored competition and season

Downloads lists available competition slugs and their latest three stored seasons. A league address identifies its competition slug; use the exact stored season label. The CSV route itself has no latest-three-season filter and can address another stored season directly.

The route is GET /api/public/csv/{competition}/{season}/{kind}. The supported kinds are exactly matches, table and clubs. The current public route requires no sign-in or API key.

Copy the exact competition slug and season label from Downloads or a league address. The initial example is a stored historical Premier League season; it is not the current season.

Download this CSV

/api/public/csv/premier-league/2017-18/matches

Generating a link does not verify that this competition-season is stored. A valid address with no rows can return a header-only file.

Read the response before parsing

A successful response has Content-Type: text/csv; charset=utf-8, an attachment filename in the form matchdaysync-competition-season-kind.csv, and Cache-Control: public, max-age=3600. A cached file can therefore be up to an hour behind a changed source.

The first line starts with # Source: and identifies the competition, season and kind. Skip that one comment line before parsing the column header. Quoted CSV cells use doubled quotes. Null or unavailable values are empty cells, not numeric zero. Text that could be interpreted as a spreadsheet formula is escaped; genuine numeric values retain their numeric representation.

Invalid path values return 404. A syntactically valid path with no matching source rows can return a successful header-only file. A source read failure returns 503 with no-store caching; an oversized export returns 413 instead of a partial file. Check the HTTP status and content type before interpreting a response as CSV. There is no versioned machine-readable error envelope.

Restored from the 11 October backup. Current updates are not connected.

Matches file

One row per stored match, in date then match-ID order, including its stored status. The file is not restricted to finished results. Statistics use the source's full-match ALL period.

date, kickoff_utc, round, status, home, away, home_goals, away_goals, ht_home_goals, ht_away_goals, referee

These columns are followed by each side's shots, shots_on_target, corners, fouls, offsides, yellow_cards, red_cards and xg, prefixed home_ and then away_. A missing half-time or optional measurement stays blank. The file does not contain player statistics, a goal timeline or a current-live service.

Table and clubs files

table: stored overall, home and away standings are included together and identified by split. Rows are ordered by split then position.

split, position, club, played, wins, draws, losses, goals_for, goals_against, goal_diff, points, ppg, form_last5

clubs: club is followed by fields currently returned by the club-season statistics view, including its venue split and observed-stat sample fields. This is a view-dependent column set, not a versioned fixed schema. Read the header by name rather than assuming column positions. Competition, season and internal team ID are omitted from its columns; competition and season are identified by the requested path and source comment.

For an empty clubs result the header is only club. The public route has no period, round, date-cutoff or venue-split query contract. A calculated period table's own Download CSV action exports the displayed table separately.

Current limits and permitted use

An export supports up to 20,000 source rows. Reads are internally paged in batches of 1,000, and one further row is checked at the limit. If more than 20,000 rows are required, the request returns 413 and no partial CSV file is delivered.

There is no caller page, cursor or continuation parameter. These are public reference downloads, not a general REST data platform. No API-key issuance, versioned JSON API, availability guarantee or commercial feed is offered here. Public access does not grant redistribution or resale rights. Source-specific rights and service coverage must be resolved before any such offer.

Learn to interpret optional-stat samples, check source coverage, or contact MatchDaySync about a specific file. Existing purchased files use their separate protected confirmation/download flow.

Where the files come from

  • Downloads: Competition-season CSV files from the stored data.
  • Data status: Coverage of the stored match data, competition by competition.
  • Leagues: Tables, fixtures, results and statistics for each stored competition.

Reading the numbers once you have them

Questions about a file

  • FAQ: Short answers about projections, past purchases and our record.
  • Contact: Methodology questions, corrections, partnerships and press.
  • Archive methodology: How the archived World Cup 2026 projections were built: sample, filters, confidence and limits.

MatchDaySync provides sports statistics and analytics for information only, never advice.