---
title: "One match with its score, rounds and active claim"
method: GET
path: "/v1/admin/tournaments/{tournament_id}/matches/{id}"
tags: ["Admin Tournament Matches"]
---

# One match with its score, rounds and active claim

`GET /v1/admin/tournaments/{tournament_id}/matches/{id}`

## Request

- Base URL: `https://api.hify.club`
- URL: `https://api.hify.club/v1/admin/tournaments/{tournament_id}/matches/{id}`
- Auth: API key in header `X-User-Token`

Admin only. The listing row plus the score summary and detail, every round, and the scorer currently holding the match. Scoped to the tournament in the path: a match of another tournament is a 404.

## Response `200`

Match

- AdminTournamentMatchDetail: The row plus how the match stands. The score is resolved per match, which is why it is not on the listing.
  - `id` integer
  - `external_id` string, nullable: The partner's match id when the match came from a feed.
  - `game_id` integer
  - `sequence_number` integer, nullable
  - `round_number` integer, nullable
  - `stage` 'league' | 'quarterfinal' | 'semifinal' | 'knockout' | 'final' | 'third_place'
  - `category` string, nullable: Display label, e.g. "Open Mixed Doubles".
  - `status` 'pending' | 'in_progress' | 'completed'
  - `winner_side` 'side_a' | 'side_b' | 'draw', nullable
  - `completion_reason` string, nullable
  - `scoring_format_id` integer, nullable
  - `court_number` integer, nullable: The arena's in_facility_id.
  - `started_at` string, date-time, nullable: scored_at of the match's first non-voided score entry, the same value the scorer app's Match.started_at carries. Null until the match has been scored. The game's start_time is the slot; this is the match.
  - `ended_at` string, date-time, nullable: scored_at of the match's last non-voided score entry. Null until the match has been scored.
  - `sides` object: Both keys are always present.
    - `side_a` AdminMatchParticipant[]
      - `id` integer
      - `participant_type` 'User' | 'AnonymousTournamentParticipant'
      - `participant_id` string, uuid
      - `name` string, nullable: The name the participant renders under.
    - `side_b` AdminMatchParticipant[]
      - `id` integer
      - `participant_type` 'User' | 'AnonymousTournamentParticipant'
      - `participant_id` string, uuid
      - `name` string, nullable: The name the participant renders under.
  - `team_names` object: Each side's team name; null for a side without a team.
    - `side_a` string, nullable
    - `side_b` string, nullable
  - `game` object: The slot the match is bound to and the orders placed against it.
    - `id` integer
    - `start_time` string, date-time
    - `end_time` string, date-time
    - `arena` object, nullable
      - `id` integer
      - `name` string
      - `in_facility_id` integer
    - `order_requests` AdminOrderRequest[]
      - `id` integer
      - `type` string: HighlightRequest, ReplayRequest or ShortRequest.
      - `status` 'open' | 'in_progress' | 'in_review' | 'done' | 'archived'
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `score_summary` string, nullable: Sets won, e.g. "2–1"; games for a race format.
  - `score_detail` string, nullable: Per-set games, e.g. "6-4, 3-6, 7-5".
  - `active_claim` object, nullable: The scorer holding the match right now, if any.
    - `id` integer
    - `user_id` string, uuid
    - `device_id` string, nullable
  - `match_rounds` AdminMatchRound[]
    - `id` integer
    - `match_id` integer
    - `round_type` string
    - `sequence_number` integer
    - `parent_round_id` integer, nullable
    - `status` string
    - `winner_side` string, nullable
    - `score_a` integer
    - `score_b` integer
    - `closed_at` string, date-time, nullable
    - `closed_by` string, nullable

## Other responses

- `401`: Unauthorized
- `403`: Forbidden — admin access required
- `404`: Tournament not found, or the match is not in it

---

[API](https://skmtc.dev/hify/apis/hify-apis.md) - [All operations](https://skmtc.dev/hify/apis/hify-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/hify/apis/hify-apis/revisions/b5920403538d?raw)
