Skip to content
Crypto-only, prepaid. Top up a balance and we draw from it monthly — nothing is ever charged automatically.
tcggraph

Konami · since 1999

Yu-Gi-Oh! Trading Card Game API

ATK, DEF, level, rank, link rating, pendulum scale, attribute and archetype, plus synchronised TCG, OCG and Master Duel banlists.

13,720
Cards
34,100
Printings
604
Sets
9
Languages

Overview

What the Yu-Gi-Oh! dataset covers

Yu-Gi-Oh! remains one of the Big Three and is resurgent in 2026. TCGGraph structures the full card pool — Normal, Effect, Ritual, Fusion, Synchro, Xyz, Pendulum and Link monsters plus Spells and Traps — with ATK, DEF, level, rank, link rating and markers, pendulum scales, attributes, monster types and archetype membership, alongside continuously updated TCG, OCG, Master Duel and Speed Duel Forbidden & Limited lists.

Sourced from YGOPRODeck, Konami card database and TCGplayer.

Formats

  • Advanced
  • Traditional
  • OCG
  • Master Duel
  • Speed Duel
  • GOAT

Price sources

  • TCGplayer
  • Cardmarket
  • eBay sold
REST
curl -G "https://api.tcggraph.com/v1/cards" \
  -d game=yugioh \
  -d limit=5 \
  -H "Authorization: Bearer $TCGGRAPH_KEY"
GraphQL
{
  cards(
    game: YUGIOH
    filter: { attribute: LIGHT, atk: { gte: 3000 } }
  ) {
    nodes {
      name
      yugioh { atk def level race banlist { tcg } }
    }
  }
}

Schema

Yu-Gi-Oh!-specific fields

Every card carries the shared core fields. These live under gameData in REST, and under the typed yugioh field in GraphQL.

FieldTypeDescription
frameTypeEnumnormal, effect, ritual, fusion, synchro, xyz, link, pendulum, spell or trap.
attributeEnumDARK, LIGHT, EARTH, WATER, FIRE, WIND or DIVINE.
raceStringMonster type, or spell and trap sub-category.
atkIntAttack points. -1 represents ?.
defIntDefense points. Null for Link monsters.
levelIntLevel or Rank.
linkRatingIntLink rating for Link monsters.
linkMarkers[String]Arrow directions.
pendulumScaleIntBlue and red pendulum scale value.
archetypes[String]Archetype membership.
banlistObjectStatus per format: unlimited, semi_limited, limited or forbidden.

Plus 21 core fields shared by every game — see the full reference.

Live data

Yu-Gi-Oh! cards in the public dataset

Real records returned by the API right now, sorted by market value, with both the American and the European quote.

CardSetNumberRarityTCGplayerCardmarket
Exodia the Forbidden One25th Anniversary Tin: Dueling HeroesTN23-EN002Quarter Century Secret Rare$2.34€2.00
Black Luster SoldierDuel Terminal 7aDT07-EN030Duel Terminal Rare Parallel Rare$1.09€1.10
Obelisk the Tormentor2016 Mega-TinsCT13-EN002Secret Rare$0.61€0.61
Castle of Dark IllusionsMetal RaidersMRD-073Common$0.46€0.37
Stardust DragonCollectible Tins 2008 Wave 1CT05-EN001Secret Rare$0.43€0.45
Dark Magician2016 Mega-TinsCT13-EN003Ultra Rare$0.33€0.30
Royal Magical LibraryDark Revelation Volume 1DR1-EN129Common$0.32€0.25
Red-Eyes Black Dragon25th Anniversary Tin: Dueling MirrorsMP24-EN054Prismatic Secret Rare$0.21€0.19

The European market for Yu-Gi-Oh!

Konami prints separate European editions with their own set codes, and the 1st Edition versus Unlimited split does not map onto the American one. European cards also carry an eye-of-Anubis holofoil rather than the American square, which is why matching by name alone produces the wrong price.

Traded on Cardmarket in German, French, Italian, Spanish, Portuguese beyond English. How European pricing works.

Sets

Notable Yu-Gi-Oh! sets

  • LOB

    Legend of Blue Eyes White Dragon

    126 cards · 2002-03-08

  • RA04

    Quarter Century Bonanza

    300 cards · 2025-05-15

  • BUPR

    Burst Protocol

    100 cards · 2026-01-16

  • RA05

    Rarity Collection V

    300 cards · 2026-04-10

Modelling

Working with Yu-Gi-Oh! data

The decisions that catch people out when they first integrate Yu-Gi-Oh!. Each of these is a bug we have watched somebody ship.

  • The passcode is the real identifier

    The eight-digit passcode printed in the bottom corner is stable across every reprint and every region, which makes it the only sane key for a deck list. Card names change between OCG and TCG and occasionally get errata'd outright; the passcode does not move.

  • Monster subtypes change which fields exist

    Link monsters have link rating and arrows but no defence. Xyz monsters have rank instead of level. Pendulum monsters carry two scale values and a second text box. Reading level on a Link monster returns null, not zero, and treating that as a zero will quietly corrupt any curve calculation.

  • Two banlists, on different schedules

    The TCG and OCG forbidden and limited lists are maintained separately and updated at different times, so a card can be legal at three copies in one region and forbidden in the other. Query legality with a region, and never assume one list applies globally.

  • Reprints are relentless

    A popular staple can have forty printings across structure decks, tins and side sets, with a two-hundred-fold price spread between the first printing and the latest common. Group by passcode for gameplay, and keep the printings separate for anything touching money.

Recipes

Common Yu-Gi-Oh! queries

Three requests that cover most of what applications in this game actually ask for.

Deck-legal staples by passcode

Deck importers receive passcodes from YDK files and need the current card data.

Batch lookups cost 1 credit per card, and a single call avoids the round trips.

GET /v1/cards
  ?game=yugioh
  &passcode=14558127,23434538,10045474
  &region=tcg

High-attack LIGHT monsters that are still legal

Combine a stat threshold, an attribute and the current banlist in one query.

banlistStatus resolves against the live list, so it stays correct after each update.

GET /v1/cards
  ?game=yugioh
  &attribute=LIGHT
  &minAtk=3000
  &banlistStatus=unlimited,semi-limited
  &region=tcg

Every printing of one card, cheapest first

Singles buyers want the least expensive copy, not the most famous one.

Passcode returns every printing; the sort surfaces the budget option first.

GET /v1/cards
  ?game=yugioh
  &passcode=89631139
  &include=prices,set
  &sort=prices.market:asc

Glossary

Yu-Gi-Oh! terms, and the fields that hold them

What players call a thing on the left, what you query on the right.

TermFieldNotes
Passcodeyugioh.passcodeEight-digit code, stable across reprints and regions. The identifier to key on.
Level / Rankyugioh.levelRank is returned in the same field for Xyz monsters; check monsterType.
Link ratingyugioh.linkRatingLink monsters only. Arrows are a separate array of eight compass directions.
Pendulum scaleyugioh.scalePresent only on Pendulum monsters. Left and right scales are always equal.
Attributeyugioh.attributeDARK, LIGHT, EARTH, WATER, FIRE, WIND or DIVINE.
Archetypeyugioh.archetypeOfficial archetype membership, which is not always inferable from the name.
Banlist statuslegalities.tcgforbidden, limited, semi-limited or unlimited, per region.

FAQ

Yu-Gi-Oh! API questions

Anything not covered here, email hello@tcggraph.com and a human who knows Yu-Gi-Oh! answers.

Also available

Add another game without another integration

Your Yu-Gi-Oh! key already works for every other game in the catalog. Change the YUGIOH enum and the rest of your code stays as it is.