mirror of
https://github.com/tcgdex/cards-database.git
synced 2025-04-22 19:02:10 +00:00
* feat: Add status Dashboard Still need some polishing like using the compiler instead of the live DB Signed-off-by: Avior <github@avior.me> * refactor: Simplified compiler files generators Signed-off-by: Avior <florian.bouillon@delta-wings.net> * chore: Add step to compiler for stats and optimize Signed-off-by: Avior <github@avior.me> * refactor: Remove unused variable Signed-off-by: Avior <github@avior.me>
915 lines
21 KiB
YAML
915 lines
21 KiB
YAML
# OPEN-API API definition
|
|
openapi: 3.0.3
|
|
info:
|
|
title: TCGdex API
|
|
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).
|
|
contact:
|
|
name: TCGdex
|
|
url: https://github.com/tcgdex/cards-database
|
|
email: contact@tcgdex.net
|
|
license:
|
|
name: MIT License
|
|
url: https://github.com/tcgdex/cards-database/blob/master/LICENSE
|
|
version: 2.0.0
|
|
externalDocs:
|
|
description: Find out more about TCGdex
|
|
url: http://www.tcgdex.net/docs
|
|
servers:
|
|
- url: https://api.tcgdex.net/v2/{lang}
|
|
variables:
|
|
lang:
|
|
enum:
|
|
- en
|
|
- fr
|
|
- es
|
|
- it
|
|
- pt
|
|
default: en
|
|
tags:
|
|
- name: cards
|
|
description: Fetch cards globally
|
|
- name: filters
|
|
description: differents requests to filter cards
|
|
paths:
|
|
/cards:
|
|
get:
|
|
tags:
|
|
- cards
|
|
summary: fetch the list of cards
|
|
description: desc
|
|
operationId: cards
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
/cards/{cardId}:
|
|
get:
|
|
tags:
|
|
- cards
|
|
summary: Finds Card by Global ID
|
|
description: Find a defined card thatusing its global id
|
|
operationId: findPetsByTags
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: Tags to filter by
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Card'
|
|
'404':
|
|
description: The Card doesn't exist
|
|
/sets:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Successful request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SetResume'
|
|
/sets/{set}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: set
|
|
in: path
|
|
description: the set ID or the set name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Set'
|
|
'404':
|
|
description: The Set doesn't exist
|
|
/sets/{set}/{cardLocalId}:
|
|
get:
|
|
tags:
|
|
- cards
|
|
parameters:
|
|
- name: set
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: cardLocalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Card'
|
|
'404':
|
|
description: the Set or cardLocalId are incorrect
|
|
/series:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Successful request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SerieResume'
|
|
/series/{serie}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: serie
|
|
in: path
|
|
description: the serie ID or name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Serie'
|
|
'404':
|
|
description: The Serie doesn't exist
|
|
/categories:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List cards categories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/categories/{category}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: category
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List cards with the category
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StringEndpoint'
|
|
'404':
|
|
description: The Category doesn't exist
|
|
/hp:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List all different possibilities number of HP a card can have
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/hp/{hp}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: hp
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the Pokémon cards containing specified number of HP
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StringEndpoint'
|
|
'404':
|
|
description: The HP count doesn't exist
|
|
/illustrators:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Get all the Pokémon cards illustrators
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/illustrators/{illustrator}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: illustrator
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing the specified illustrator
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StringEndpoint'
|
|
'404':
|
|
description: The Illustrator doesn't exist
|
|
/rarities:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List cards rarities
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/rarities/{rarity}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: rarity
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing the specified rarity
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StringEndpoint'
|
|
'404':
|
|
description: The Rarity doesn't exist
|
|
/retreats:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: return the different number of retreats count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/retreats/{retreat}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: retreat
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing the specified retreat count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StringEndpoint'
|
|
'404':
|
|
description: The Retreat count doesn't exist
|
|
/types:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List all possible cards types
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/types/{type}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: type
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing the specified type
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The Type doesn't exist
|
|
/dex-ids:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List all possible Pokemon(s) Pokédex Ids that appeared in the TCG
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/dex-ids/{dexId}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: dexId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing the specified dexId
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: no cards contain the specified dexID
|
|
/energy-types:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: list the different Energy types an Energy card can have
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/energy-types/{energy-type}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: energy-type
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the Energy cards containing the specified energy-type
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The specified energy-type doesn't exist
|
|
/regulation-marks:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: List the current regulation marks
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/regulation-marks/{regulation-mark}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: regulation-mark
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get every cards respecting the specified regulation-mark
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The regulation-mark doesn't exist
|
|
/stages:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Get all the possible stages a Pokémon card can have
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/stages/{stage}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: stage
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get all the cards having the specified stage
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The stage doesn't exist
|
|
/suffixes:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Get all the cards having the specified suffix
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/suffixes/{suffix}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: suffix
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get all the cards having the specified stage suffix
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The suffix doesn't exist
|
|
/trainer-types:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Get the different trainer-types
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/trainer-types/{trainer-type}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: trainer-type
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards containing with the specified trainer-type
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The trainer-type doesn't exist
|
|
/variants:
|
|
get:
|
|
tags:
|
|
- filters
|
|
responses:
|
|
'200':
|
|
description: Get the different variants available
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/variants/{variant}:
|
|
get:
|
|
tags:
|
|
- filters
|
|
parameters:
|
|
- name: variant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Get the cards available in the specified variant
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
'404':
|
|
description: The variant doesn't exist
|
|
components:
|
|
schemas:
|
|
WeakRes:
|
|
type: array
|
|
xml:
|
|
name: WeakResItem
|
|
wrapped: true
|
|
items:
|
|
required:
|
|
- type
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: Psychic
|
|
value:
|
|
type: string
|
|
example: x2
|
|
SerieResume:
|
|
required:
|
|
- id
|
|
- name
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
Serie:
|
|
required:
|
|
- id
|
|
- name
|
|
- sets
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
sets:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SetResume'
|
|
Set:
|
|
required:
|
|
- cardCount
|
|
- cards
|
|
- id
|
|
- name
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: base1
|
|
name:
|
|
type: string
|
|
example: Base Set
|
|
logo:
|
|
type: string
|
|
example: https://assets.tcgdex.net/en/base/base1/logo
|
|
symbol:
|
|
type: string
|
|
example: https://assets.tcgdex.net/univ/base/base1/symbol
|
|
cardCount:
|
|
required:
|
|
- official
|
|
- total
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: number
|
|
example: 101
|
|
official:
|
|
type: number
|
|
example: 100
|
|
normal:
|
|
type: number
|
|
reverse:
|
|
type: number
|
|
holo:
|
|
type: number
|
|
firstEd:
|
|
type: number
|
|
cards:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|
|
SetResume:
|
|
required:
|
|
- cardCount
|
|
- id
|
|
- name
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: base1
|
|
name:
|
|
type: string
|
|
example: Base Set
|
|
logo:
|
|
type: string
|
|
example: https://assets.tcgdex.net/en/base/base1/logo
|
|
symbol:
|
|
type: string
|
|
example: https://assets.tcgdex.net/univ/base/base1/symbol
|
|
cardCount:
|
|
required:
|
|
- official
|
|
- total
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: number
|
|
example: 101
|
|
official:
|
|
type: number
|
|
example: 100
|
|
CardResume:
|
|
required:
|
|
- id
|
|
- localId
|
|
- name
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: base1-1
|
|
localId:
|
|
type: string
|
|
example: '1'
|
|
image:
|
|
type: string
|
|
example: https://assets.tcgdex.net/en/base/base1/1
|
|
name:
|
|
type: string
|
|
example: Alakazam
|
|
Card:
|
|
required:
|
|
- category
|
|
- id
|
|
- legal
|
|
- localId
|
|
- name
|
|
- rarity
|
|
- set
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: base1-1
|
|
localId:
|
|
type: string
|
|
example: '1'
|
|
image:
|
|
type: string
|
|
example: https://assets.tcgdex.net/en/base/base1/1
|
|
name:
|
|
type: string
|
|
example: Alakazam
|
|
illustrator:
|
|
type: string
|
|
example: Ken Sugimori
|
|
category:
|
|
type: string
|
|
example: Pokemon
|
|
rarity:
|
|
type: string
|
|
example: Rare
|
|
set:
|
|
$ref: '#/components/schemas/SetResume'
|
|
variants:
|
|
required:
|
|
- firstEdition
|
|
- holo
|
|
- normal
|
|
- reverse
|
|
- wPromo
|
|
type: object
|
|
properties:
|
|
normal:
|
|
type: boolean
|
|
reverse:
|
|
type: boolean
|
|
holo:
|
|
type: boolean
|
|
firstEdition:
|
|
type: boolean
|
|
wPromo:
|
|
type: boolean
|
|
hp:
|
|
type: number
|
|
example: 80
|
|
types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: Psychic
|
|
evolveFrom:
|
|
type: string
|
|
example: Kadabra
|
|
stage:
|
|
type: string
|
|
example: Stage2
|
|
suffix:
|
|
type: string
|
|
item:
|
|
required:
|
|
- effect
|
|
- name
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
effect:
|
|
type: string
|
|
trainerType:
|
|
type: string
|
|
energyType:
|
|
type: string
|
|
regulationMark:
|
|
type: string
|
|
example: D
|
|
legal:
|
|
type: object
|
|
properties:
|
|
standard:
|
|
type: boolean
|
|
example: false
|
|
expanded:
|
|
type: boolean
|
|
example: false
|
|
description:
|
|
type: string
|
|
level:
|
|
type: number
|
|
example: 30
|
|
abilities:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: Poke-POWER
|
|
name:
|
|
type: string
|
|
example: Damage Swap
|
|
effect:
|
|
type: string
|
|
example: As often as you like...
|
|
attacks:
|
|
type: array
|
|
items:
|
|
required:
|
|
- name
|
|
type: object
|
|
properties:
|
|
cost:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ''
|
|
name:
|
|
type: string
|
|
example: Confuse Ray
|
|
effect:
|
|
type: string
|
|
example: Flip a coin. If heads, ...
|
|
damage:
|
|
type: number
|
|
example: 30
|
|
retreat:
|
|
type: number
|
|
example: 3
|
|
dexId:
|
|
type: array
|
|
xml:
|
|
name: dexIdItem
|
|
wrapped: true
|
|
items:
|
|
type: number
|
|
weaknesses:
|
|
type: array
|
|
xml:
|
|
name: weakness
|
|
wrapped: true
|
|
items:
|
|
$ref: '#/components/schemas/WeakRes'
|
|
resistances:
|
|
type: array
|
|
xml:
|
|
name: resistance
|
|
wrapped: true
|
|
items:
|
|
$ref: '#/components/schemas/WeakRes'
|
|
# xml:
|
|
# name: Card
|
|
StringEndpoint:
|
|
required:
|
|
- cards
|
|
- name
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
cards:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardResume'
|