Pokémon TCG API Metadata API

The controlled vocabularies used across cards - energy types, card subtypes, supertypes, and rarities.

Operations 4

GET /types Get types #
GET /subtypes Get subtypes #
GET /supertypes Get supertypes #
GET /rarities Get rarities #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pokemon-tcg-metadata-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pokemon-tcg-metadata-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pokémon TCG Cards Metadata API
  description: The Pokémon TCG API is a free, community-run REST API (created and maintained by Andrew Backes) that serves Pokémon Trading Card Game data - every card across every set, with attacks, abilities, weaknesses, resistances, format legalities, high-resolution card images, and current market prices from TCGplayer and Cardmarket. The read-only surface covers cards, sets, and the metadata vocabularies (types, subtypes, supertypes, and rarities) used to filter them. Card and set search uses a Lucene-like query syntax via the q parameter - keyword and phrase matching, AND/OR/NOT logic, wildcards, exact matching, inclusive/exclusive range searches, and dot-notation nested-field filters (for example set.id:sm1 or legalities.standard:banned). Requests work without authentication at a reduced rate limit; a free API key from the Pokémon TCG Developer Portal (https://dev.pokemontcg.io), sent in the X-Api-Key header, raises the limits substantially.
  version: '2.0'
  contact:
    name: Pokémon TCG API
    url: https://pokemontcg.io
  license:
    name: MIT
    url: https://github.com/PokemonTCG/pokemon-tcg-data/blob/master/LICENSE
servers:
- url: https://api.pokemontcg.io/v2
  description: Production
security:
- {}
- apiKeyAuth: []
tags:
- name: Metadata
  description: The controlled vocabularies used across cards - energy types, card subtypes, supertypes, and rarities.
paths:
  /types:
    get:
      operationId: getTypes
      tags:
      - Metadata
      summary: Get types
      description: Returns all energy types used on cards - Colorless, Darkness, Dragon, Fairy, Fighting, Fire, Grass, Lightning, Metal, Psychic, and Water.
      responses:
        '200':
          $ref: '#/components/responses/StringList'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /subtypes:
    get:
      operationId: getSubtypes
      tags:
      - Metadata
      summary: Get subtypes
      description: Returns all card subtypes - Basic, Stage 1, Stage 2, EX, GX, V, VMAX, VSTAR, MEGA, BREAK, TAG TEAM, Item, Supporter, Stadium, and the rest.
      responses:
        '200':
          $ref: '#/components/responses/StringList'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /supertypes:
    get:
      operationId: getSupertypes
      tags:
      - Metadata
      summary: Get supertypes
      description: Returns all card supertypes - Energy, Pokémon, and Trainer.
      responses:
        '200':
          $ref: '#/components/responses/StringList'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /rarities:
    get:
      operationId: getRarities
      tags:
      - Metadata
      summary: Get rarities
      description: Returns all card rarities - Common, Uncommon, Rare, Rare Holo, Ultra Rare, Illustration Rare, Special Illustration Rare, Amazing Rare, Radiant Rare, Promo, and the rest.
      responses:
        '200':
          $ref: '#/components/responses/StringList'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    TooManyRequests:
      description: The rate limit has been exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    StringList:
      description: A list of string values.
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  type: string
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              example: Bad Request. Your request is either malformed, or is missing one or more required fields.
            code:
              type: integer
              example: 400
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: Optional API key from the Pokémon TCG Developer Portal (https://dev.pokemontcg.io). Requests without a key still work but are rate limited to 1,000 requests/day (max 30/minute); a free key raises the default limit to 20,000 requests/day.