Maps

League-wide figures for each competitive map

Each competitive map's league-wide figures over the trailing `window`: maps played (a map played out — technical results and walkovers are not counted), the average number of rounds, the rounds played and won on each side, and the bans and picks recorded in the vetoes whose sequence included the map. `veto_matches` is the number of those matches. A map added to the pool recently has fewer, so read a map's bans and picks against its own `veto_matches`, never against another map's. A veto choice counts only on a competitive map and only when its acting team is one of the match's two sides. Every map in the Active Duty pool is listed, with zeros before its first map, plus any retired map still played in the window. Most played first. The result is computed once per ten minutes per parameter set and shared across callers. Enveloped `{"data": [MapStat, ...], "meta": {...}}`.

GET
/v1/{game}/maps

Each competitive map's league-wide figures over the trailing window: maps played (a map played out — technical results and walkovers are not counted), the average number of rounds, the rounds played and won on each side, and the bans and picks recorded in the vetoes whose sequence included the map.

veto_matches is the number of those matches. A map added to the pool recently has fewer, so read a map's bans and picks against its own veto_matches, never against another map's. A veto choice counts only on a competitive map and only when its acting team is one of the match's two sides. Every map in the Active Duty pool is listed, with zeros before its first map, plus any retired map still played in the window.

Most played first. The result is computed once per ten minutes per parameter set and shared across callers. Enveloped {"data": [MapStat, ...], "meta": {...}}.

Authorization

AuthorizationBearer <token>

Primary auth (live). Authorization: Bearer <api-key> — the header takes precedence over the query fallback. The raw key is hashed (SHA-256, hex) and looked up in api.keys.key_hash; the raw value is never stored.

In: header

Path Parameters

game*string

Game slug. cs2 is the only populated title today; an un-onboarded game 404s cleanly.

Query Parameters

window?string

The trailing span of matches the figures cover: a whole number of months with an m suffix, such as 6m, up to 12m. Default 6m. Anything else is a 400 naming the parameter.

Default"6m"
era?string

Which Counter-Strike era the matches come from. cs2 keeps only Counter-Strike 2 matches (a match with no recorded version counts as Counter-Strike 2 when it was played on or after 2023-10-16); all (the default) keeps every match.

Default"all"

Value in

  • "cs2"
  • "all"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/cs2/maps"
{  "data": [    {      "map_name": "de_dust2",      "active_pool": true,      "played": 2224,      "avg_rounds": 21.5,      "ct_rounds": 39377,      "ct_round_wins": 20146,      "t_rounds": 39377,      "t_round_wins": 19231,      "bans": 1681,      "picks": 1459,      "veto_matches": 3787    },    {      "map_name": "de_mirage",      "active_pool": true,      "played": 1992,      "avg_rounds": 21.5,      "ct_rounds": 35971,      "ct_round_wins": 19605,      "t_rounds": 35971,      "t_round_wins": 16366,      "bans": 1860,      "picks": 1196,      "veto_matches": 3788    },    {      "map_name": "de_ancient",      "active_pool": true,      "played": 1935,      "avg_rounds": 21.4,      "ct_rounds": 33913,      "ct_round_wins": 17859,      "t_rounds": 33913,      "t_round_wins": 16054,      "bans": 1973,      "picks": 1166,      "veto_matches": 3789    }  ],  "meta": {    "count": 3,    "next_cursor": null  }}
{  "error": {    "code": "not_found",    "message": "not found",    "request_id": "019f3d18-c15f-7319-81a7-343e8a80a578"  }}
{  "error": {    "code": "not_found",    "message": "not found",    "request_id": "019f3d18-c15f-7319-81a7-343e8a80a578"  }}

{  "error": {    "code": "rate_limited",    "message": "rate limit exceeded",    "request_id": "019f3d18-c15f-7319-81a7-343e8a80a578"  }}