TOURNAMENTSUITE
TOURNAMENTSUITE
Developer Documentation
Core ConceptsProjects & CredentialsTournamentsParticipantsMatchesCircuitsThe Data API: Public Read-Only AccessAnti-Cheat Integration API
Core Concepts

Participants

How players and teams register, get approved, check in, and participate in Tournament Suite tournaments.

Participants are the players or teams registered in a tournament. Tournament Suite supports both individual participants (single players) and team participants depending on the tournament's teamSize configuration.

Participant types

TypeWhen used
individualteamSize = 1 — each registered user is an individual participant
teamteamSize > 1 — participants are teams with a roster of players

For team tournaments, one player acts as the team captain and registers on behalf of the team, submitting the roster as a list of team members. Other members can be added or swapped before check-in closes.

Registration flow

Register → (optional) organizer approval → Check in → Seed into bracket

Some tournaments require organizer approval before a registration is confirmed, and some hold surplus registrants on a reserve bench until a roster slot opens up. See Registration approval and the reserve bench below.

Register for a tournament

POST /api/v1/tournaments/:tournamentId/participants/register
Authorization: Bearer USER_ACCESS_TOKEN
Content-Type: application/json

{
  "teamName": "Alpha Squad",
  "teamMembers": [
    { "userId": "user-id-1", "role": "captain" },
    { "userId": "user-id-2", "role": "player" },
    { "userId": "user-id-3", "role": "player" },
    { "userId": "user-id-4", "role": "player" },
    { "userId": "user-id-5", "role": "substitute" }
  ]
}

For individual tournaments, no body is required — the authenticated user is registered directly. For team tournaments, teamMembers is an array of member objects (userId plus a roster role), not a plain list of user IDs.

List participants

GET /api/v1/tournaments/:tournamentId/participants

This endpoint is public and does not require authentication or an API key. Pass an Authorization: Bearer token to also receive fields scoped to the caller (for example, whether they can manage a given participant).

Registration approval and the reserve bench

By default, registration completes immediately. Organizers can instead require approval, in which case a new registration starts in a pending state until an organizer approves or rejects it:

PATCH /api/v1/tournaments/:tournamentId/registrations/:participantId/approve
PATCH /api/v1/tournaments/:tournamentId/registrations/:participantId/reject
Authorization: Bearer ORGANIZER_ACCESS_TOKEN

When a tournament fills up, the bracket is sized to its approved entrants only — additional registrants are held on a reserve bench rather than rejected outright. Organizers move entrants onto and off of the reserve bench, and promote a reserve entrant into an open roster slot, as capacity changes:

PATCH /api/v1/tournaments/:tournamentId/registrations/:participantId/waitlist
PATCH /api/v1/tournaments/:tournamentId/registrations/:participantId/promote
Authorization: Bearer ORGANIZER_ACCESS_TOKEN

Promoting a reserve entrant fails if the approved roster is already at the tournament's participant cap.

Managing your own registration

Players can view, and — depending on the tournament's settings — cancel or edit their own registration:

GET /api/v1/tournaments/:tournamentId/registrations/me
POST /api/v1/tournaments/:tournamentId/registrations/me/cancel
PATCH /api/v1/tournaments/:tournamentId/registrations/me
Authorization: Bearer USER_ACCESS_TOKEN

Cancelling and editing are each gated by an organizer-configured setting (allowCancel, allowEdit) — if the organizer has disabled one, the corresponding request is rejected.

Check-in

Check-in confirms a participant's attendance before the tournament starts. The check-in window opens and closes according to the tournament's schedule.

Self check-in

POST /api/v1/tournaments/:tournamentId/participants/checkin/me
Authorization: Bearer USER_ACCESS_TOKEN

Some tournaments require a running anti-cheat client before self check-in is allowed. If the tournament has this requirement enabled and no anti-cheat session is detected for the player, the check-in request is rejected.

Organizer check-in of a specific participant

POST /api/v1/tournaments/:tournamentId/participants/:participantId/checkin
Authorization: Bearer ORGANIZER_ACCESS_TOKEN

Participants who do not check in before the deadline may be removed from the bracket at the organizer's discretion.

Custom registration fields

Tournaments can require additional information at registration — for example, a game-specific ID like a Riot account name. These custom fields are defined by the organizer when setting up the tournament.

To discover what fields a tournament requires before attempting registration:

GET /api/v1/tournaments/:tournamentId/registration/form

The response describes the custom fields and team-size constraints for the tournament. Submit the required values in the registration request body under the customFields key. After registering, your own submitted values are available on your registration:

GET /api/v1/tournaments/:tournamentId/registrations/me

Look for customFields in the response.

Participant statuses

StatusDescription
registeredSuccessfully registered, pending check-in
checked_inConfirmed attendance, eligible to be seeded
activeCurrently competing
eliminatedNo longer in the competition
disqualifiedRemoved by an organizer for a rule violation
withdrewVoluntarily withdrew from the tournament
no_showDid not check in or appear for a scheduled match

A participant's position in the bracket is tracked separately as a numeric seed field, not as a status.

Managing participants (organizer)

Organizers, moderators, and admins can remove, disqualify, or substitute participants before or during a tournament. Each of these is a distinct operation.

Remove a participant

DELETE /api/v1/tournaments/:tournamentId/participants/:participantId
Authorization: Bearer ORGANIZER_ACCESS_TOKEN

This unregisters the participant entirely.

Disqualify a participant

POST /api/v1/tournaments/:tournamentId/participants/:participantId/disqualify
Authorization: Bearer ORGANIZER_ACCESS_TOKEN
Content-Type: application/json

{
  "reason": "Confirmed cheating in match 3"
}

Disqualification is tracked with a reason and is reversible:

POST /api/v1/tournaments/:tournamentId/participants/:participantId/reinstate
Authorization: Bearer ORGANIZER_ACCESS_TOKEN

Substitute a participant

For team tournaments, an organizer or moderator can swap in a different user for an existing participant slot rather than removing and re-registering the whole entry:

POST /api/v1/tournaments/:tournamentId/participants/:participantId/substitute
Authorization: Bearer ORGANIZER_ACCESS_TOKEN
Content-Type: application/json

{
  "substituteUserId": "user-id-6",
  "reason": "Original player unavailable"
}

All of the endpoints in this section require an authenticated organizer, moderator, or admin role — they are not accessible with an API key.

Was this helpful?

Tournaments

How tournaments work in Tournament Suite — lifecycle, structure, and key API operations.

Matches

How matches are created, played, and resolved in Tournament Suite.

On this page

Participant typesRegistration flowRegister for a tournamentList participantsRegistration approval and the reserve benchManaging your own registrationCheck-inSelf check-inOrganizer check-in of a specific participantCustom registration fieldsParticipant statusesManaging participants (organizer)Remove a participantDisqualify a participantSubstitute a participant