TS
Tournament Suite
TS
Tournament Suite
Developer Documentation
ReferenceQuick StartEndpoint Catalog
Reference

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

Reference

Quick-start guide and full endpoint catalog for the TournamentSuite REST API.

Endpoint Catalog

Quick reference for all public TournamentSuite REST API endpoints, organized by resource.

On this page

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