Endpoint Catalog
Reference for the public Tournament Suite Data API — the licensed, read-only, API-key-authenticated REST surface.
API Version: v1
Base URL: https://api.tournamentsuite.com/api/v1/data
The public developer surface is the Data API: a read-only set of endpoints for pulling tournament, match, and player data into your own application or dashboard. It is a licensed feature — your project's plan must include Data API access, and requests are authenticated with a project-scoped API key.
There is no API-key-callable surface for creating or managing tournaments, circuits, matches, or organizations. Those actions happen in the Tournament Suite dashboard (or, for players, in the tournament app itself); the Data API only reads data back out.
Authentication
Every Data API request requires an x-api-key header. This surface does not accept an Authorization: Bearer token as an alternative.
curl https://api.tournamentsuite.com/api/v1/data/tournaments \
-H "x-api-key: YOUR_API_KEY"
Generate and manage keys from your project's developer settings. Each key is scoped to a single project and to a specific set of read scopes (see below) — a key can only reach the endpoints its scopes cover.
Plan entitlement
Data API access is gated by your subscription plan. If your project's plan does not include it, every request is rejected regardless of scopes — upgrade your plan to enable the Data API before generating keys for it.
Rate limits
Requests are rate-limited per API key, with the limit determined by your plan tier. See Rate Limits for the response headers and backoff pattern; the same 429 Too Many Requests behavior applies here.
Response envelope
Every Data API response uses the same envelope:
{
"success": true,
"data": { },
"message": "Tournaments retrieved successfully"
}
data holds the resource or list payload described in each endpoint below; success and message are always present, including on paginated list responses.
Scopes
Each endpoint requires one of the following scopes on your API key:
| Scope | Grants |
|---|---|
read:tournaments | Tournament and bracket endpoints |
read:matches | Match and match-event endpoints |
read:player_stats | Player stats endpoint |
read:teams | Team endpoint |
A key with none of these scopes cannot call any Data API endpoint.
Tournaments
GET /data/tournaments # List tournaments — scope: read:tournaments
GET /data/tournaments/:id # Get a tournament by id or slug — scope: read:tournaments
GET /data/tournaments/:id/bracket # Get a tournament's bracket — scope: read:tournaments
GET /data/tournaments/:id/matches # List matches in a tournament — scope: read:matches
Matches
GET /data/matches/:id # Get a match by id — scope: read:matches
GET /data/matches/:id/events # Get a match's normalized event feed — scope: read:matches
Players
GET /data/players/:id/stats # Get a player's per-game stats — scope: read:player_stats
gameId is a required query parameter on this endpoint — it selects which game's stats to return for the player.
Teams
GET /data/teams/:id # Get a team by id — scope: read:teams
Common query parameters
List and event-feed endpoints accept the following optional parameters:
?page=1&limit=25 # pagination (limit max 100, default 25)
?gameId=cs2 # filter by discipline/game slug (required on the player stats endpoint)
?status=... # endpoint-specific status filter
?from=2026-07-01T00:00:00Z&to=2026-07-31T23:59:59Z # ISO-8601 event-time range
Not every parameter applies to every endpoint — a from/to window is only meaningful on endpoints returning time-ordered data, such as the match event feed.
Response codes
See Response Codes for the full list of status codes and error envelope format.
Related
Was this helpful?
