Toornament Tournaments API
Create, manage, and retrieve tournament information.
Create, manage, and retrieve tournament information.
openapi: 3.1.0
info:
title: Toornament Disciplines Tournaments API
description: The Toornament API v2 provides comprehensive esports tournament management capabilities. It includes the Organizer API for full tournament CRUD operations, the Viewer API for public read-only tournament data access, and the Participant API for registration and check-in management. Authentication uses API key plus OAuth2 access tokens with scoped permissions.
version: '2.0'
contact:
name: Toornament Developer
url: https://developer.toornament.com
termsOfService: https://www.toornament.com/en_US/legal
servers:
- url: https://api.toornament.com/organizer/v2
description: Organizer API — full tournament management (authenticated)
- url: https://api.toornament.com/viewer/v2
description: Viewer API — public read-only tournament access
security:
- apiKey: []
- oauth2: []
tags:
- name: Tournaments
description: Create, manage, and retrieve tournament information.
paths:
/tournaments:
get:
operationId: listTournaments
summary: List Tournaments
description: Retrieve a paginated list of tournaments organized by the authenticated user. Supports filtering by discipline, status, dates, country, platform, and more.
tags:
- Tournaments
parameters:
- name: X-Api-Key
in: header
required: true
schema:
type: string
description: Toornament API key.
- name: Authorization
in: header
required: true
schema:
type: string
description: OAuth2 access token with organizer:view scope.
- name: Range
in: header
required: false
schema:
type: string
description: Pagination range (e.g., tournaments=0-49, max 50 items).
- name: disciplines
in: query
required: false
schema:
type: string
description: Comma-separated list of discipline keys to filter by.
- name: statuses
in: query
required: false
schema:
type: string
description: Comma-separated statuses (pending, running, completed).
- name: scheduled_before
in: query
required: false
schema:
type: string
format: date-time
description: Filter tournaments scheduled before this date.
- name: scheduled_after
in: query
required: false
schema:
type: string
format: date-time
description: Filter tournaments scheduled after this date.
- name: countries
in: query
required: false
schema:
type: string
description: Comma-separated ISO country codes to filter by.
- name: platforms
in: query
required: false
schema:
type: string
description: Comma-separated platform keys (pc, playstation, xbox, etc.).
- name: is_online
in: query
required: false
schema:
type: integer
enum:
- 0
- 1
description: Filter by online (1) or offline (0) tournaments.
- name: sort
in: query
required: false
schema:
type: string
description: Sort field (e.g., created_at, scheduled_date_start).
responses:
'206':
description: Partial content — paginated list of tournaments.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tournament'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
post:
operationId: createTournament
summary: Create Tournament
description: Create a new esports tournament. Requires organizer:admin OAuth2 scope.
tags:
- Tournaments
parameters:
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TournamentCreate'
responses:
'201':
description: Tournament created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Tournament'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/tournaments/{id}:
get:
operationId: getTournament
summary: Get Tournament
description: Retrieve the full details of a specific tournament by its ID.
tags:
- Tournaments
parameters:
- name: id
in: path
required: true
schema:
type: string
description: The unique tournament identifier.
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
responses:
'200':
description: Tournament details.
content:
application/json:
schema:
$ref: '#/components/schemas/Tournament'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateTournament
summary: Update Tournament
description: Partially update tournament fields. Requires organizer:admin OAuth2 scope.
tags:
- Tournaments
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TournamentUpdate'
responses:
'200':
description: Tournament updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Tournament'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteTournament
summary: Delete Tournament
description: Permanently remove a tournament. Requires organizer:admin OAuth2 scope.
tags:
- Tournaments
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
responses:
'204':
description: Tournament deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Forbidden:
description: Insufficient OAuth2 scope for this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: Request validation failed — missing or invalid fields.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication failed — missing or invalid API key/token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
TournamentCreate:
type: object
required:
- discipline
- name
- participant_type
- size
- timezone
- platforms
properties:
discipline:
type: string
name:
type: string
full_name:
type: string
participant_type:
type: string
enum:
- team
- player
size:
type: integer
timezone:
type: string
platforms:
type: array
items:
type: string
online:
type: boolean
country:
type: string
scheduled_date_start:
type: string
format: date
scheduled_date_end:
type: string
format: date
registration_enabled:
type: boolean
public:
type: boolean
description:
type: string
rules:
type: string
prize:
type: string
contact:
type: string
discord:
type: string
website:
type: string
Tournament:
type: object
properties:
id:
type: string
description: Unique tournament identifier.
discipline:
type: string
description: Esports discipline key (e.g., league-of-legends, valorant).
name:
type: string
description: Short tournament name.
full_name:
type: string
description: Full tournament name.
status:
type: string
enum:
- pending
- running
- completed
description: Current tournament status.
participant_type:
type: string
enum:
- team
- player
description: Whether tournament is for teams or individual players.
size:
type: integer
description: Maximum number of participants.
online:
type: boolean
description: Whether the tournament is played online.
country:
type: string
description: ISO country code for the tournament location.
timezone:
type: string
description: Tournament timezone (IANA format).
scheduled_date_start:
type: string
format: date
description: Tournament start date.
scheduled_date_end:
type: string
format: date
description: Tournament end date.
registration_enabled:
type: boolean
description: Whether registration is currently open.
registration_opening_datetime:
type: string
format: date-time
registration_closing_datetime:
type: string
format: date-time
platforms:
type: array
items:
type: string
description: Gaming platforms (pc, playstation, xbox, switch, mobile).
website:
type: string
format: uri
description: Tournament website URL.
discord:
type: string
description: Discord server invite or ID.
description:
type: string
description: Tournament description.
rules:
type: string
description: Tournament rules text.
prize:
type: string
description: Prize pool description.
contact:
type: string
description: Contact email for the tournament.
public:
type: boolean
description: Whether the tournament is publicly visible.
archived:
type: boolean
description: Whether the tournament has been archived.
created_at:
type: string
format: date-time
Error:
type: object
properties:
message:
type: string
description: Error message.
code:
type: string
description: Error code.
TournamentUpdate:
type: object
properties:
name:
type: string
full_name:
type: string
status:
type: string
size:
type: integer
scheduled_date_start:
type: string
format: date
scheduled_date_end:
type: string
format: date
registration_enabled:
type: boolean
public:
type: boolean
archived:
type: boolean
description:
type: string
rules:
type: string
prize:
type: string
contact:
type: string
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-Api-Key
description: API key obtained from the Toornament developer dashboard.
oauth2:
type: oauth2
description: OAuth2 access token with scoped permissions (organizer:view, organizer:admin).
flows:
authorizationCode:
authorizationUrl: https://app.toornament.com/oauth/authorize
tokenUrl: https://api.toornament.com/oauth/v2/token
scopes:
organizer:view: Read access to organizer tournament data.
organizer:admin: Full administrative access to tournament management.
participant:manage: Manage participant registrations.