Tournaments
How tournaments work in TournamentSuite — lifecycle, structure, and key API operations.
A tournament is the central resource in TournamentSuite. It defines the competitive event, its format, its participants, and its schedule.
Tournament lifecycle
Tournaments move through the following states:
DRAFT → PUBLISHED → REGISTRATION_OPEN → REGISTRATION_CLOSED → ONGOING → COMPLETED| Status | Description |
|---|---|
DRAFT | Tournament is being configured; not visible to the public |
PUBLISHED | Tournament is public; registration may or may not be open |
REGISTRATION_OPEN | Players can register |
REGISTRATION_CLOSED | Registration period has ended; organizer finalizes the bracket |
ONGOING | Tournament is in progress; matches are being played |
COMPLETED | All matches are resolved; final results are locked |
Once a tournament moves to ONGOING, structural settings (format, team size, stage configuration) are locked.
Structure
A tournament contains one or more stages. Each stage has a format:
| Format | Description |
|---|---|
SINGLE_ELIMINATION | Losers are immediately eliminated |
DOUBLE_ELIMINATION | Losers get a second chance through a losers bracket |
ROUND_ROBIN | Every participant plays every other participant |
SWISS | Participants are paired by current score each round |
GROUPS | Pool stage producing ranked qualifiers |
Stages run sequentially. Participants who advance from Stage 1 are automatically seeded into Stage 2.
Key endpoints
List tournaments
GET /api/v1/tournaments?status=PUBLISHED&page=1&limit=20Get a tournament
GET /api/v1/tournaments/:idResponse includes full tournament details, current status, stage configuration, and participant counts.
Create a tournament
POST /api/v1/tournaments
Content-Type: application/json
X-API-Key: YOUR_API_KEY
{
"name": "Summer Open 2026",
"disciplineId": "cs2",
"maxParticipants": 64,
"teamSize": 5,
"stages": [
{ "format": "GROUPS", "name": "Group Stage" },
{ "format": "SINGLE_ELIMINATION", "name": "Playoffs" }
],
"startDate": "2026-07-01T00:00:00Z"
}Start a tournament
POST /api/v1/tournaments/:id/startStarting a tournament closes registration, generates the bracket, and seeds participants. After this point, the tournament is ONGOING.
Brackets and seeding
Once a tournament starts, each stage generates its bracket or group table. You can retrieve the bracket at any point:
GET /api/v1/tournaments/:id/bracketThe response includes the full match tree with participant assignments, scores, and advancement paths.
Related resources
- Participants — who is in the tournament
- Matches — individual games within a stage
- Webhooks — get notified when tournament state changes