For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tournaments

Tournament organization, brackets, and competitive match management.

Get available tournament formats

get

Retrieves all available tournaments formats for the active provider

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Tournament formats retrieved successfully

application/json
providerstring · enumRequiredExample: SWISHPossible values:
formatsobject[]Required

Available tournament formats for the provider

get/tournaments/formats
GET /apis/v2/tournaments/formats HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Tournament formats retrieved successfully

{
  "provider": "SWISH",
  "formats": [
    {}
  ]
}

Generate tournament webview JWT token

post

Returns a signed JWT token for accessing tournament webview with appropriate scope based on user roles

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

JWT token generated successfully

application/json
tokenstringRequired

JWT token for tournament webview access

Example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
expiresAtDatestringRequired

Token expiration timestamp (ISO 8601)

Example: 2026-01-11T16:00:00.000Z
post/tournaments/webview-token
POST /apis/v2/tournaments/webview-token HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

JWT token generated successfully

{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiresAtDate": "2026-01-11T16:00:00.000Z"
}

Manually trigger a tournament division update

post

Force the manual update of a tournament division

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
tournamentDivisionIdstringRequired
Responses
200

Game updated successfully

application/json
idstringRead-onlyRequired

Tournament Division ID

Example: 7229d7d5-5581-4d86-975f-5b7efc9b00e9
providerstring · enumRequiredExample: SWISHPossible values:
statusstring · enumRead-onlyOptional

Current status of the tournament

Example: DRAFTPossible values:
createdAtstring · date-timeRead-onlyOptional

When the tournament was created

Example: 2025-07-09T17:32:26.800Z
lastSyncedAtstring · date-timeOptional

Last time the tournament was synced with the provider

Example: 2025-07-09T17:32:26.800Z
visibilitystring · enumOptional

Visibility status: HIDDEN (admin only), VISIBLE (shown to users), or null

Example: VISIBLEPossible values:
_linksobjectRead-onlyRequired
post/tournaments/sync/{tournamentDivisionId}
POST /apis/v2/tournaments/sync/{tournamentDivisionId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Game updated successfully

{
  "id": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
  "tournament": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
  "provider": "SWISH",
  "swish": {
    "eventFormat": "rotating_partners_round_robin",
    "gameId": "game123",
    "editPlayersPath": "rotating-partners-round-robin"
  },
  "podplay": {
    "eventFormat": "round_robin",
    "gameId": "game123",
    "url": "https://tournaments.podplay.app/admin/tournaments/game123"
  },
  "status": "DRAFT",
  "createdAt": "2025-07-09T17:32:26.800Z",
  "event": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
  "lastSyncedAt": "2025-07-09T17:32:26.800Z",
  "visibility": "VISIBLE",
  "_links": {}
}

Last updated

Was this helpful?