---
title: "Returns the latest KZ maps."
method: GET
path: "/maps"
tags: ["Maps"]
---

# Returns the latest KZ maps.

`GET /maps`

## Query parameters

- `workshop_id` integer
- `name` string
- `state` 'invalid' | 'in-testing' | 'approved'
- `limit` integer
- `offset` integer

## Response `200`

- PaginatedMap
  - `total` integer, required — The total number of values available for fetching. Different endpoints have different hard-limits on how many values they will return at a time. They usually also have an `offset` query parameter you can use to fetch the next set of values. You can use `total` to infer when you can stop making requests.
  - `values` object[], required — The values returned for this request.
    - `id` integer, required — The map's ID in the API.
    - `workshop_id` integer, required — The map's ID on the Steam Workshop.
    - `name` string, required — The map's name.
    - `description` string, nullable — A brief description of the map.
    - `state` 'invalid' | 'in-testing' | 'approved', required
    - `vpk_checksum` string, required — A checksum of the map's `.vpk` file.
    - `mappers` PlayerInfo[], required — A list of players who have contributed to the creation of this map.
      - `id` string, required — a SteamID
      - `name` string, required — The player's name on Steam.
    - `courses` Course[], required — A list of courses present on the map.
      - `name` string, required — The course's name.
      - `description` string, nullable — A brief description of the course.
      - `mappers` PlayerInfo[], required — A list of players who have contributed to the creation of this course.
        - `id` string, required — a SteamID
        - `name` string, required — The player's name on Steam.
      - `filters` CourseFilters, required
        - `vanilla` CourseFilter, required
          - `nub_tier` 'very-easy' | 'easy' | 'medium' | 'advanced' | 'hard' | 'very-hard' | 'extreme' | 'death' | 'unfeasible' | 'impossible', required
          - `pro_tier` 'very-easy' | 'easy' | 'medium' | 'advanced' | 'hard' | 'very-hard' | 'extreme' | 'death' | 'unfeasible' | 'impossible', required
          - `state` 'unranked' | 'pending' | 'ranked', required
          - `notes` string, nullable — Any additional notes on this filter (e.g. tiering justifications).
        - `classic` CourseFilter, required
          - `nub_tier` 'very-easy' | 'easy' | 'medium' | 'advanced' | 'hard' | 'very-hard' | 'extreme' | 'death' | 'unfeasible' | 'impossible', required
          - `pro_tier` 'very-easy' | 'easy' | 'medium' | 'advanced' | 'hard' | 'very-hard' | 'extreme' | 'death' | 'unfeasible' | 'impossible', required
          - `state` 'unranked' | 'pending' | 'ranked', required
          - `notes` string, nullable — Any additional notes on this filter (e.g. tiering justifications).
    - `approved_at` string, date-time, required — a UTC timestamp

## Other responses

- `400` — invalid query parameters

---

[API](https://skmtc.dev/cs2kz/apis/cs2kz-api.md) · [All operations](https://skmtc.dev/cs2kz/apis/cs2kz-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cs2kz/cs2kz-api/revisions/73ecd7bbda3b/schema)
