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
curl -G "https://api.tcggraph.com/v1/cards" \
-d game=yugioh \
-d limit=5 \
-H "Authorization: Bearer $TCGGRAPH_KEY"{
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.
| Field | Type | Description |
|---|---|---|
| frameType | Enum | normal, effect, ritual, fusion, synchro, xyz, link, pendulum, spell or trap. |
| attribute | Enum | DARK, LIGHT, EARTH, WATER, FIRE, WIND or DIVINE. |
| race | String | Monster type, or spell and trap sub-category. |
| atk | Int | Attack points. -1 represents ?. |
| def | Int | Defense points. Null for Link monsters. |
| level | Int | Level or Rank. |
| linkRating | Int | Link rating for Link monsters. |
| linkMarkers | [String] | Arrow directions. |
| pendulumScale | Int | Blue and red pendulum scale value. |
| archetypes | [String] | Archetype membership. |
| banlist | Object | Status 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.
| Card | Set | Number | Rarity | TCGplayer | Cardmarket |
|---|---|---|---|---|---|
| Gold Sarcophagus | Pharaoh Tour 2007 promotional cards | PT03-EN001 | Ultra Rare | — | €8,000 |
| Crush Card Virus | Shonen Jump Championship 2007 Prize Card A | SJCS-EN004 | Ultra Rare | — | €3,873 |
| Dark End Dragon | Shonen Jump Championship 2007 Prize Card A | SJCS-EN007 | Ultra Rare | — | €2,611 |
| Morphing Jar | Tournament Pack: 2nd Season | TP2-001 | Ultra Rare | — | €2,235 |
| Mechanicalchaser | Tournament Pack: 1st Season | TP1-E001 | Ultra Rare | — | €1,464 |
| Elemental HERO Flame Wingman | Mattel Action Figure promotional cards: Series 3 | MF03-EN006 | Normal Parallel Rare | — | €1,000 |
| Blue-Eyes White Dragon | Yu-Gi-Oh! Dark Duel Stories promotional cards | DDS-001 | Prismatic Secret Rare | — | €994.38 |
| Elemental HERO Bubbleman | Mattel Action Figure promotional cards: Series 3 | MF03-EN007 | Normal 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
®ion=tcgHigh-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
®ion=tcgEvery 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:ascGlossary
Yu-Gi-Oh! terms, and the fields that hold them
What players call a thing on the left, what you query on the right.
| Term | Field | Notes |
|---|---|---|
| Passcode | yugioh.passcode | Eight-digit code, stable across reprints and regions. The identifier to key on. |
| Level / Rank | yugioh.level | Rank is returned in the same field for Xyz monsters; check monsterType. |
| Link rating | yugioh.linkRating | Link monsters only. Arrows are a separate array of eight compass directions. |
| Pendulum scale | yugioh.scale | Present only on Pendulum monsters. Left and right scales are always equal. |
| Attribute | yugioh.attribute | DARK, LIGHT, EARTH, WATER, FIRE, WIND or DIVINE. |
| Archetype | yugioh.archetype | Official archetype membership, which is not always inferable from the name. |
| Banlist status | legalities.tcg | forbidden, 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.