This is version 3 of the API. Please see here for the latest version.
Our Yu-Gi-Oh! API is now available for public consumption. Below are the details on how to use the API and what kind of response is to be expected from the API.
Please download and store all data pulled from this API locally to keep the amount of API calls used to a minimum. Failure to do so may result in either your IP address being blacklisted or the API being rolled back.
Rate Limiting on the API is enabled. The rate limit is 20 requests per 1 second. If you exceed this, you are blocked from accessing the API for 1 hour. We will monitor this rate limit for now and adjust accordingly.
Our API responses are cached on our side. The cache timings will be given below. These are subject to change.
The Card Information endpoint is available at https://db.ygoprodeck.com/api/v3/cardinfo.php
This is the only endpoint that is now needed. You can pass multiple paramters to this endpoint to filter the information retrieved.
The following endpoint parameters can be passed:
&fname=Magician
to search by all cards with "Magician" in the name.The specific results from this endpoint are cached for 2 days (172800 seconds) but will be manually cleared upon new card entry.
Response Information:
We are working on to soon include price data as part of the response information.
The following is a list of examples you can do using the possible endpoint parameters shown above.
Get all cards
https://db.ygoprodeck.com/api/v3/cardinfo.php
Get "Dark Magician" card information
https://db.ygoprodeck.com/api/v3/cardinfo.php?name=Dark Magician
Get all cards belonging to "Blue-Eyes" archetype
https://db.ygoprodeck.com/api/v3/cardinfo.php?archetype=Blue-Eyes
Get all Level 4/RANK 4 Water cards and order by atk
https://db.ygoprodeck.com/api/v3/cardinfo.php?level=4&attribute=water&sort=atk
Get all cards on the TCG Banlist who are level 4 and order them by name (A-Z)
https://db.ygoprodeck.com/api/v3/cardinfo.php?banlist=tcg&level=4&sort=name
Get all Dark attribute monsters from the Metal Raiders set
https://db.ygoprodeck.com/api/v3/cardinfo.php?set=metal%20raiders&attribute=dark
Get all cards with "Wizard" in their name who have are LIGHT attribute monsters with a race of Spellcaster
https://db.ygoprodeck.com/api/v3/cardinfo.php?fname=Wizard&attribute=light&race=spellcaster
Get all Spell Cards that are Equip Spell Cards
https://db.ygoprodeck.com/api/v3/cardinfo.php?type=spell%20card&race=equip
Get "Dark Magician" card information using his ID in the French language
https://db.ygoprodeck.com/api/v3/cardinfo.php?name=46986414&la=french
Parameter "Race" values:
Monster Cards
Spell Cards
Trap Cards
Parameter "Type" values:
Main Deck Types
Extra Deck Types
Languages:
Our API only officially supports English as a response language but we are adding unofficial languages bit by bit. What do we mean by unofficial? Translations may not be accurate and card information may be out of date.
The other language APIs are essentially used to have a foundation of what you want to build. Please do not email or contact us about adding languages or to continually update other language information.
Currently Supported Languages:
Card images can be pulled from our Google Cloud server but please only pull an image once and then store it locally. If we find you are pulling a very high volume of images per second then your IP will be blacklisted and blocked.
Our card images are in .jpg
format and are web optimized.
All of our cloud URLs will either be https://storage.googleapis.com/ygoprodeck.com/pics/
or https://storage.googleapis.com/ygoprodeck.com/pics_small/
. You pass the ID of the card to retrieve the image.
Example Limit Reverse Card Image: https://storage.googleapis.com/ygoprodeck.com/pics/27551.jpg
The image URLs are found within the JSON response as both image_url
and image_url_small
.
Since v3: Card images are now properly returned without slashes being incorrectly escaped as it was with v2.
The main features of v3 is more thorough error checking.
All error codes now return a correct 400 response header.
Almost every parameter will now return an error code if an invalid value is passed to it (as opposed to ignoring it and returning all cards like in previous versions). The user will also be prompted on all the correct possible values to pass so they aren't left guessing.
Here is an example of an invalid value sent through the attribute parameter: https://db.ygoprodeck.com/api/v3/cardinfo.php?type=Effect%20Monster&attribute=wood&num=2
The response returned: {"error":"Attribute value of wood is invalid. Please use a correct attribute value. Attribute accepts 'dark', 'earth', 'fire', 'light', 'water', 'wind' or 'divine' and is not case sensitive."}
The only way to return all cards now is by having 0 parameters in the request: https://db.ygoprodeck.com/api/v3/cardinfo.php
. If invalid parameters are sent, an error will also be returned.
This should save users bandwidth on receiving large requests when requesting malformed urls.