Discover/YGOProDeck API
live

YGOProDeck APIygoprodeck.com

Access Yu-Gi-Oh! card stats, effects, archetypes, pricing, and images from the YGOProDeck database via 3 structured endpoints.

Endpoint health
verified 5d ago
get_card_details
list_all_cards
get_cards
3/3 passing latest checkself-healing
Endpoints
3
Updated
22d ago

What is the YGOProDeck API?

The YGOProDeck API exposes 3 endpoints for querying the full Yu-Gi-Oh! card database, returning per-card fields including attack, defense, level, race, archetype, card images, set appearances, and market prices. Use get_cards to filter by type, attribute, or fuzzy name; get_card_details to retrieve a single card by ID or exact name; or list_all_cards to paginate through the entire catalog in alphabetical order.

Try it
Attack value.
Defense value.
Number of results per page. Must be used together with offset.
Exact name of the card.
Card race or spell/trap type (e.g. 'Dragon', 'Spellcaster', 'Continuous', 'Quick-Play').
Card type (e.g. 'Normal Monster', 'Spell Card', 'Effect Monster', 'Fusion Monster').
Fuzzy name search keyword (e.g. 'Blue-Eyes').
Card level or rank.
Pagination offset. Must be used together with num.
Card archetype (e.g. 'Blue-Eyes', 'Dark Magician').
Card attribute.
api.parse.bot/scraper/44e9e31c-370a-41c1-9755-ba3a36c812ab/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace ygoprodeck-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: YGOProDeck SDK — search, filter, and look up Yu-Gi-Oh! cards."""
from parse_apis.ygoprodeck_card_api import YGOProDeck, Attribute, CardNotFound

client = YGOProDeck()

# Search for Dragon-type cards in the Blue-Eyes archetype
for card in client.cards.search(archetype="Blue-Eyes", race="Dragon", num=5, offset=0, limit=5):
    print(card.name, card.atk, card.def_, card.level)

# Drill down: get detailed info on one specific card by ID
try:
    detail = client.cards.get(id="89631139")
    print(detail.name, detail.attribute, detail.race, detail.desc[:80])
    for price in detail.card_prices:
        print(price.tcgplayer_price, price.cardmarket_price)
    for img in detail.card_images:
        print(img.image_url)
except CardNotFound as exc:
    print(f"Card not found: {exc}")

# List all cards alphabetically (first page)
for card in client.cards.list(offset=0, limit=3):
    print(card.name, card.type, card.race)

# Search by attribute enum — LIGHT monsters
first_light = client.cards.search(attribute=Attribute.LIGHT, num=3, offset=0, limit=1).first()
if first_light:
    print(first_light.name, first_light.attribute)
    if first_light.card_sets:
        print(first_light.card_sets[0].set_name, first_light.card_sets[0].set_rarity)

print("exercised: cards.search / cards.get / cards.list + Attribute enum + CardNotFound error")
All endpoints · 3 totalmissing one? ·

Search for Yu-Gi-Oh! cards using various filters. Supports fuzzy name search, exact name, type, attribute, level, atk, def, archetype, and race. Returns paginated results with metadata. When using num or offset, both must be provided together.

Input
ParamTypeDescription
atkintegerAttack value.
defintegerDefense value.
numintegerNumber of results per page. Must be used together with offset.
namestringExact name of the card.
racestringCard race or spell/trap type (e.g. 'Dragon', 'Spellcaster', 'Continuous', 'Quick-Play').
typestringCard type (e.g. 'Normal Monster', 'Spell Card', 'Effect Monster', 'Fusion Monster').
fnamestringFuzzy name search keyword (e.g. 'Blue-Eyes').
levelintegerCard level or rank.
offsetintegerPagination offset. Must be used together with num.
archetypestringCard archetype (e.g. 'Blue-Eyes', 'Dark Magician').
attributestringCard attribute.
Response
{
  "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_sets": [
            {
              "set_code": "RA01-EN016",
              "set_name": "25th Anniversary Rarity Collection",
              "set_price": "0",
              "set_rarity": "Super Rare",
              "set_rarity_code": "(SR)"
            }
          ],
          "frameType": "effect",
          "card_images": [
            {
              "id": 64202399,
              "image_url": "https://images.ygoprodeck.com/images/cards/64202399.jpg",
              "image_url_small": "https://images.ygoprodeck.com/images/cards_small/64202399.jpg",
              "image_url_cropped": "https://images.ygoprodeck.com/images/cards_cropped/64202399.jpg"
            }
          ],
          "card_prices": [
            {
              "ebay_price": "1.25",
              "amazon_price": "0.50",
              "tcgplayer_price": "0.10",
              "cardmarket_price": "0.05",
              "coolstuffinc_price": "1.49"
            }
          ]
        }
      ],
      "meta": {
        "next_page": "https://db.ygoprodeck.com/api/v7/cardinfo.php?fname=Blue-Eyes&num=5&offset=5",
        "total_rows": 20,
        "total_pages": 4,
        "current_rows": 5,
        "rows_remaining": 15,
        "pages_remaining": 3,
        "next_page_offset": 5
      }
    },
    "status": "success"
  }
}

About the YGOProDeck API

Card Search and Filtering

The get_cards endpoint accepts up to eight filter parameters simultaneously: fname for partial name matching, name for exact match, type (e.g. 'Effect Monster', 'Spell Card'), race (e.g. 'Dragon', 'Quick-Play'), attribute, level, atk, and def. Results are paginated — when using num (results per page) and offset, both parameters must be supplied together. The meta object in the response includes total_rows, total_pages, rows_remaining, and a next_page URL for cursor-based navigation.

Card Detail Fields

Both get_cards and get_card_details return full card objects. Each object carries id, name, type, desc (the card's effect or flavor text), race, atk, def, level, attribute, archetype, card_images (image URLs), card_prices (market price data across vendors), and card_sets (every set the card has appeared in with set code and rarity). get_card_details requires at least one of id or name; supplying the numeric card ID such as '89631139' is the most precise lookup.

Full Catalog Pagination

The list_all_cards endpoint returns every card in the database ordered alphabetically. Use limit and offset together to walk through pages. The meta block mirrors the structure from get_cards, giving current_rows, pages_remaining, and a next_page field so you can build a complete local mirror of the catalog without additional filtering.

Reliability & maintenanceVerified

The YGOProDeck API is a managed, monitored endpoint for ygoprodeck.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ygoprodeck.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official ygoprodeck.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a deck-building tool that filters cards by type, race, and atk thresholds using get_cards.
  • Display card price history and vendor comparisons by reading card_prices from get_card_details.
  • Create a card set completion tracker using the card_sets field to list every set a card appears in.
  • Power an autocomplete search box with fuzzy name matching via the fname parameter on get_cards.
  • Sync a local card database nightly by paginating through list_all_cards with limit and offset.
  • Render card galleries in a fan site using image URLs from the card_images field.
  • Build an archetype browser by filtering get_cards on the archetype parameter.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does YGOProDeck have an official developer API?+
Yes. YGOProDeck publishes a public REST API documented at https://ygoprodeck.com/api-guide/. This Parse API surfaces that same card data through a consistent interface.
What does `get_card_details` return that `get_cards` does not?+
Both endpoints return the same card object shape, including card_images, card_prices, and card_sets. The difference is scope: get_card_details is a targeted single-card lookup by id or exact name, while get_cards applies multi-field filters and returns a paginated array. Use get_card_details when you already know the card ID or exact name and want the cleanest response.
Is there a limit on how many filter parameters I can combine in `get_cards`?+
All eight filter parameters (fname, name, type, race, attribute, level, atk, def) can be combined in a single request. One pairing quirk applies specifically to pagination: num and offset must always be provided together — supplying one without the other will not return paginated results correctly.
Does the API return card rulings or official errata text?+
Not currently. The desc field contains the printed card effect or flavor text as it appears on the card, but official rulings, judge errata, and FAQ entries are not part of the response. You can fork this API on Parse and revise it to add an endpoint that fetches ruling data from a compatible source.
Does the API cover the full card history including cards from every region and language?+
Card data reflects the YGOProDeck database, which is primarily English-language. Localized card names, region-specific releases, and non-English card text are not exposed by any of the three endpoints. You can fork the API on Parse and revise it to map against localized data if your use case requires non-English card names or regional variants.
Page content last updated . Spec covers 3 endpoints from ygoprodeck.com.
Related APIs in EntertainmentSee all →
pokemontcg.io API
Search and retrieve detailed information about Pokémon Trading Card Game cards, including card stats, types, attacks, abilities, rarity, set information, images, and pricing data.
en.onepiece-cardgame.com API
Search and explore One Piece trading card data across all series, view detailed card information including stats, abilities, and artwork, and stay up to date with the latest news, events, and product releases from the official game site. Browse recommended deck strategies and discover upcoming tournaments and expansions.
onepiece.gg API
Access One Piece Trading Card Game deck lists and card statistics to discover popular competitive strategies and build optimized decks. Search through detailed deck information to compare card choices and improve your gameplay.
pkmncards.com API
Search and browse Pokémon trading card game cards with detailed metadata, high-quality images, and advanced filtering by set, Pokémon name, or card type. Filter across thousands of cards from different sets to find exactly what you're looking for.
tcgplayer.com API
Search for trading cards across all games and sets on TCGPlayer, and instantly access detailed pricing information by condition plus current seller listings with prices, shipping costs, and seller ratings. Compare card values and find the best deals from multiple sellers all in one place.
bazaardb.gg API
Search and retrieve comprehensive data about The Bazaar game cards, including items, skills, merchants, trainers, monsters, and events with full details like tiers, attributes, enchantments, and tooltips. Quickly find the specific card information you need to optimize your gameplay strategy and deck building.
pokemontcg.com API
Search and browse detailed information about Pokémon Trading Card Game cards and sets, including card types, rarities, and supertypes. Filter cards by set, rarity, and attributes to find exactly what you're looking for in the TCG database.
cardkingdom.com API
Search and browse Magic: The Gathering cards with real-time pricing and availability from Card Kingdom, including buylist prices and current deals. Find card details across all editions and filter by format to discover the best prices across the full catalog.