ygoprodeck.com APIygoprodeck.com ↗
Access Yu-Gi-Oh! card stats, effects, images, prices, and set data from the YGOProDeck database via a clean REST API with search and filtering.
curl -X GET 'https://api.parse.bot/scraper/44e9e31c-370a-41c1-9755-ba3a36c812ab/get_cards?num=5&fname=Blue-Eyes&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for Yu-Gi-Oh! cards using various filters. Supports fuzzy name search, exact name, type, attribute, level, atk, def, archetype, and race. When using num or offset, both must be provided together.
| Param | Type | Description |
|---|---|---|
| atk | integer | Attack value. |
| def | integer | Defense value. |
| num | integer | Number of results per page. Must be used together with offset. |
| name | string | Exact name of the card. |
| race | string | Card race or spell/trap type (e.g. 'Dragon', 'Spellcaster', 'Continuous', 'Quick-Play'). |
| type | string | Card type (e.g. 'Normal Monster', 'Spell Card', 'Effect Monster', 'Fusion Monster'). |
| fname | string | Fuzzy name search keyword (e.g. 'Blue-Eyes'). |
| level | integer | Card level or rank. |
| offset | integer | Pagination offset. Must be used together with num. |
| archetype | string | Card archetype (e.g. 'Blue-Eyes', 'Dark Magician'). |
| attribute | string | Card attribute (e.g. 'LIGHT', 'DARK', 'FIRE', 'WATER', 'EARTH', 'WIND', 'DIVINE'). |
{
"type": "object",
"fields": {
"data": "array of card objects with id, name, type, desc, race, atk, def, level, attribute, archetype, card_images, card_prices, card_sets",
"meta": "object with pagination info including total_rows, current_rows, rows_remaining, total_pages, pages_remaining, next_page, next_page_offset"
},
"sample": {
"data": {
"data": [
{
"id": 64202399,
"atk": 2500,
"def": 2500,
"desc": "If this card is Special Summoned...",
"name": "Blue-Eyes Abyss Dragon",
"race": "Dragon",
"type": "Effect Monster",
"level": 8,
"archetype": "Blue-Eyes",
"attribute": "LIGHT",
"card_images": [
{
"id": 64202399,
"image_url": "https://images.ygoprodeck.com/images/cards/64202399.jpg"
}
],
"card_prices": [
{
"tcgplayer_price": "0.09"
}
]
}
],
"meta": {
"total_rows": 20,
"total_pages": 4,
"current_rows": 5,
"rows_remaining": 15,
"pages_remaining": 3,
"next_page_offset": 5
}
},
"status": "success"
}
}About the ygoprodeck.com API
The YGOProDeck API provides access to the full Yu-Gi-Oh! card catalog across 3 endpoints, returning fields like attack, defense, level, archetype, card images, prices, and set memberships. The get_cards endpoint supports filtering by type, race, attribute, ATK/DEF values, and fuzzy name search, while get_card_details returns a complete profile for any single card by ID or exact name.
Card Search and Filtering
The get_cards endpoint accepts up to eight filter parameters simultaneously. You can narrow results by type (e.g. Fusion Monster, Spell Card), race (e.g. Dragon, Continuous), attribute, level, atk, and def. The fname parameter performs a fuzzy name search — useful when you know part of a card name like Blue-Eyes — while name requires an exact match. Pagination is supported via num and offset, which must always be supplied together; the response meta object exposes total_rows, pages_remaining, and a next_page URL.
Single Card Details
get_card_details accepts either a numeric id (e.g. 89631139) or an exact card name. It returns the full card record: id, name, type, desc (the card's full effect or flavor text), race, atk, def, level, archetype, and attribute. At least one of those two parameters must be provided; the endpoint returns a single card object rather than a paginated list.
Full Catalog Browsing
list_all_cards pages through the entire YGOProDeck database in alphabetical order. Each card object in the data array includes card_images (an array of image URLs), card_prices (price data across several marketplaces), and card_sets (every set the card has been printed in). Pagination is controlled by limit and offset, and the meta object returns the same pagination fields as get_cards. This endpoint is the practical choice for syncing a local card database or building card-browsing UI.
- Build a deck-builder app that filters cards by type, attribute, and level using
get_cards. - Display card price comparisons across marketplaces using the
card_pricesfield fromlist_all_cards. - Power an autocomplete search field with fuzzy name lookups via the
fnameparameter. - Render card art in a collection tracker using
card_imagesURLs returned per card. - Look up rulings and effect text by fetching a card's
descfield viaget_card_details. - Identify every set a card has been printed in using the
card_setsarray for reprint tracking. - Sync a local database of all Yu-Gi-Oh! cards using paginated requests to
list_all_cards.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does YGOProDeck have an official developer API?+
What does `get_cards` return beyond basic stats?+
card_images (an array of image URLs for different card arts), card_prices (marketplace price data), card_sets (all print runs the card appears in), and archetype in addition to the core stats: atk, def, level, type, race, and attribute.What happens if I supply only `num` without `offset` to `get_cards`?+
num and offset pagination parameters must be provided together. Supplying one without the other is not supported and will produce unexpected results. Always pair them — for example, num=20&offset=0 for the first page.Can I search for cards by ban list status or card rulings?+
Does `get_card_details` return the same image and price fields as the list endpoints?+
get_card_details returns the core card fields — id, name, type, desc, race, atk, def, level, archetype, and attribute — but does not include card_images, card_prices, or card_sets. Use list_all_cards or get_cards when you need those fields. You can fork this API on Parse and revise get_card_details to include them.