Toornament Tournaments API
Create, manage, and retrieve tournament information.
Create, manage, and retrieve tournament information.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/toornament-tournaments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.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:
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
Error:
type: object
properties:
message:
type: string
description: Error message.
code:
type: string
description: Error code.
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
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
responses:
NotFound:
description: The requested resource was not found.
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'
Forbidden:
description: Insufficient OAuth2 scope for this operation.
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'
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.