Maps — league figures and team records
League-wide figures for each competitive map, and how each team fares on, and chooses around, one map.
Two endpoints look at maps from the league's side rather than one team's. Both are derived from completed matches and veto records, computed once per ten minutes and shared across callers.
League-wide figures
GET /v1/{game}/maps — one row per competitive map over a trailing window (default 6m, maximum
12m, no all); era is cs2 or all (default).
Prop
Type
Read a map's bans and picks against its own veto_matches, never another map's: a map added to the
pool recently was available to be banned in fewer vetoes, so its share rests on fewer. 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.
One map, every team
GET /v1/{game}/maps/{id}/teams — how each team fares on one map. {id} is the map's name with or without
the de_ prefix and in any case (dust2, de_dust2, Dust2); a name that is not a competitive map is a
404. window defaults to 6m (up to 60m, or all), era as above, limit default 100, max 200.
Each row: the team (id, name, slug), played and wins on the map, the team's own picks and
bans of it, veto_matches (its matches in the window with a recorded veto — the denominator for picks
and bans) and permaban (the rule /teams/{id}/vetoes uses:
at least 90% of at least 20 recorded vetoes).
A team is listed when it has at least 10 maps played on the map or at least 10 picks plus bans of it,
so a map a team never plays because it always bans it still lists that team. Most played first, then most
chosen. As everywhere, wins / played is left for you to compute — and mind small played values.