# Magic: The Gathering - Scryfall

> Search and look up Magic: The Gathering cards, sets, rulings, card symbols, and card catalogs through Scryfall's keyless public API. Search with Scryfall's full query syntax, fetch cards by name or id, parse mana costs, and grab downloadable bulk data. No account or API key required.

App · Gaming · 22 actions. Web page: https://docs.lodol.com/docs/integrations/scryfall

## Actions

### Autocomplete card names

Get up to 20 full card names that complete the given text, handy for building a card-name picker or validating input.

**Inputs**

- Partial name (`q`, text, required): The start of a card name to complete.
- Include extras (`include_extras`, true/false): Include tokens and other funny cards in the suggestions. Default: `false`.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      "Lightning Bolt",
      "Lightning Helix",
      "Lightning Strike"
    ],
    "object": "catalog",
    "total_values": 3
  }
}
```

### Get a bulk-data file

Get the details and download URL of one bulk-data file. Pick the file by name.

**Inputs**

- Bulk-data file (`id`, text, required): Pick a bulk-data file, or reference an id from a previous step.

**Outputs**

- `bulkData` (object)

**Example output**

```json
{
  "bulkData": {
    "download_uri": "https://data.scryfall.io/oracle-cards/oracle-cards.json",
    "id": "27bf3214-1271-490b-bdfe-c0be6c23d02e",
    "name": "Oracle Cards",
    "object": "bulk_data",
    "size": 145293512,
    "type": "oracle_cards",
    "updated_at": "2026-08-12T21:01:59.452+00:00"
  }
}
```

### Get a card migration

Get one card migration by its Scryfall id (a UUID).

**Inputs**

- Migration ID (`id`, text, required): The migration's Scryfall id (a UUID).

**Outputs**

- `migration` (object)

**Example output**

```json
{
  "migration": {
    "id": "4f1387c2-5398-40b3-8f95-e934958001b1",
    "migration_strategy": "merge",
    "new_scryfall_id": "d2b59872-0e11-41c3-9858-3e2dd5a1c3c3",
    "note": "Duplicate oracle card entry",
    "object": "migration",
    "old_scryfall_id": "c927d327-ac57-4b6f-a2e9-2e407e26a4a7",
    "performed_at": "2026-07-23"
  }
}
```

### Get a catalog

Get one of Scryfall's catalogs: full lists of values that appear across all Magic cards, such as every creature type, keyword ability, or artist name. Great for populating pickers or validating input.

**Inputs**

- Catalog (`name`, text, required): Which catalog to fetch. One of: `card-names` (Card names), `artist-names` (Artist names), `word-bank` (Word bank (every word on a card)), `supertypes`, `card-types` (Card types), `creature-types` (Creature types), `planeswalker-types` (Planeswalker types), `land-types` (Land types), `artifact-types` (Artifact types), `enchantment-types` (Enchantment types), and 9 more.

**Outputs**

- `catalog` (object)

**Example output**

```json
{
  "catalog": {
    "data": [
      "Advisor",
      "Aetherborn",
      "Ally"
    ],
    "object": "catalog",
    "total_values": 3,
    "uri": "https://api.scryfall.com/catalog/creature-types"
  }
}
```

### Get a random card

Return a single random card. An optional search query narrows the pool (e.g. 't:goblin' for a random Goblin).

**Inputs**

- Filter query (`q`, text): Optional Scryfall search query to draw the random card from.

**Outputs**

- `card` (object)

**Example output**

```json
{
  "card": {
    "artist": "Christopher Rush",
    "cmc": 1.0,
    "collector_number": "161",
    "color_identity": [
      "R"
    ],
    "colors": [
      "R"
    ],
    "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
    "legalities": {
      "commander": "legal",
      "legacy": "legal",
      "modern": "legal"
    },
    "mana_cost": "{R}",
    "name": "Lightning Bolt",
    "object": "card",
    "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
    "oracle_text": "Lightning Bolt deals 3 damage to any target.",
    "prices": {
      "eur": "300.00",
      "tix": null,
      "usd": "399.99",
      "usd_foil": null
    },
    "rarity": "common",
    "released_at": "1993-08-05",
    "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
    "set": "lea",
    "set_name": "Limited Edition Alpha",
    "type_line": "Instant"
  }
}
```

### Get a set

Get one Magic set's details by its set code.

**Inputs**

- Set (`code`, text, required): Pick a set, or reference a set code from a previous step.

**Outputs**

- `set` (object)

**Example output**

```json
{
  "set": {
    "card_count": 425,
    "code": "khm",
    "digital": false,
    "icon_svg_uri": "https://svgs.scryfall.io/sets/khm.svg",
    "id": "43057fad-b1c1-437f-bc48-0045bce6d8c9",
    "name": "Kaldheim",
    "object": "set",
    "released_at": "2021-02-05",
    "scryfall_uri": "https://scryfall.com/sets/khm",
    "set_type": "expansion",
    "tcgplayer_id": 2750,
    "uri": "https://api.scryfall.com/sets/43057fad-b1c1-437f-bc48-0045bce6d8c9"
  }
}
```

### Get card by external ID

Get a single card by an id from another system: Gatherer (multiverse), Magic Online, MTG Arena, TCGplayer, or Cardmarket.

**Inputs**

- ID system (`id_system`, text, required): Which system the id belongs to. One of: `multiverse` (Gatherer multiverse ID), `mtgo` (Magic Online (MTGO) ID), `arena` (MTG Arena ID), `tcgplayer` (TCGplayer ID), `cardmarket` (Cardmarket ID).
- External ID (`id`, number, required): The numeric id in the chosen system. At least 1.

**Outputs**

- `card` (object)

**Example output**

```json
{
  "card": {
    "artist": "Christopher Rush",
    "cmc": 1.0,
    "collector_number": "161",
    "color_identity": [
      "R"
    ],
    "colors": [
      "R"
    ],
    "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
    "legalities": {
      "commander": "legal",
      "legacy": "legal",
      "modern": "legal"
    },
    "mana_cost": "{R}",
    "name": "Lightning Bolt",
    "object": "card",
    "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
    "oracle_text": "Lightning Bolt deals 3 damage to any target.",
    "prices": {
      "eur": "300.00",
      "tix": null,
      "usd": "399.99",
      "usd_foil": null
    },
    "rarity": "common",
    "released_at": "1993-08-05",
    "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
    "set": "lea",
    "set_name": "Limited Edition Alpha",
    "type_line": "Instant"
  }
}
```

### Get card by name

Find one card by name. Fuzzy mode tolerates typos and partial names; exact mode requires the full name. Optionally restrict to a specific set.

**Inputs**

- Card name (`name`, text, required): The card name to look up.
- Match mode (`mode`, text): How closely the name must match. One of: `fuzzy` (Fuzzy (tolerates typos and partial names)), `exact` (Exact (name must match exactly)). Default: `fuzzy`.
- Set (`set_code`, text): Optional. Return the printing from this set. Pick a set or reference a set code from a previous step.

**Outputs**

- `card` (object)

**Example output**

```json
{
  "card": {
    "artist": "Christopher Rush",
    "cmc": 1.0,
    "collector_number": "161",
    "color_identity": [
      "R"
    ],
    "colors": [
      "R"
    ],
    "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
    "legalities": {
      "commander": "legal",
      "legacy": "legal",
      "modern": "legal"
    },
    "mana_cost": "{R}",
    "name": "Lightning Bolt",
    "object": "card",
    "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
    "oracle_text": "Lightning Bolt deals 3 damage to any target.",
    "prices": {
      "eur": "300.00",
      "tix": null,
      "usd": "399.99",
      "usd_foil": null
    },
    "rarity": "common",
    "released_at": "1993-08-05",
    "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
    "set": "lea",
    "set_name": "Limited Edition Alpha",
    "type_line": "Instant"
  }
}
```

### Get card by Scryfall ID

Get a single card by its Scryfall id (the UUID returned by the search and lookup actions).

**Inputs**

- Scryfall card ID (`id`, text, required): The card's Scryfall id (a UUID).

**Outputs**

- `card` (object)

**Example output**

```json
{
  "card": {
    "artist": "Christopher Rush",
    "cmc": 1.0,
    "collector_number": "161",
    "color_identity": [
      "R"
    ],
    "colors": [
      "R"
    ],
    "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
    "legalities": {
      "commander": "legal",
      "legacy": "legal",
      "modern": "legal"
    },
    "mana_cost": "{R}",
    "name": "Lightning Bolt",
    "object": "card",
    "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
    "oracle_text": "Lightning Bolt deals 3 damage to any target.",
    "prices": {
      "eur": "300.00",
      "tix": null,
      "usd": "399.99",
      "usd_foil": null
    },
    "rarity": "common",
    "released_at": "1993-08-05",
    "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
    "set": "lea",
    "set_name": "Limited Edition Alpha",
    "type_line": "Instant"
  }
}
```

### Get card by set and collector number

Get the exact printing of a card from its set code and collector number, the most precise way to identify a single printing. Optionally request a specific language.

**Inputs**

- Set (`set_code`, text, required): Pick a set, or reference a set code from a previous step.
- Collector number (`collector_number`, text, required): The card's collector number within the set (e.g. '161').
- Language (`lang`, text): Optional. The printed language to return. One of: `en` (English), `es` (Spanish), `fr` (French), `de` (German), `it` (Italian), `pt` (Portuguese), `ja` (Japanese), `ko` (Korean), `ru` (Russian), `zhs` (Chinese (Simplified)), and 7 more.

**Outputs**

- `card` (object)

**Example output**

```json
{
  "card": {
    "artist": "Christopher Rush",
    "cmc": 1.0,
    "collector_number": "161",
    "color_identity": [
      "R"
    ],
    "colors": [
      "R"
    ],
    "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
    "legalities": {
      "commander": "legal",
      "legacy": "legal",
      "modern": "legal"
    },
    "mana_cost": "{R}",
    "name": "Lightning Bolt",
    "object": "card",
    "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
    "oracle_text": "Lightning Bolt deals 3 damage to any target.",
    "prices": {
      "eur": "300.00",
      "tix": null,
      "usd": "399.99",
      "usd_foil": null
    },
    "rarity": "common",
    "released_at": "1993-08-05",
    "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
    "set": "lea",
    "set_name": "Limited Edition Alpha",
    "type_line": "Instant"
  }
}
```

### Get card rulings

Get the official rulings and clarifications for a card, by its Scryfall id.

**Inputs**

- Scryfall card ID (`id`, text, required): The card's Scryfall id (a UUID).

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "comment": "Any target means any creature, player, planeswalker, or battle.",
        "object": "ruling",
        "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
        "published_at": "2004-10-04",
        "source": "wotc"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### Get card rulings by external ID

Get a card's rulings by an id from another system: Gatherer (multiverse), Magic Online, or MTG Arena.

**Inputs**

- ID system (`id_system`, text, required): Which system the id belongs to. One of: `multiverse` (Gatherer multiverse ID), `mtgo` (Magic Online (MTGO) ID), `arena` (MTG Arena ID).
- External ID (`id`, number, required): The numeric id in the chosen system. At least 1.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "comment": "Any target means any creature, player, planeswalker, or battle.",
        "object": "ruling",
        "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
        "published_at": "2004-10-04",
        "source": "wotc"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### Get card rulings by set and collector number

Get a card's rulings from its set code and collector number.

**Inputs**

- Set (`set_code`, text, required): Pick a set, or reference a set code from a previous step.
- Collector number (`collector_number`, text, required): The card's collector number within the set.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "comment": "Any target means any creature, player, planeswalker, or battle.",
        "object": "ruling",
        "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
        "published_at": "2004-10-04",
        "source": "wotc"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### Get many cards at once

Fetch up to 75 cards in one request. Provide a list of identifiers, each an object with one or more of: id, name, set + collector_number, multiverse_id, mtgo_id, oracle_id, or illustration_id.

**Inputs**

- Card identifiers (`identifiers`, list, required): A list of identifier objects (max 75). For example: [{"name": "Lightning Bolt"}, {"set": "lea", "collector_number": "161"}].

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "artist": "Christopher Rush",
        "cmc": 1.0,
        "collector_number": "161",
        "color_identity": [
          "R"
        ],
        "colors": [
          "R"
        ],
        "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
        "legalities": {
          "commander": "legal",
          "legacy": "legal",
          "modern": "legal"
        },
        "mana_cost": "{R}",
        "name": "Lightning Bolt",
        "object": "card",
        "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
        "oracle_text": "Lightning Bolt deals 3 damage to any target.",
        "prices": {
          "eur": "300.00",
          "tix": null,
          "usd": "399.99",
          "usd_foil": null
        },
        "rarity": "common",
        "released_at": "1993-08-05",
        "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
        "set": "lea",
        "set_name": "Limited Edition Alpha",
        "type_line": "Instant"
      }
    ],
    "not_found": [],
    "object": "list"
  }
}
```

### Get set by Scryfall ID

Get one Magic set's details by its Scryfall id (a UUID).

**Inputs**

- Scryfall set ID (`id`, text, required): The set's Scryfall id (a UUID).

**Outputs**

- `set` (object)

**Example output**

```json
{
  "set": {
    "card_count": 425,
    "code": "khm",
    "digital": false,
    "icon_svg_uri": "https://svgs.scryfall.io/sets/khm.svg",
    "id": "43057fad-b1c1-437f-bc48-0045bce6d8c9",
    "name": "Kaldheim",
    "object": "set",
    "released_at": "2021-02-05",
    "scryfall_uri": "https://scryfall.com/sets/khm",
    "set_type": "expansion",
    "tcgplayer_id": 2750,
    "uri": "https://api.scryfall.com/sets/43057fad-b1c1-437f-bc48-0045bce6d8c9"
  }
}
```

### Get set by TCGplayer ID

Get one Magic set's details by its TCGplayer group id (their 'groupId').

**Inputs**

- TCGplayer ID (`tcgplayer_id`, number, required): The set's TCGplayer group id. At least 1.

**Outputs**

- `set` (object)

**Example output**

```json
{
  "set": {
    "card_count": 425,
    "code": "khm",
    "digital": false,
    "icon_svg_uri": "https://svgs.scryfall.io/sets/khm.svg",
    "id": "43057fad-b1c1-437f-bc48-0045bce6d8c9",
    "name": "Kaldheim",
    "object": "set",
    "released_at": "2021-02-05",
    "scryfall_uri": "https://scryfall.com/sets/khm",
    "set_type": "expansion",
    "tcgplayer_id": 2750,
    "uri": "https://api.scryfall.com/sets/43057fad-b1c1-437f-bc48-0045bce6d8c9"
  }
}
```

### List all sets

List every Magic set Scryfall knows about, from Alpha to the latest release, with codes, release dates, and card counts.

**Inputs**: None.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "card_count": 425,
        "code": "khm",
        "digital": false,
        "icon_svg_uri": "https://svgs.scryfall.io/sets/khm.svg",
        "id": "43057fad-b1c1-437f-bc48-0045bce6d8c9",
        "name": "Kaldheim",
        "object": "set",
        "released_at": "2021-02-05",
        "scryfall_uri": "https://scryfall.com/sets/khm",
        "set_type": "expansion",
        "tcgplayer_id": 2750,
        "uri": "https://api.scryfall.com/sets/43057fad-b1c1-437f-bc48-0045bce6d8c9"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### List bulk data files

List Scryfall's downloadable bulk-data files (all cards, oracle cards, rulings, and more), each with a direct download URL. Use these instead of paging the API for large exports.

**Inputs**: None.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "download_uri": "https://data.scryfall.io/oracle-cards/oracle-cards.json",
        "id": "27bf3214-1271-490b-bdfe-c0be6c23d02e",
        "name": "Oracle Cards",
        "object": "bulk_data",
        "size": 145293512,
        "type": "oracle_cards",
        "updated_at": "2026-08-12T21:01:59.452+00:00"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### List card migrations

List the card-object migrations Scryfall has performed (ids that were merged or deleted). Useful for keeping a local copy of Scryfall data in sync.

**Inputs**: None.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "id": "4f1387c2-5398-40b3-8f95-e934958001b1",
        "migration_strategy": "merge",
        "new_scryfall_id": "d2b59872-0e11-41c3-9858-3e2dd5a1c3c3",
        "note": "Duplicate oracle card entry",
        "object": "migration",
        "old_scryfall_id": "c927d327-ac57-4b6f-a2e9-2e407e26a4a7",
        "performed_at": "2026-07-23"
      }
    ],
    "has_more": true,
    "object": "list"
  }
}
```

### List card symbols

List every mana symbol and card symbol Scryfall recognises, with its meaning, mana value, and SVG image URL.

**Inputs**: None.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "english": "tap this permanent",
        "object": "card_symbol",
        "represents_mana": false,
        "svg_uri": "https://svgs.scryfall.io/card-symbols/T.svg",
        "symbol": "{T}"
      }
    ],
    "has_more": false,
    "object": "list"
  }
}
```

### Parse a mana cost

Parse a mana-cost string such as 'RUW' or '{2}{W}{W}' into its normalized form, colors, and mana value.

**Inputs**

- Mana cost (`cost`, text, required): A mana cost, e.g. 'RUW' or '{2}{W}{W}'.

**Outputs**

- `manaCost` (object)

**Example output**

```json
{
  "manaCost": {
    "cmc": 3.0,
    "colorless": false,
    "colors": [
      "W",
      "U",
      "R"
    ],
    "cost": "{U}{R}{W}",
    "monocolored": false,
    "multicolored": true,
    "object": "mana_cost"
  }
}
```

### Search cards

Search for Magic cards using Scryfall's full search syntax (e.g. 'c:red type:instant', 'set:khm rarity:mythic', or 'o:draw pow>=4'). Returns up to 175 cards per page.

**Inputs**

- Search query (`q`, text, required): A Scryfall search query. See the syntax guide at https://scryfall.com/docs/syntax.
- Roll up duplicates by (`unique`, text): How to collapse duplicate cards in the results. One of: `cards` (Distinct cards), `art` (Distinct artworks), `prints` (All printings). Default: `cards`.
- Sort by (`order`, text): Which attribute to sort the results by. One of: `name`, `set` (Set / collector number), `released` (Release date), `rarity`, `color`, `usd` (Price (USD)), `tix` (Price (MTGO tickets)), `eur` (Price (EUR)), `cmc` (Mana value), `power`, and 5 more. Default: `name`.
- Sort direction (`dir`, text): Direction to sort in. One of: `auto` (Automatic), `asc` (Ascending), `desc` (Descending). Default: `auto`.
- Include extras (`include_extras`, true/false): Include tokens, emblems, and other funny cards in the results. Default: `false`.
- Include other languages (`include_multilingual`, true/false): Include cards in every language, not just English. Default: `false`.
- Include variations (`include_variations`, true/false): Include rare card variants alongside their normal prints. Default: `false`.
- Page number (`page`, number): Which page of results to return (each page holds up to 175 cards). At least 1. Default: `1`.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "data": [
      {
        "artist": "Christopher Rush",
        "cmc": 1.0,
        "collector_number": "161",
        "color_identity": [
          "R"
        ],
        "colors": [
          "R"
        ],
        "id": "d573ef03-4730-45aa-93dd-e45ac1dbaf4a",
        "legalities": {
          "commander": "legal",
          "legacy": "legal",
          "modern": "legal"
        },
        "mana_cost": "{R}",
        "name": "Lightning Bolt",
        "object": "card",
        "oracle_id": "cb3587b9-e727-4f37-8f97-9891ef4f4d51",
        "oracle_text": "Lightning Bolt deals 3 damage to any target.",
        "prices": {
          "eur": "300.00",
          "tix": null,
          "usd": "399.99",
          "usd_foil": null
        },
        "rarity": "common",
        "released_at": "1993-08-05",
        "scryfall_uri": "https://scryfall.com/card/lea/161/lightning-bolt",
        "set": "lea",
        "set_name": "Limited Edition Alpha",
        "type_line": "Instant"
      }
    ],
    "has_more": false,
    "object": "list",
    "total_cards": 2
  }
}
```
