TS
Tournament Suite
TS
Tournament Suite
Developer Documentation

Quick Start

Get started with the TournamentSuite API in 5 minutes.

Get up and running with the TournamentSuite API in 5 minutes.

Prerequisites

  • A TournamentSuite organizer account (Sign up)
  • An API key generated from your project's Settings → Developer → API Keys

1. Make your first request

List tournaments in your project:

curl https://api.tournamentsuite.com/api/v1/tournaments \
  -H "X-API-Key: YOUR_API_KEY"

Expected response:

{
  "success": true,
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Summer Open 2026",
      "status": "PUBLISHED",
      "startDate": "2026-07-01T00:00:00Z",
      "maxParticipants": 64,
      "currentParticipants": 48
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 1,
    "totalPages": 1
  }
}

2. Create a tournament

curl -X POST https://api.tournamentsuite.com/api/v1/tournaments \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My First Tournament",
    "disciplineId": "cs2",
    "maxParticipants": 16,
    "teamSize": 5,
    "stages": [
      { "format": "SINGLE_ELIMINATION", "name": "Playoffs" }
    ],
    "startDate": "2026-08-01T00:00:00Z"
  }'

3. Retrieve the bracket

Once a tournament has started, fetch the full bracket:

curl https://api.tournamentsuite.com/api/v1/tournaments/TOURNAMENT_ID/bracket \
  -H "X-API-Key: YOUR_API_KEY"

4. Set up a webhook

Register an endpoint to receive real-time event notifications:

curl -X POST https://api.tournamentsuite.com/api/v1/developer/webhooks \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhooks/tournamentsuite",
    "events": ["tournament.started", "match.completed"]
  }'

See Webhooks for the full setup guide including signature verification.

Using TypeScript

const BASE_URL = 'https://api.tournamentsuite.com/api/v1';
const API_KEY = process.env.TOURNAMENTSUITE_API_KEY!;

async function getTournaments() {
  const response = await fetch(`${BASE_URL}/tournaments`, {
    headers: { 'X-API-Key': API_KEY },
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.error.message);
  }

  return response.json();
}

Using Python

import requests
import os

BASE_URL = 'https://api.tournamentsuite.com/api/v1'
headers = {'X-API-Key': os.environ['TOURNAMENTSUITE_API_KEY']}

response = requests.get(f'{BASE_URL}/tournaments', headers=headers)
response.raise_for_status()
data = response.json()
print(data['data'])

Common errors

StatusCauseFix
401 UnauthorizedMissing or invalid API keyCheck X-API-Key header
403 ForbiddenInsufficient scopeAdd required scope to API key
404 Not FoundWrong IDVerify the resource exists in your project
429 Too Many RequestsRate limit hitWait and retry; see X-RateLimit-Reset header

Next steps

  • Authentication — API keys vs. OAuth 2
  • Core Concepts — understand the data model
  • Endpoint Catalog — full list of available endpoints
  • Webhooks — react to events in real time

On this page

Prerequisites1. Make your first request2. Create a tournament3. Retrieve the bracket4. Set up a webhookUsing TypeScriptUsing PythonCommon errorsNext steps