# Yu-Gi-Oh Card Database & Prices - YGOProDeck API Wrapper (`jungle_synthesizer/ygoprodeck-yugioh-cards-api-wrapper`) Actor

A complete Yu-Gi-Oh card database pulled from YGOProDeck: search by type, race, attribute, level, or archetype; fetch by exact name; walk a set or banlist; or grab the full ~13k-card corpus. Includes rules text, every printing, banlist status, and live marketplace prices.

- **URL**: https://apify.com/jungle\_synthesizer/ygoprodeck-yugioh-cards-api-wrapper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Yu-Gi-Oh Card Database & Prices — YGOProDeck API Wrapper

Pull structured Yu-Gi-Oh card data from [YGOProDeck](https://ygoprodeck.com), the community card database behind most Yu-Gi-Oh deck builders and format trackers. Returns card stats, full rules text, every printing, TCG/OCG/Goat banlist status, and live marketplace prices for any card in the roughly 14,600-card catalog.

***

### YGOProDeck Card Database Features

- Searches by card type, race, attribute, or level — in any combination
- Fetches specific cards by exact name, or walks an entire archetype, set, or banlist
- Pulls the full card corpus in one run when you need the whole catalog, not a slice
- Returns rules text, Pendulum scale, Link rating and arrows, and format legality in the same record
- Includes live prices from Cardmarket, TCGPlayer, eBay, Amazon, and CoolStuffInc per card — no separate price lookup needed
- Lists every printing of a card, with set name, rarity, and set-specific price

***

### Who Uses Yu-Gi-Oh Card Data?

- **Deck-builder app developers** — back a card search or autocomplete feature without maintaining your own catalog
- **Format and banlist trackers** — pull current TCG, OCG, and Goat ban status in one pass instead of three separate lookups
- **Price-tracking tools** — compare Cardmarket, TCGPlayer, eBay, Amazon, and CoolStuffInc prices for a card or a whole archetype
- **Collectors and sellers** — check every printing and rarity of a card before listing or buying
- **Master Duel and EDOPro community tools** — ship rules text and card stats alongside your own content, instead of hand-copying them

***

### How the YGOProDeck Wrapper Works

1. Pick a mode — filter search, exact name, archetype, set, banlist, or a full corpus dump.
2. Add the filters that mode supports (card type, race, attribute, level for search; one or more names, archetypes, sets, or banlist formats for the rest).
3. The actor queries YGOProDeck and returns one row per matching card, deduplicated across any overlapping selections.
4. Results stop at your `maxItems` cap, or run unbounded for a full-corpus pull.

***

### Input

```json
{
  "mode": "search",
  "cardTypes": ["Effect Monster"],
  "attributes": ["DARK"],
  "level": 7,
  "includePrices": true,
  "includeAllPrintings": true,
  "maxItems": 50
}
```

| Field                 | Type    | Default   | Description                                                                   |
|-----------------------|---------|-----------|-------------------------------------------------------------------------------|
| `mode`                | String  | `search`  | `search`, `by_name`, `by_archetype`, `by_set`, `by_banlist`, or `full_dump`   |
| `cardTypes`           | Array   | `[]`      | Filter Search mode: one or more card types (union)                            |
| `races`               | Array   | `[]`      | Filter Search mode: one or more monster races or Spell/Trap sub-types (union) |
| `attributes`          | Array   | `[]`      | Filter Search mode: one or more monster attributes (union)                    |
| `level`               | Integer | `0`       | Filter Search mode: monster level/rank (0 = ignore)                           |
| `archetypes`          | Array   | —         | By Archetype mode: one or more archetype names                                |
| `cardName`            | Array   | —         | By Name mode: one or more exact card names                                    |
| `setNames`            | Array   | —         | By Set mode: one or more full set names                                       |
| `banlists`            | Array   | `["tcg"]` | By Banlist mode: one or more of `tcg`, `ocg`, `goat`                          |
| `includePrices`       | Boolean | `true`    | Include Cardmarket/TCGPlayer/eBay/Amazon/CoolStuffInc prices                  |
| `includeAllPrintings` | Boolean | `true`    | Include every printing (set, rarity, set price) per card                      |
| `maxItems`            | Integer | `10`      | Maximum cards to return. `0` = unlimited — use with Full Corpus Dump          |

By Name example — fetch two specific cards:

```json
{
  "mode": "by_name",
  "cardName": ["Blue-Eyes White Dragon", "Dark Magician"],
  "maxItems": 10
}
```

By Banlist example — walk the current TCG Forbidden/Limited list:

```json
{
  "mode": "by_banlist",
  "banlists": ["tcg"],
  "maxItems": 0
}
```

***

### YGOProDeck Wrapper Output Fields

```json
{
  "id": 89631139,
  "name": "Blue-Eyes White Dragon",
  "type": "Normal Monster",
  "humanReadableCardType": "Normal Monster",
  "frameType": "normal",
  "desc": "This legendary dragon is a powerful engine of destruction...",
  "race": "Dragon",
  "attribute": "LIGHT",
  "atk": 3000,
  "def": 2500,
  "level": 8,
  "archetype": "Blue-Eyes",
  "banlist_info": null,
  "card_prices": [
    { "cardmarket_price": "1.25", "tcgplayer_price": "2.10", "ebay_price": "4.99", "amazon_price": "6.49", "coolstuffinc_price": "1.99" }
  ],
  "card_sets": [
    { "set_name": "Legend of Blue Eyes White Dragon", "set_code": "LOB-001", "set_rarity": "Ultra Rare", "set_rarity_code": "(UR)", "set_price": "24.99" }
  ],
  "image_url": "https://images.ygoprodeck.com/images/cards/89631139.jpg",
  "ygoprodeck_url": "https://ygoprodeck.com/card/blue-eyes-white-dragon-123"
}
```

| Field                   | Type   | Description                                                              |
|-------------------------|--------|--------------------------------------------------------------------------|
| `id`                    | Number | YGOProDeck card ID                                                       |
| `name`                  | String | Card name                                                                |
| `typeline`              | Array  | Full type line (e.g. `["Dragon", "Pendulum", "Effect"]`)                 |
| `type`                  | String | Card type (e.g. `Effect Monster`, `Spell Card`)                          |
| `humanReadableCardType` | String | Human-readable card type                                                 |
| `frameType`             | String | Frame type — effect, xyz, synchro, link, normal, spell, trap, and others |
| `desc`                  | String | Card rules text                                                          |
| `race`                  | String | Race (monster) or sub-type (Spell/Trap)                                  |
| `attribute`             | String | Monster attribute — DARK, LIGHT, FIRE, WATER, EARTH, WIND, DIVINE        |
| `atk` / `def`           | Number | Attack / Defense                                                         |
| `level`                 | Number | Level or Rank                                                            |
| `scale`                 | Number | Pendulum scale — Pendulum monsters only                                  |
| `linkval`               | Number | Link rating — Link monsters only                                         |
| `linkmarkers`           | Array  | Link arrow directions — Link monsters only                               |
| `archetype`             | String | Archetype                                                                |
| `banlist_info`          | Object | TCG / OCG / Goat ban status                                              |
| `card_prices`           | Array  | Cardmarket, TCGPlayer, eBay, Amazon, and CoolStuffInc prices             |
| `card_sets`             | Array  | Every printing — set name, set code, rarity, set price                   |
| `image_url`             | String | Card image URL                                                           |
| `ygoprodeck_url`        | String | Canonical YGOProDeck card page                                           |

***

### FAQ

#### How do I scrape Yu-Gi-Oh card data from YGOProDeck?

Run the YGOProDeck wrapper with a mode and your filters — no account or API key required. Pick `search` for stat-based filtering, `by_name` for specific cards, or `full_dump` to pull the whole catalog in one run.

#### What data can I get from YGOProDeck?

Card stats, rules text, archetype, every printing with rarity, TCG/OCG/Goat banlist status, and live prices from five marketplaces. If a field exists in YGOProDeck's own card data, this actor returns it.

#### Can I filter by attribute, type, or level at the same time?

Yes. `cardTypes`, `races`, `attributes`, and `level` combine in one Filter Search query — set the ones you need and leave the rest blank.

#### How much does the YGOProDeck wrapper cost to run?

Pricing is per record returned, at a low per-record rate reflecting a clean, unauthenticated source — check the Pricing tab on this actor's Apify page for the current rate.

#### Do I need a YGOProDeck account or API key?

No. YGOProDeck's card data is open and unauthenticated, and this actor needs nothing from you beyond your filter choices.

***

### Need More Features?

Need another mode, a filter this actor doesn't expose yet, or a different source entirely? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use the YGOProDeck Wrapper?

- **Floor-priced** — a public, unauthenticated catalog with near-zero compute cost, priced accordingly.
- **One row, five marketplaces** — Cardmarket, TCGPlayer, eBay, Amazon, and CoolStuffInc prices arrive on the same record as the card's stats, so you're not stitching together four separate lookups.
- **Six ways in** — search by stats, fetch by name, or walk an archetype, set, or banlist. Pick whichever matches how you already think about the card pool.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `mode` (type: `string`):

Filter search, by name, by archetype, by set, by banlist, or full corpus dump.

## `cardTypes` (type: `array`):

When mode is Filter Search, one or more card types to match (union).

## `races` (type: `array`):

When mode is Filter Search, one or more monster races (or Spell/Trap sub-types) to match (union).

## `attributes` (type: `array`):

When mode is Filter Search, one or more monster attributes to match (union).

## `level` (type: `integer`):

When mode is Filter Search, monster level/rank filter (0 = ignore).

## `archetypes` (type: `array`):

When mode is By Archetype, one or more archetype names (e.g. 'Blue-Eyes', 'Branded', 'Sky Striker').

## `cardName` (type: `array`):

When mode is By Name, list of card names (exact match).

## `setNames` (type: `array`):

When mode is By Set, one or more full set names (e.g. 'Metal Raiders').

## `banlists` (type: `array`):

When mode is By Banlist, which format(s) to walk.

## `includePrices` (type: `boolean`):

Include cardmarket / tcgplayer / ebay / amazon / coolstuffinc prices.

## `includeAllPrintings` (type: `boolean`):

Include every printing (set / rarity / set price) for each card.

## `maxItems` (type: `integer`):

Maximum cards to return. 0 = unlimited (use with Full Corpus Dump).

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "mode": "search",
  "cardTypes": [],
  "races": [],
  "attributes": [],
  "level": 0,
  "archetypes": [
    "Blue-Eyes"
  ],
  "cardName": [
    "Dark Magician"
  ],
  "setNames": [
    "Metal Raiders"
  ],
  "banlists": [
    "tcg"
  ],
  "includePrices": true,
  "includeAllPrintings": true,
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "mode": "search",
    "cardTypes": [],
    "races": [],
    "attributes": [],
    "level": 0,
    "archetypes": [
        "Blue-Eyes"
    ],
    "cardName": [
        "Dark Magician"
    ],
    "setNames": [
        "Metal Raiders"
    ],
    "banlists": [
        "tcg"
    ],
    "includePrices": true,
    "includeAllPrintings": true,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/ygoprodeck-yugioh-cards-api-wrapper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "mode": "search",
    "cardTypes": [],
    "races": [],
    "attributes": [],
    "level": 0,
    "archetypes": ["Blue-Eyes"],
    "cardName": ["Dark Magician"],
    "setNames": ["Metal Raiders"],
    "banlists": ["tcg"],
    "includePrices": True,
    "includeAllPrintings": True,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/ygoprodeck-yugioh-cards-api-wrapper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "mode": "search",
  "cardTypes": [],
  "races": [],
  "attributes": [],
  "level": 0,
  "archetypes": [
    "Blue-Eyes"
  ],
  "cardName": [
    "Dark Magician"
  ],
  "setNames": [
    "Metal Raiders"
  ],
  "banlists": [
    "tcg"
  ],
  "includePrices": true,
  "includeAllPrintings": true,
  "maxItems": 10
}' |
apify call jungle_synthesizer/ygoprodeck-yugioh-cards-api-wrapper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/ygoprodeck-yugioh-cards-api-wrapper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/MqErIZahRGcBBnEdb/builds/GJUDMq5FLeawz2udb/openapi.json
