Pokémon TCG API Metadata API

The controlled vocabularies used across cards - energy types, card subtypes, supertypes, and 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 email required.

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.0.3
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:
  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
  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
  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.