openapi: 3.0.3
servers:
  - url: https://api.tcgdex.net/v2/{lang}
    variables:
      lang:
        default: en
        enum:
          - en
          - fr
          - es
          - it
          - pt
info:
  contact:
    email: contact@tcgdex.net
    name: TCGdex
    url: https://github.com/tcgdex/cards-database
  description: |-
    A Multilanguage Pokémon TCG Database with Cards Pictures and most of the informations contained on the cards.
    You can find out more about TCGdex at [https://www.tcgdex.net](https://www.tcgdex.net) or on [Discord](https://discord.gg/NehYTAhsZE).
  license:
    name: MIT License
    url: https://github.com/tcgdex/cards-database/blob/master/LICENSE
  title: TCGdex API
  version: 2.0.0
  x-logo:
    url: https://tcgdex.net/apple-touch-icon.png
  x-origin:
    - format: openapi
      url: https://api.tcgdex.net/v2/openapi.yaml
      version: "3.0"
  x-providerName: tcgdex.net
externalDocs:
  description: Find out more about TCGdex
  url: http://www.tcgdex.net/docs
tags:
  - description: Fetch cards globally
    name: cards
  - description: differents requests to filter cards
    name: filters
paths:
  /cards:
    get:
      description: desc
      operationId: cards
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: ""
      summary: fetch the list of cards
      tags:
        - cards
  "/cards/{cardId}":
    get:
      description: Find a defined card thatusing its global id
      operationId: findPetsByTags
      parameters:
        - description: Tags to filter by
          in: path
          name: cardId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Card"
          description: successful operation
        "404":
          description: The Card doesn't exist
      summary: Finds Card by Global ID
      tags:
        - cards
  /categories:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List cards categories
      tags:
        - filters
  "/categories/{category}":
    get:
      parameters:
        - in: path
          name: category
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StringEndpoint"
          description: List cards with the category
        "404":
          description: The Category doesn't exist
      tags:
        - filters
  /dex-ids:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List all possible Pokemon(s) Pokédex Ids that appeared in the TCG
      tags:
        - filters
  "/dex-ids/{dexId}":
    get:
      parameters:
        - in: path
          name: dexId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get the cards containing the specified dexId
        "404":
          description: no cards contain the specified dexID
      tags:
        - filters
  /energy-types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: list the different Energy types an Energy card can have
      tags:
        - filters
  "/energy-types/{energy-type}":
    get:
      parameters:
        - in: path
          name: energy-type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get the Energy cards containing the specified energy-type
        "404":
          description: The specified energy-type doesn't exist
      tags:
        - filters
  /hp:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List all different possibilities number of HP a card can have
      tags:
        - filters
  "/hp/{hp}":
    get:
      parameters:
        - in: path
          name: hp
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StringEndpoint"
          description: Get the Pokémon cards containing specified number of HP
        "404":
          description: The HP count doesn't exist
      tags:
        - filters
  /illustrators:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Get all the Pokémon cards illustrators
      tags:
        - filters
  "/illustrators/{illustrator}":
    get:
      parameters:
        - in: path
          name: illustrator
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StringEndpoint"
          description: Get the cards containing the specified illustrator
        "404":
          description: The Illustrator doesn't exist
      tags:
        - filters
  /rarities:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List cards rarities
      tags:
        - filters
  "/rarities/{rarity}":
    get:
      parameters:
        - in: path
          name: rarity
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StringEndpoint"
          description: Get the cards containing the specified rarity
        "404":
          description: The Rarity doesn't exist
      tags:
        - filters
  /regulation-marks:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List the current regulation marks
      tags:
        - filters
  "/regulation-marks/{regulation-mark}":
    get:
      parameters:
        - in: path
          name: regulation-mark
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get every cards respecting the specified regulation-mark
        "404":
          description: The regulation-mark doesn't exist
      tags:
        - filters
  /retreats:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: return the different number of retreats count
      tags:
        - filters
  "/retreats/{retreat}":
    get:
      parameters:
        - in: path
          name: retreat
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StringEndpoint"
          description: Get the cards containing the specified retreat count
        "404":
          description: The Retreat count doesn't exist
      tags:
        - filters
  /series:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SerieResume"
                type: array
          description: Successful request
      tags:
        - filters
  "/series/{serie}":
    get:
      parameters:
        - description: the serie ID or name
          in: path
          name: serie
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Serie"
          description: Success
        "404":
          description: The Serie doesn't exist
      tags:
        - filters
  /sets:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SetResume"
                type: array
          description: Successful request
      tags:
        - filters
  "/sets/{set}":
    get:
      parameters:
        - description: the set ID or the set name
          in: path
          name: set
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Set"
          description: Success
        "404":
          description: The Set doesn't exist
      tags:
        - filters
  "/sets/{set}/{cardLocalId}":
    get:
      parameters:
        - in: path
          name: set
          required: true
          schema:
            type: string
        - in: path
          name: cardLocalId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Card"
          description: Success
        "404":
          description: the Set or cardLocalId are incorrect
      tags:
        - cards
  /stages:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Get all the possible stages a Pokémon card can have
      tags:
        - filters
  "/stages/{stage}":
    get:
      parameters:
        - in: path
          name: stage
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get all the cards having the specified stage
        "404":
          description: The stage doesn't exist
      tags:
        - filters
  /suffixes:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Get all the cards having the specified suffix
      tags:
        - filters
  "/suffixes/{suffix}":
    get:
      parameters:
        - in: path
          name: suffix
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get all the cards having the specified stage suffix
        "404":
          description: The suffix doesn't exist
      tags:
        - filters
  /trainer-types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Get the different trainer-types
      tags:
        - filters
  "/trainer-types/{trainer-type}":
    get:
      parameters:
        - in: path
          name: trainer-type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get the cards containing with the specified trainer-type
        "404":
          description: The trainer-type doesn't exist
      tags:
        - filters
  /types:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: List all possible cards types
      tags:
        - filters
  "/types/{type}":
    get:
      parameters:
        - in: path
          name: type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get the cards containing the specified type
        "404":
          description: The Type doesn't exist
      tags:
        - filters
  /variants:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Get the different variants available
      tags:
        - filters
  "/variants/{variant}":
    get:
      parameters:
        - in: path
          name: variant
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CardResume"
                type: array
          description: Get the cards available in the specified variant
        "404":
          description: The variant doesn't exist
      tags:
        - filters
components:
  schemas:
    Card:
      properties:
        abilities:
          items:
            properties:
              effect:
                example: As often as you like...
                type: string
              name:
                example: Damage Swap
                type: string
              type:
                example: Poke-POWER
                type: string
            type: object
          type: array
        attacks:
          items:
            properties:
              cost:
                items:
                  example: ""
                  type: string
                type: array
              damage:
                example: 30
                type: number
              effect:
                example: Flip a coin. If heads, ...
                type: string
              name:
                example: Confuse Ray
                type: string
            required:
              - name
            type: object
          type: array
        category:
          example: Pokemon
          type: string
        description:
          type: string
        dexId:
          items:
            type: number
          type: array
          xml:
            name: dexIdItem
            wrapped: true
        energyType:
          type: string
        evolveFrom:
          example: Kadabra
          type: string
        hp:
          example: 80
          type: number
        id:
          example: base1-1
          type: string
        illustrator:
          example: Ken Sugimori
          type: string
        image:
          example: https://assets.tcgdex.net/en/base/base1/1
          type: string
        item:
          properties:
            effect:
              type: string
            name:
              type: string
          required:
            - effect
            - name
          type: object
        legal:
          properties:
            expanded:
              example: false
              type: boolean
            standard:
              example: false
              type: boolean
          type: object
        level:
          example: 30
          type: number
        localId:
          example: "1"
          type: string
        name:
          example: Alakazam
          type: string
        rarity:
          example: Rare
          type: string
        regulationMark:
          example: D
          type: string
        resistances:
          items:
            $ref: "#/components/schemas/WeakRes"
          type: array
          xml:
            name: resistance
            wrapped: true
        retreat:
          example: 3
          type: number
        set:
          $ref: "#/components/schemas/SetResume"
        stage:
          example: Stage2
          type: string
        suffix:
          type: string
        trainerType:
          type: string
        types:
          items:
            example: Psychic
            type: string
          type: array
        variants:
          properties:
            firstEdition:
              type: boolean
            holo:
              type: boolean
            normal:
              type: boolean
            reverse:
              type: boolean
            wPromo:
              type: boolean
          required:
            - firstEdition
            - holo
            - normal
            - reverse
            - wPromo
          type: object
        weaknesses:
          items:
            $ref: "#/components/schemas/WeakRes"
          type: array
          xml:
            name: weakness
            wrapped: true
      required:
        - category
        - id
        - legal
        - localId
        - name
        - rarity
        - set
      type: object
    CardResume:
      properties:
        id:
          example: base1-1
          type: string
        image:
          example: https://assets.tcgdex.net/en/base/base1/1
          type: string
        localId:
          example: "1"
          type: string
        name:
          example: Alakazam
          type: string
      required:
        - id
        - localId
        - name
      type: object
    Serie:
      properties:
        id:
          type: string
        logo:
          type: string
        name:
          type: string
        sets:
          items:
            $ref: "#/components/schemas/SetResume"
          type: array
      required:
        - id
        - name
        - sets
      type: object
    SerieResume:
      properties:
        id:
          type: string
        logo:
          type: string
        name:
          type: string
      required:
        - id
        - name
      type: object
    Set:
      properties:
        cardCount:
          properties:
            firstEd:
              type: number
            holo:
              type: number
            normal:
              type: number
            official:
              example: 100
              type: number
            reverse:
              type: number
            total:
              example: 101
              type: number
          required:
            - official
            - total
          type: object
        cards:
          items:
            $ref: "#/components/schemas/CardResume"
          type: array
        id:
          example: base1
          type: string
        logo:
          example: https://assets.tcgdex.net/en/base/base1/logo
          type: string
        name:
          example: Base Set
          type: string
        symbol:
          example: https://assets.tcgdex.net/univ/base/base1/symbol
          type: string
      required:
        - cardCount
        - cards
        - id
        - name
      type: object
    SetResume:
      properties:
        cardCount:
          properties:
            official:
              example: 100
              type: number
            total:
              example: 101
              type: number
          required:
            - official
            - total
          type: object
        id:
          example: base1
          type: string
        logo:
          example: https://assets.tcgdex.net/en/base/base1/logo
          type: string
        name:
          example: Base Set
          type: string
        symbol:
          example: https://assets.tcgdex.net/univ/base/base1/symbol
          type: string
      required:
        - cardCount
        - id
        - name
      type: object
    StringEndpoint:
      properties:
        cards:
          items:
            $ref: "#/components/schemas/CardResume"
          type: array
        name:
          type: string
      required:
        - cards
        - name
      type: object
    WeakRes:
      items:
        properties:
          type:
            example: Psychic
            type: string
          value:
            example: x2
            type: string
        required:
          - type
        type: object
      type: array
      xml:
        name: WeakResItem
        wrapped: true
