---
title: "Get a game"
method: GET
path: "/dota2/games/{dota2_game_id}"
tags: ["Dota2 games"]
---

# Get a game

`GET /dota2/games/{dota2_game_id}`

Get a single Dota 2 game by ID

## Path parameters

- `dota2_game_id` integer, required

## Response `200`

A Dota2 game

- Dota2Game
  - `begin_at` string, date-time, nullable, required — The game begin time, UTC. `null` when the game status is `not_started`
  - `complete` boolean, required — Whether When `true`, the game statistics are complete and will not be updated again
  - `detailed_stats` boolean, required — Whether historical data is available for the game
  - `end_at` string, date-time, nullable, required — The game end time, UTC. `null` when the game status is not `finished`
  - `finished` boolean, required — Whether the game is finished
  - `first_blood` integer, nullable, required
  - `forfeit` boolean, required — Whether the game has been forfeited
  - `id` integer, required
  - `length` integer, nullable, required — Duration of the game in seconds. `null` when the game status is not `finished`
  - `match` Dota2GameMatch, required
    - `begin_at` string, date-time, nullable, required
    - `detailed_stats` boolean, required — Whether the match offers full stats
    - `draw` boolean, required — Whether result of the match is a draw
    - `end_at` string, date-time, nullable, required
    - `forfeit` boolean, required — Whether match was forfeited
    - `game_advantage` integer, nullable, required — ID of the opponent with a game advantage
    - `games` Game[], required
      - `begin_at` string, date-time, nullable, required — The game begin time, UTC. `null` when the game status is `not_started`
      - `complete` boolean, required — Whether When `true`, the game statistics are complete and will not be updated again
      - `detailed_stats` boolean, required — Whether historical data is available for the game
      - `end_at` string, date-time, nullable, required — The game end time, UTC. `null` when the game status is not `finished`
      - `finished` boolean, required — Whether the game is finished
      - `forfeit` boolean, required — Whether the game has been forfeited
      - `id` union, required — ID of the game. IDs are video game-specific, ie. a Valorant game and an Overwatch game can have the same game ID.
        - integer — LoL game ID
        - integer — Counter-Strike game ID
        - integer
        - integer
        - integer
        - integer
      - `length` integer, nullable, required — Duration of the game in seconds. `null` when the game status is not `finished`
      - `match_id` integer, required
      - `position` integer, required — Game position in the match. Starts at 1
      - `status` 'finished' | 'not_played' | 'not_started' | 'running', required — The game status
      - `winner` GameWinner, required
        - `id` union, required
          - integer, nullable — ID of the player
          - integer, nullable — The ID of the team.
        - `type` 'Player' | 'Team', nullable, required
      - `winner_type` 'Player' | 'Team', nullable, required
    - `id` integer, required
    - `league` BaseLeague, required
      - `id` integer, required
      - `image_url` string, uri, nullable, required
      - `modified_at` string, date-time, required
      - `name` string, required
      - `slug` string, required
      - `url` string, uri, nullable, required
    - `league_id` integer, required
    - `live` MatchLive, required
      - `opens_at` string, date-time, nullable, required
      - `supported` boolean, required — Whether live is supported
      - `url` string, uri, nullable, required
    - `low_latency_feed` boolean — Whether Whether the match is available via the Low Latency Feed. **Important:** this field is only present in the response for subscribers of a Low Latency Feed plan.
    - `match_type` 'all_games_played' | 'best_of' | 'custom' | 'first_to' | 'ow_best_of' | 'red_bull_home_ground', required
    - `modified_at` string, date-time, required
    - `name` string, required
    - `number_of_games` integer, required — Number of games
    - `opponents` Opponent[], required
      - `opponent` union, required
        - BasePlayer
          - `active` boolean, required — Whether player is active
          - `age` number, nullable, required — Age of the player, `null` if unknown. When `birthday` is `null`, `age` is an approxiamation. Read more about [players' age](/docs/about-players-age) **Note**: This field is only present for users running the Historical plan or above.
          - `birthday` string, nullable, required — Birth day of the player, `YYYY-MM-DD` format. `null` if unknown. **Note**: This field is only present for users running the Historical plan or above.
          - `first_name` string, nullable, required — First name of the player. `null` if unknown
          - `id` integer, required — ID of the player
          - `image_url` string, uri, nullable, required — URL to the photo of the player. `null` if not available.
          - `last_name` string, nullable, required — Last name of the player. `null` if unknown
          - `modified_at` string, date-time, required
          - `name` string, required — Professional name of the player
          - `nationality` string, nullable, required — Country code matching the nationality of the player according to the ISO 3166-1 standard (Alpha-2 code). In addition to the standard, the `XK` code is used for Kosovo. `null` if unknown
          - `role` string, nullable, required — Role/position of the player. Field value varies depending on the video game.`null` if unknown. **Note**: role is only available for DotA 2, League of Legends, and Overwatch players. `null` for other video games.
          - `slug` string, nullable, required — Unique, human-readable identifier for the player. `id` and `slug` can be used interchangeably throughout the API.
        - BaseTeam
          - `acronym` string, nullable, required
          - `dark_mode_image_url` string, uri, nullable, required — URL of the team logo
          - `id` integer, required — The ID of the team.
          - `image_url` string, uri, nullable, required — URL of the team logo
          - `location` string, nullable, required — The team's organization location
          - `modified_at` string, date-time, required
          - `name` string, required — The name of the team.
          - `slug` string, nullable, required
      - `type` 'Player' | 'Team', required
    - `original_scheduled_at` string, date-time, nullable, required
    - `rescheduled` boolean, nullable, required — Whether match has been rescheduled
    - `results` MatchResult[], required
      - union
        - MatchTeamResult
          - `score` integer, required
          - `team_id` integer, required — The ID of the team.
        - MatchPlayerResult
          - `player_id` integer, required — ID of the player
          - `score` integer, required
    - `scheduled_at` string, date-time, nullable, required
    - `serie` BaseSerie, required
      - `begin_at` string, date-time, nullable, required
      - `end_at` string, date-time, nullable, required
      - `full_name` string, required
      - `id` integer, required
      - `league_id` integer, required
      - `modified_at` string, date-time, required
      - `name` string, nullable, required
      - `season` string, nullable, required
      - `slug` string, required
      - `winner_id` union, required
        - integer, nullable — ID of the player
        - integer, nullable — The ID of the team.
      - `winner_type` 'Player' | 'Team', nullable, required
      - `year` integer, nullable, required
    - `serie_id` integer, required
    - `slug` string, nullable, required
    - `status` 'canceled' | 'finished' | 'not_started' | 'postponed' | 'running', required
    - `streams_list` Stream[], required
      - `embed_url` string, uri, nullable, required — URL to embed in an iframe.
      - `language` 'aa' | 'ab' | 'ae' | 'af' | 'ak' | 'am' | 'an' | 'ar' | 'as' | 'av' | 'ay' | 'az' | 'ba' | 'be' | 'bg' | 'bh' | 'bi' | 'bm' | 'bn' | 'bo' | 'br' | 'bs' | 'ca' | 'ce' | 'ch' | 'co' | 'cr' | 'cs' | 'cu' | 'cv' | 'cy' | 'da' | 'de' | 'dv' | 'dz' | 'ee' | 'el' | 'en' | 'eo' | 'es' | 'et' | 'eu' | 'fa' | 'ff' | 'fi' | 'fj' | 'fo' | 'fr' | 'fy' | 'ga' | 'gd' | 'gl' | 'gn' | 'gu' | 'gv' | 'ha' | 'he' | 'hi' | 'ho' | 'hr' | 'ht' | 'hu' | 'hy' | 'hz' | 'ia' | 'id' | 'ie' | 'ig' | 'ii' | 'ik' | 'io' | 'is' | 'it' | 'iu' | 'ja' | 'jv' | 'ka' | 'kg' | 'ki' | 'kj' | 'kk' | 'kl' | 'km' | 'kn' | 'ko' | 'kr' | 'ks' | 'ku' | 'kv' | 'kw' | 'ky' | 'la' | 'lb' | 'lg' | 'li' | 'ln' | 'lo' | 'lt' | 'lu' | 'lv' | 'mg' | 'mh' | 'mi' | 'mk' | 'ml' | 'mn' | 'mr' | 'ms' | 'mt' | 'my' | 'na' | 'nb' | 'nd' | 'ne' | 'ng' | 'nl' | 'nn' | 'no' | 'nr' | 'nv' | 'ny' | 'oc' | 'oj' | 'om' | 'or' | 'os' | 'pa' | 'pi' | 'pl' | 'ps' | 'pt' | 'qu' | 'rm' | 'rn' | 'ro' | 'ru' | 'rw' | 'sa' | 'sc' | 'sd' | 'se' | 'sg' | 'si' | 'sk' | 'sl' | 'sm' | 'sn' | 'so' | 'sq' | 'sr' | 'ss' | 'st' | 'su' | 'sv' | 'sw' | 'ta' | 'te' | 'tg' | 'th' | 'ti' | 'tk' | 'tl' | 'tn' | 'to' | 'tr' | 'ts' | 'tt' | 'tw' | 'ty' | 'ug' | 'uk' | 'ur' | 'uz' | 've' | 'vi' | 'vo' | 'wa' | 'wo' | 'xh' | 'yi' | 'yo' | 'za' | 'zh' | 'zu', required — Language alpha-2 code according to ISO 649-1 standard.
      - `main` boolean, required — Whether it is the main stream. Main stream is always official.
      - `official` boolean, required — Whether it is an official broadcast.
      - `raw_url` string, uri, required — URL to the stream on host website.
    - `tournament` BaseTournament, required
      - `begin_at` string, date-time, nullable, required
      - `country` string, nullable, required — Country code matching the location of the tournament according to the ISO 3166-1 standard (Alpha-2 code). In addition to the standard, the XK code is used for Kosovo. null if unknown
      - `detailed_stats` boolean, required — Whether the tournament is expected to have detailed statistics available
      - `end_at` string, date-time, nullable, required
      - `has_bracket` boolean, required — Whether the tournament has a bracket
      - `id` integer, required
      - `league_id` integer, required
      - `live_supported` boolean, required — Whether live is supported
      - `modified_at` string, date-time, required
      - `name` string, required
      - `prizepool` string, nullable, required
      - `region` 'AF' | 'ASIA' | 'EEU' | 'ME' | 'NA' | 'OCE' | 'SA' | 'WEU', nullable, required — Region acronym for the location of the tournament.
      - `serie_id` integer, required
      - `slug` string, required
      - `tier` 'a' | 'b' | 'c' | 'd' | 's' | 'unranked', nullable, required — The tier of the tournament, ranging from 'S' to 'Unranked'. Ranking 'S' > 'A' > 'B' > 'C' > 'D' > 'Unranked'
      - `type` 'offline' | 'online' | 'online/offline', nullable, required — Location type for a tournament
      - `winner_id` union, required
        - integer, nullable — ID of the player
        - integer, nullable — The ID of the team.
      - `winner_type` 'Player' | 'Team', nullable, required
    - `tournament_id` integer, required
    - `winner` union, required
      - object, nullable
        - `active` boolean, required — Whether player is active
        - `age` number, nullable, required — Age of the player, `null` if unknown. When `birthday` is `null`, `age` is an approxiamation. Read more about [players' age](/docs/about-players-age) **Note**: This field is only present for users running the Historical plan or above.
        - `birthday` string, nullable, required — Birth day of the player, `YYYY-MM-DD` format. `null` if unknown. **Note**: This field is only present for users running the Historical plan or above.
        - `first_name` string, nullable, required — First name of the player. `null` if unknown
        - `id` integer, required — ID of the player
        - `image_url` string, uri, nullable, required — URL to the photo of the player. `null` if not available.
        - `last_name` string, nullable, required — Last name of the player. `null` if unknown
        - `modified_at` string, date-time, required
        - `name` string, required — Professional name of the player
        - `nationality` string, nullable, required — Country code matching the nationality of the player according to the ISO 3166-1 standard (Alpha-2 code). In addition to the standard, the `XK` code is used for Kosovo. `null` if unknown
        - `role` string, nullable, required — Role/position of the player. Field value varies depending on the video game.`null` if unknown. **Note**: role is only available for DotA 2, League of Legends, and Overwatch players. `null` for other video games.
        - `slug` string, nullable, required — Unique, human-readable identifier for the player. `id` and `slug` can be used interchangeably throughout the API.
      - object, nullable
        - `acronym` string, nullable, required
        - `dark_mode_image_url` string, uri, nullable, required — URL of the team logo
        - `id` integer, required — The ID of the team.
        - `image_url` string, uri, nullable, required — URL of the team logo
        - `location` string, nullable, required — The team's organization location
        - `modified_at` string, date-time, required
        - `name` string, required — The name of the team.
        - `slug` string, nullable, required
    - `winner_id` union, required
      - integer, nullable — ID of the player
      - integer, nullable — The ID of the team.
    - `winner_type` 'Player' | 'Team', required
  - `match_id` integer, required
  - `players` Dota2FullGamePlayer[], nullable, required
    - `abilities` Dota2PerHeroAbility[], required
      - `id` integer, required
      - `image_url` string, uri, nullable, required
      - `level` integer, nullable, required
      - `name` string, required
    - `assists` integer, nullable, required — Player's number of assists for a game
    - `camps_stacked` integer, nullable, required
    - `creeps_stacked` integer, nullable, required
    - `damage_taken` integer, nullable, required
    - `deaths` integer, nullable, required
    - `denies` integer, nullable, required — Number of denies performed by a player
    - `faction` 'dire' | 'radiant', nullable, required
    - `game_id` integer, required
    - `gold_per_min` integer, nullable, required
    - `gold_percentage` number, required — Percentage of gold (per min) the player had compared to the total gold of the team
    - `gold_remaining` integer, nullable, required
    - `gold_spent` integer, nullable, required
    - `heal` integer, nullable, required — Healing (in HP) performed by the player
    - `hero` object, nullable, required
      - `id` integer, required
      - `image_url` string, uri, nullable, required
      - `localized_name` string, required
      - `name` string, required
    - `hero_damage` integer, nullable, required
    - `hero_damage_percentage` number, nullable, required
    - `hero_level` integer, nullable, required
    - `items` Dota2Item[], required
      - `id` integer, required
      - `image_url` string, uri, nullable, required
      - `name` string, required
    - `kills` integer, nullable, required
    - `lane_creep` integer, nullable, required
    - `last_hits` integer, nullable, required
    - `net_worth` integer, nullable, required — Net worth of the player
    - `neutral_creep` integer, nullable, required
    - `observer_used` integer, nullable, required
    - `observer_wards_destroyed` integer, nullable, required
    - `observer_wards_purchased` integer, nullable, required
    - `opponent` union, required
      - object, nullable
        - `active` boolean, required — Whether player is active
        - `age` number, nullable, required — Age of the player, `null` if unknown. When `birthday` is `null`, `age` is an approxiamation. Read more about [players' age](/docs/about-players-age) **Note**: This field is only present for users running the Historical plan or above.
        - `birthday` string, nullable, required — Birth day of the player, `YYYY-MM-DD` format. `null` if unknown. **Note**: This field is only present for users running the Historical plan or above.
        - `first_name` string, nullable, required — First name of the player. `null` if unknown
        - `id` integer, required — ID of the player
        - `image_url` string, uri, nullable, required — URL to the photo of the player. `null` if not available.
        - `last_name` string, nullable, required — Last name of the player. `null` if unknown
        - `modified_at` string, date-time, required
        - `name` string, required — Professional name of the player
        - `nationality` string, nullable, required — Country code matching the nationality of the player according to the ISO 3166-1 standard (Alpha-2 code). In addition to the standard, the `XK` code is used for Kosovo. `null` if unknown
        - `role` string, nullable, required — Role/position of the player. Field value varies depending on the video game.`null` if unknown. **Note**: role is only available for DotA 2, League of Legends, and Overwatch players. `null` for other video games.
        - `slug` string, nullable, required — Unique, human-readable identifier for the player. `id` and `slug` can be used interchangeably throughout the API.
      - object, nullable
        - `acronym` string, nullable, required
        - `dark_mode_image_url` string, uri, nullable, required — URL of the team logo
        - `id` integer, required — The ID of the team.
        - `image_url` string, uri, nullable, required — URL of the team logo
        - `location` string, nullable, required — The team's organization location
        - `modified_at` string, date-time, required
        - `name` string, required — The name of the team.
        - `slug` string, nullable, required
    - `player` BasePlayer, required
      - `active` boolean, required — Whether player is active
      - `age` number, nullable, required — Age of the player, `null` if unknown. When `birthday` is `null`, `age` is an approxiamation. Read more about [players' age](/docs/about-players-age) **Note**: This field is only present for users running the Historical plan or above.
      - `birthday` string, nullable, required — Birth day of the player, `YYYY-MM-DD` format. `null` if unknown. **Note**: This field is only present for users running the Historical plan or above.
      - `first_name` string, nullable, required — First name of the player. `null` if unknown
      - `id` integer, required — ID of the player
      - `image_url` string, uri, nullable, required — URL to the photo of the player. `null` if not available.
      - `last_name` string, nullable, required — Last name of the player. `null` if unknown
      - `modified_at` string, date-time, required
      - `name` string, required — Professional name of the player
      - `nationality` string, nullable, required — Country code matching the nationality of the player according to the ISO 3166-1 standard (Alpha-2 code). In addition to the standard, the `XK` code is used for Kosovo. `null` if unknown
      - `role` string, nullable, required — Role/position of the player. Field value varies depending on the video game.`null` if unknown. **Note**: role is only available for DotA 2, League of Legends, and Overwatch players. `null` for other video games.
      - `slug` string, nullable, required — Unique, human-readable identifier for the player. `id` and `slug` can be used interchangeably throughout the API.
    - `role` integer, nullable, required — Position of the player (1, 2, 3, 4, 5)
    - `sentry_used` integer, nullable, required
    - `sentry_wards_destroyed` integer, nullable, required
    - `sentry_wards_purchased` integer, nullable, required
    - `team` object, nullable, required
      - `acronym` string, nullable, required
      - `dark_mode_image_url` string, uri, nullable, required — URL of the team logo
      - `id` integer, required — The ID of the team.
      - `image_url` string, uri, nullable, required — URL of the team logo
      - `location` string, nullable, required — The team's organization location
      - `modified_at` string, date-time, required
      - `name` string, required — The name of the team.
      - `slug` string, nullable, required
    - `team_id` integer, nullable, required — The ID of the team.
    - `tower_damage` integer, nullable, required
    - `tower_kills` integer, nullable, required
    - `xp_per_min` integer, nullable, required
  - `position` integer, required — Game position in the match. Starts at 1
  - `status` 'finished' | 'not_played' | 'not_started' | 'running', required — The game status
  - `teams` Dota2GameTeam[], nullable, required
    - `bans` Dota2HeroID[], required
    - `barracks_status` object, nullable, required
      - `bottom_melee` boolean, required — Whether bottom melee barracks are alive
      - `bottom_ranged` boolean, required — Whether bottom ranged barracks are alive
      - `middle_melee` boolean, required — Whether middle melee barracks are alive
      - `middle_ranged` boolean, required — Whether middle ranged barracks are alive
      - `top_melee` boolean, required — Whether top melee barracks are alive
      - `top_ranged` boolean, required — Whether top ranged barracks are alive
    - `faction` 'dire' | 'radiant', required
    - `first_blood` boolean, required — Whether team got first blood
    - `first_roshan` boolean, required — Whether team got first Roshan
    - `first_tower` boolean, required — Whether team got first tower
    - `picks` Dota2HeroID[], required
    - `player_ids` PlayerID[], required
    - `roshan_kills` integer, nullable, required — The total number of Roshans killed by the team in the game
    - `score` integer, nullable, required
    - `team` BaseTeam, required
      - `acronym` string, nullable, required
      - `dark_mode_image_url` string, uri, nullable, required — URL of the team logo
      - `id` integer, required — The ID of the team.
      - `image_url` string, uri, nullable, required — URL of the team logo
      - `location` string, nullable, required — The team's organization location
      - `modified_at` string, date-time, required
      - `name` string, required — The name of the team.
      - `slug` string, nullable, required
    - `tower_status` object, nullable, required
      - `ancient_bottom` boolean, required — Whether bottom Ancient is alive
      - `ancient_top` boolean, required — Whether top Ancient is alive
      - `bottom_tier_1` boolean, required — Whether bottom tier 1 tower is alive
      - `bottom_tier_2` boolean, required — Whether bottom tier 2 tower is alive
      - `bottom_tier_3` boolean, required — Whether bottom tier 3 tower is alive
      - `middle_tier_1` boolean, required — Whether middle tier 1 tower is alive
      - `middle_tier_2` boolean, required — Whether middle tier 2 tower is alive
      - `middle_tier_3` boolean, required — Whether middle tier 3 tower is alive
      - `top_tier_1` boolean, required — Whether top tier 1 tower is alive
      - `top_tier_2` boolean, required — Whether top tier 2 tower is alive
      - `top_tier_3` boolean, required — Whether top tier 3 tower is alive
  - `winner` GameWinner, required
    - `id` union, required
      - integer, nullable — ID of the player
      - integer, nullable — The ID of the team.
    - `type` 'Player' | 'Team', nullable, required
  - `winner_type` 'Player' | 'Team', nullable, required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Unprocessable Entity

---

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