TOURNAMENTSUITE
TOURNAMENTSUITE
Developer Documentation
AuthenticationAuthorizationScopesOAuth 2
Security

Scopes

The scopes you can grant an API key, and which endpoints each one unlocks.

Scopes define which operations an API key is permitted to perform. Assign the minimum set of scopes required for your integration.

The public Data API is read-only — creating or updating tournaments, registering participants, and reporting match results are organizer actions performed from the dashboard, not exposed to API keys. The scopes below cover what a key can read from the Data API, subscribe to on the real-time stream, and — for anti-cheat integrations — write.

Tournament scopes

ScopeDescription
read:tournamentsList and retrieve tournaments, stages, and brackets

Match scopes

ScopeDescription
read:matchesRetrieve match details, schedules, results, and normalized match events

Player and team scopes

ScopeDescription
read:player_statsRetrieve a player's per-game statistics
read:teamsRetrieve team details

Real-time scopes

ScopeDescription
stream:match_eventsSubscribe to the public real-time match-event stream

Beyond the request/response Data API, Tournament Suite exposes a real-time event stream for live match data — bracket updates, score changes, and match state transitions — delivered over a WebSocket connection instead of polling. An API key needs the stream:match_events scope to open a subscription; the key is passed the same way as any other API key request, not as a separate credential.

Anti-cheat scopes

The anti-cheat integration surface is the one part of the public API that accepts writes, for third-party integrators reporting session and detection data. It uses its own dedicated scopes:

ScopeDescription
anticheat:session.writeStart and end anti-cheat monitoring sessions
anticheat:detections.readList and retrieve anti-cheat detection results
anticheat:evidence.writeUpload evidence for an anti-cheat session

Assigning scopes to an API key

Tournament Suite does not issue OAuth 2 access tokens for the public API — scopes apply to API keys, not to bearer tokens. Choose the scopes a key should carry when you generate it, from your project's Developer section of the organizer dashboard. A key's scopes can't be edited after creation, so rotate the key if you need to add or remove one later.

Every request authenticates with the key in the x-api-key header:

curl https://api.tournamentsuite.com/api/v1/data/tournaments \
  -H "x-api-key: YOUR_API_KEY"

If a key is missing a scope an endpoint requires, the API returns 403 Forbidden with a message identifying the missing scope. See Authentication and Authorization for the full request and error contract.

Looking for Tournament Suite's OAuth 2 support for organization single sign-on instead? See OAuth 2 — it's a separate system from API key scopes.

Scope minimization

It is good practice to grant only the scopes an API key actually uses. For example, a reporting dashboard that only reads data should use read:tournaments read:matches read:player_stats — not scopes it doesn't need.

If a key is ever compromised, a narrow scope set limits what an attacker can do with it.

Was this helpful?

Authorization

How Tournament Suite controls access to resources through projects, scopes, and API key restrictions.

OAuth 2

How Tournament Suite uses OAuth 2 for organization single sign-on, and why the Data API and other developer integrations authenticate with an API key instead.

On this page

Tournament scopesMatch scopesPlayer and team scopesReal-time scopesAnti-cheat scopesAssigning scopes to an API keyScope minimization