Skip to content
Prepaid, no subscription trap. Top up a balance and we draw the monthly fee from it.
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.

14,010
Cards
38,435
Printings
661
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.

Forbidden & Limited status is carried per format — TCG, OCG, Master Duel and Speed Duel — instead of being flattened into one ban flag that is wrong for three of them.

Formats

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

Price sources

  • Cardmarket
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 14 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
Gold SarcophagusPharaoh Tour 2007 promotional cardsPT03-EN001Ultra Rare€8,000
Crush Card VirusShonen Jump Championship 2007 Prize Card ASJCS-EN004Ultra Rare€3,873
Dark End DragonShonen Jump Championship 2007 Prize Card ASJCS-EN007Ultra Rare€2,611
Morphing JarTournament Pack: 2nd SeasonTP2-001Ultra Rare€2,235
MechanicalchaserTournament Pack: 1st SeasonTP1-E001Ultra Rare€1,464
Elemental HERO Flame WingmanMattel Action Figure promotional cards: Series 3MF03-EN006Normal Parallel Rare€1,000
Blue-Eyes White DragonYu-Gi-Oh! Dark Duel Stories promotional cardsDDS-001Prismatic Secret Rare€994.38
Elemental HERO BubblemanMattel Action Figure promotional cards: Series 3MF03-EN007Normal Parallel Rare€988.90

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.