---
title: "Get a single match's details"
method: GET
path: "/game/matches/{matchId}"
tags: ["Game: Matches"]
---

# Get a single match's details

`GET /game/matches/{matchId}`

Returns detailed info for one match, validated to belong to the API key owner's approved game. Requires the game.lifecycle:read permission.

## Path parameters

- `matchId` string, required — Match ID.

## Response `200`

The requested match plus a response timestamp.

- GameMatchDetailResponse — Envelope for GET /game/matches/{matchId}: the match plus a response timestamp.
  - `match` GameMatchDetail, required — Detailed match payload returned inside the game-developer match-detail response.
    - `id` string, required
    - `gameId` string, required — Game ID the match belongs to.
    - `gameMode` string, required — Game mode identifier (from the match's gameModeId).
    - `status` 'PENDING' | 'ACCEPTED' | 'READY' | 'IN_PROGRESS' | 'COMPLETED' | 'CANCELLED' | 'DISPUTED' | 'FORFEITED', required — Lifecycle status of a match.
    - `bestOf` integer, required — Number of maps in the series (1, 3, 5, or 7).
    - `creatorTeam` GameDetailTeam, required — A team as embedded in the game-developer match-detail response ({ _id, name, tag }).
      - `_id` string, required — Team ID.
      - `name` string, required — Team name.
      - `tag` string, required — Team tag (short identifier).
    - `acceptedTeam` GameDetailTeam, required — A team as embedded in the game-developer match-detail response ({ _id, name, tag }).
      - `_id` string, required — Team ID.
      - `name` string, required — Team name.
      - `tag` string, required — Team tag (short identifier).
    - `creatorTeamScore` integer, nullable, required
    - `acceptedTeamScore` integer, nullable, required
    - `winnerTeamId` string, nullable — Winning team ID once the match completes.
    - `loserTeamId` string, nullable — Losing team ID once the match completes.
    - `scheduledAt` string, nullable, required — Scheduled start time (ISO 8601).
    - `startedAt` string, nullable, required — Actual start time (ISO 8601).
    - `completedAt` string, nullable, required — Completion time (ISO 8601).
    - `createdAt` string, nullable, required — Creation time (ISO 8601).
    - `leagueId` string, nullable — League this match belongs to, if any (SP-7 league wave).
    - `leagueSeasonId` string, nullable — League season this match belongs to, if any.
  - `timestamp` string, required — Server response time (ISO 8601).

## Other responses

- `401` — Missing or invalid API key.
- `403` — API key lacks the required permission.
- `404` — Resource not found.

---

[API](https://skmtc.net/teambattles/apis/teambattles-api.md) · [All operations](https://skmtc.net/teambattles/apis/teambattles-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/teambattles/teambattles-api/versions/2ffe8fb53b7d/schema)
