One monthly package — manifest, or the bulk file itself (PRO)

Without format returns the package manifest (file set, counts, sha256). With format=jsonl or format=csv streams that file as an attachment. Same entitlement as /history/packages. 404 when the month has not been built yet — list available months first.

get/history/packages/{period}

Request

  • Base URL: https://api.livetennisapi.com/api/public/v1
  • URL: https://api.livetennisapi.com/api/public/v1/history/packages/{period}
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

periodstring required

Calendar month, YYYY-MM — except for the yearly kinds (rally, archive, elo, archive_tape), where it is the bare year YYYY (400 bad_period otherwise).

Query parameters

kind'tape' | 'rankings' | 'rally' | 'archive' | 'elo' | 'archive_tape'

Package family; rankings, rally, elo and archive_tape require ULTRA, a History Pro/Business subscription, or an active one-off package window (changed 2026-08-19). rally = the yearly charted rally corpus exports; archive = the yearly results archive (1968–2022) exports, same entitlement as the tape packages; elo = the yearly as-of Elo tape exports; archive_tape = the yearly reconstructed 2013–2022 point-by-point tape exports (period 2013 through 2022 — no other year exists).

format'jsonl' | 'csv' | 'corrections'

Omit for the JSON manifest; set to download the file. corrections (added 2026-09-10) streams the package's correction CSV — match_id, field, before, after, tournament_key, source, corrected_at — when stored data was repaired after the package was published; the manifest's files lists it with format: corrections, and a package without one answers 404 no corrections file for that package. First use: the 2023-02 → 2024-12 tape packages carry surface corrections for 19,439 Challenger matches (repaired 2026-09-10; the packages themselves were rebuilt the same day).

Response

The manifest (no format), or the bulk file as an attachment (format=jsonl streams NDJSON, format=csv streams CSV, format=corrections streams the correction CSV). A gzipped file (see the manifest's compression) is served as application/gzip, never with Content-Encoding: gzip — the manifest's sha256 covers the exact bytes you receive.

periodstring

Calendar month, YYYY-MM — or the bare year YYYY on the yearly rally/archive/elo/archive_tape kinds.

status'ready'

Only built months are listed or served.

match_countinteger nullable
row_countinteger nullable
built_atstring date-time nullable
schema_version1 | 2 | null nullable

Which shape this month's files carry (added 2026-09-22), so you can tell without opening them. 2 = a package row is the API tape row (origin, serve, outcome, winner, and the full meta), and the CSV carries the trailing columns. 1 = the shape every month built before 22 September 2026 carries: tape rows hold the score columns only (no origin, serve, outcome or winner; no meta.enrichment, reconstructed_at or observed_span), and the CSV ends at danger. Months built before 22 September 2026 keep this shape UNTIL THEY ARE REBUILT; the rebuild runs newest month first, then backwards, and a month's schema_version flips to 2 (and its built_at and sha256 values move) when its turn comes. Check the manifest rather than assuming a month is one or the other: a consumer that needs the enriched fields should require schema_version >= 2 and, for a month still at 1, read the per-match endpoint for the matches it needs. null = not versioned: the non-tape kinds (rankings, elo, …).

kind'tape' | 'rankings' | 'rally' | 'archive' | 'elo' | 'archive_tape'

Present only on non-tape packages, so the shape a tape client already parses is unchanged. On a rankings package match_count is the number of players covered and row_count the number of ranking records; on a rally package the counts are charted matches and points; on an archive package the counts are archive results; on an elo package row_count is the number of rating records; on an archive_tape package match_count is the reconstructed tapes in that year and row_count their score rows (97,901 and 14,340,663 across the ten years).

Changes

No recorded changes to this operation across all 1 revision of this API.