---
title: "List sets"
method: GET
path: "/v1/sets"
tags: ["sets"]
---

# List sets

`GET /v1/sets`

## Request

- Base URL: `https://api.pokemontcgapi.com`
- URL: `https://api.pokemontcgapi.com/v1/sets`
- Auth: API key in header `X-Api-Key`

Every set with release date, totals, print region and series. An empty first-page name search retries exact market aliases, then order-independent words.

## Query parameters

- `q` string
- `series` string
- `lang` string
- `region` string
- `orderBy` string
- `order_by` string
- `limit` integer
- `cursor` string

## Headers

- `If-None-Match` string

## Response `200`

Success

- object
  - `data` object[], required
  - `meta` object, required
    - `limit` integer, required
    - `count` integer, required
    - `total_count` integer, required
    - `has_more` boolean, required
    - `hints` union[]: Optional market-name match or alias elsewhere; never changes ordinary result rows.
      - union
        - object
          - `code` 'SET_ALIAS_MATCHED' | 'SET_WORDS_MATCHED', required
          - `message` string, required
          - `matched` string, required
        - object
          - `code` 'SET_ALIAS_ELSEWHERE', required
          - `message` string, required
          - `set_code` string, required
          - `set_name` string, required
  - `links` object
    - `next` string, uri

## Other responses

- `304`: Not Modified — the ETag you sent still matches. No body, no quota.
- `400`: INVALID_PARAMETER, INVALID_CURSOR, LIMIT_EXCEEDED
- `401`: MISSING_API_KEY, INVALID_API_KEY
- `403`: PLAN_REQUIRED, TRIAL_EXPIRED
- `429`: QUOTA_EXCEEDED

---

[API](https://skmtc.dev/pokemontcgapi/apis/pokemon-tcg-api.md) · [All operations](https://skmtc.dev/pokemontcgapi/apis/pokemon-tcg-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pokemontcgapi/apis/pokemon-tcg-api/revisions/9e4ee9a375da?raw)
