---
title: "Tournament"
method: GET
path: "/{region}/tournaments/{id}"
tags: ["Tournaments"]
---

# Tournament

`GET /{region}/tournaments/{id}`

## Request

- Base URL: `https://unicum.gg/api`
- URL: `https://unicum.gg/api/{region}/tournaments/{id}`
- Auth: none required

One tournament in full: its rules and prize breakdown, its map pool with each map's per-side spawns, every registered team with its roster of account ids, and the whole bracket with per-match scores, maps and placements. 404 when the id is unknown on this region.

## Path parameters

- `region` 'eu' | 'na' | 'asia', required: Game server region.
- `id` string, required: Tournament id.

## Response `200`

Successful response

- TournamentDetailResponse
  - `id` number, required
  - `title` string, required
  - `description` string, required: Raw HTML, as the organiser wrote it.
  - `status` 'upcoming' | 'registration_started' | 'registration_finished' | 'running' | 'finished' | 'complete', required: Where a tournament is in its lifecycle.
  - `gameModes` TournamentGameModeField[], required
  - `tierFrom` number, nullable, required
  - `tierTo` number, nullable, required
  - `minPlayersInTeam` number, required
  - `maxPlayersInTeam` number, required
  - `confirmedTeams` number, required
  - `teamsLimit` number, nullable, required: The field's cap, when the format sets one. `confirmedTeams` says how many entered, never how many it takes.
  - `schedule` object[], required: The sessions the tournament is played in. The title is the game SERVER ("EU 2"), which is what a captain needs on the night.
    - `title` string, required
    - `startAt` string, required
  - `startAt` string, date-time, required
  - `endAt` string, date-time, required
  - `registrationFrom` string, date-time, nullable, required
  - `registrationTill` string, date-time, nullable, required
  - `prize` string, nullable, required
  - `prizeTiers` TournamentPrizeTier[], required
    - `title` string, required
    - `order` number, required
    - `prizes` string[], required
  - `rules` TournamentRulesSection[], required
    - `title` string, required
    - `description` string, required: Raw HTML, as the organiser wrote it.
    - `order` number, required
  - `mapPool` TournamentMapRef[], required
    - `arenaId` string, required
    - `slug` string, nullable, required: The map's page slug, or null for an arena the map catalogue does not know (a retired or event-only space).
    - `name` string, nullable, required
    - `minimapUrl` string, nullable, required
    - `spawns` TeamMarkers, required
      - `team1` MapMarker[], required
        - `left` number, required
        - `top` number, required
      - `team2` MapMarker[], required
        - `left` number, required
        - `top` number, required
    - `bases` TeamMarkers, required
      - `team1` MapMarker[], required
        - `left` number, required
        - `top` number, required
      - `team2` MapMarker[], required
        - `left` number, required
        - `top` number, required
    - `controlPoint` MapMarker, required
      - `left` number, required
      - `top` number, required
    - `pointsOfInterest` object[], required: Onslaught's posts, typed by the game's own POI constants. Empty on every random-battle mode.
      - `type` number, required
      - `marker` MapMarker, required
        - `left` number, required
        - `top` number, required
    - `widthMeters` number, required
    - `heightMeters` number, required: The play area, which a point's capture radius is drawn against.
  - `totalLevelFrom` number, nullable, required: Total tier points a team may field at once, when the format caps it.
  - `totalLevelTo` number, nullable, required
  - `logoUrl` string, nullable, required
  - `teams` TournamentTeam[], required
    - `id` number, required
    - `title` string, required
    - `status` 'forming' | 'confirmed' | 'disqualified', required: Where a team stands in the registration flow.
    - `ownerAccountId` number, nullable, required
    - `playersCount` number, required
    - `players` TournamentRosterPlayer[], required
      - `accountId` number, required
      - `nickname` string, required: The name the account carried when the roster was read, not its current one: players rename, and a bracket from 2019 reads as it was played.
      - `role` string, required: "owner" for the captain, empty otherwise.
    - `ratedPlayers` number, required: How many of the roster we hold stats for, which is the denominator of the two averages below. A tournament roster can name accounts our coverage has never reached.
    - `avgWn8` number, nullable, required: The roster's mean WN8 over its rated members, unweighted by battles so one veteran does not speak for the team. Null when none of them has been sampled.
    - `avgWnx` number, nullable, required
    - `avgWinrate` number, nullable, required: The roster's mean win rate over its rated members, as a fraction (0.54, not 54).
    - `rated30dPlayers` number, required: How many of the roster played in the last 30 days, the denominator of the two recent averages below. It differs from ratedPlayers: a rostered account that has not played the window has no recent form to report.
    - `avgWn830d` number, nullable, required: The roster's mean WN8 over the trailing 30 days, counting only members who played in it. Null when none of them did.
    - `avgWnx30d` number, nullable, required: The roster's mean WNX over the trailing 30 days, counting only members who played in it. Null when none of them did.
    - `clan` TeamClan, required: The clan behind a tournament team.
      - `clanId` number, required
      - `clanTag` string, required: The clan's CURRENT tag, so the badge links somewhere that resolves. A clan we no longer track keeps the tag its roster carried at the time.
      - `clanName` string, nullable, required
      - `clanColor` string, nullable, required
      - `clanEmblem` string, nullable, required
      - `members` number, required: How many of the roster were in that clan on the day, so a caller can judge how firm the attribution is. A team qualifies at a quarter of the format's team size.
  - `stages` TournamentStage[], required
    - `id` number, required
    - `title` string, required
    - `bracketType` 'SE' | 'DE' | 'RR', required: How a stage's teams are paired up.
    - `winnersPerGroup` number, required
    - `startAt` string, date-time, nullable, required
    - `groups` TournamentGroup[], required
      - `id` number, required
      - `order` number, required
      - `state` string, required
      - `teamsCount` number, required
      - `matches` TournamentMatch[], required
        - `uuid` string, required
        - `stageId` number, required
        - `groupId` number, required
        - `state` string, required
        - `round` number, required: In a knockout, the distance from the end: round 1 IS the final, 2 the semi-finals, and -1 the third-place match. In a round robin, the plain matchday.
        - `position` number, required
        - `team1Id` number, nullable, required: Null while the bracket has drawn the slot but not filled it.
        - `team2Id` number, nullable, required
        - `winnerTeamId` number, nullable, required
        - `winsTeam1` number, nullable, required: Battles won. Null until the match is settled, which is not 0-0.
        - `winsTeam2` number, nullable, required
        - `maps` string, nullable, required: The maps played, as the organiser wrote them ("Cliff, Sand River").
        - `startAt` string, date-time, nullable, required
        - `nextMatchForWinner` string, nullable, required: The uuid of the match the winner plays next, threading the tree.
      - `standings` TournamentStanding[], required
        - `teamId` number, required
        - `position` number, nullable, required: Placement within this bracket, not the tournament, and not dense (teams out in the same round share a rank). Null across a double-elimination bracket, which records only the seeding.
        - `seed` number, nullable, required
        - `wins` number, required: Only a round robin counts these. A knockout table carries the placement and leaves them at zero, which is absence, not a 0-0 record.
        - `losses` number, required
        - `draws` number, required
        - `points` number, nullable, required
  - `mirroredAt` string, date-time, required: When this copy was last read from Wargaming. It is the bracket's own stamp, from the pass that rewrites the tree, the rosters and the standings, and falls back to the catalogue sweep in the window where a status change has cleared it pending a re-read. Wargaming publishes no such date, so it describes our mirror rather than the tournament.

---

[API](https://skmtc.dev/unicum/apis/unicum-gg-api.md) · [All operations](https://skmtc.dev/unicum/apis/unicum-gg-api/llms.txt) · [OpenAPI document](https://skmtc.dev/unicum/apis/unicum-gg-api/revisions/7a7d79a26001?raw)
