Magic: The Gathering - Scryfall

App · Gaming · 22 actions

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.

Actions

ActionWhat it does
Autocomplete card namesGet up to 20 full card names that complete the given text, handy for building a card-name picker or validating input.
Get a bulk-data fileGet the details and download URL of one bulk-data file.
Get a card migrationGet one card migration by its Scryfall id (a UUID).
Get a catalogGet 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.
Get a random cardReturn a single random card.
Get a setGet one Magic set's details by its set code.
Get card by external IDGet a single card by an id from another system: Gatherer (multiverse), Magic Online, MTG Arena, TCGplayer, or Cardmarket.
Get card by nameFind one card by name.
Get card by Scryfall IDGet a single card by its Scryfall id (the UUID returned by the search and lookup actions).
Get card by set and collector numberGet the exact printing of a card from its set code and collector number, the most precise way to identify a single printing.
Get card rulingsGet the official rulings and clarifications for a card, by its Scryfall id.
Get card rulings by external IDGet a card's rulings by an id from another system: Gatherer (multiverse), Magic Online, or MTG Arena.
Get card rulings by set and collector numberGet a card's rulings from its set code and collector number.
Get many cards at onceFetch up to 75 cards in one request.
Get set by Scryfall IDGet one Magic set's details by its Scryfall id (a UUID).
Get set by TCGplayer IDGet one Magic set's details by its TCGplayer group id (their 'groupId').
List all setsList every Magic set Scryfall knows about, from Alpha to the latest release, with codes, release dates, and card counts.
List bulk data filesList Scryfall's downloadable bulk-data files (all cards, oracle cards, rulings, and more), each with a direct download URL.
List card migrationsList the card-object migrations Scryfall has performed (ids that were merged or deleted).
List card symbolsList every mana symbol and card symbol Scryfall recognises, with its meaning, mana value, and SVG image URL.
Parse a mana costParse a mana-cost string such as 'RUW' or '{2}{W}{W}' into its normalized form, colors, and mana value.
Search cardsSearch for Magic cards using Scryfall's full search syntax (e.g. 'c:red type:instant', 'set:khm rarity:mythic', or 'o:draw pow>=4').

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 nameqtextRequired
The start of a card name to complete.
Include extrasinclude_extrastrue/false
Include tokens and other funny cards in the suggestions.Default: false.

Outputs

resultobject
Example output
{
  "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 fileidtextRequired
Pick a bulk-data file, or reference an id from a previous step.

Outputs

bulkDataobject
Example output
{
  "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 IDidtextRequired
The migration's Scryfall id (a UUID).

Outputs

migrationobject
Example output
{
  "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

CatalognametextRequired
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

catalogobject
Example output
{
  "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 queryqtext
Optional Scryfall search query to draw the random card from.

Outputs

cardobject
Example output
{
  "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

SetcodetextRequired
Pick a set, or reference a set code from a previous step.

Outputs

setobject
Example output
{
  "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 systemid_systemtextRequired
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 IDidnumberRequired
The numeric id in the chosen system.At least 1.

Outputs

cardobject
Example output
{
  "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 namenametextRequired
The card name to look up.
Match modemodetext
How closely the name must match.One of: fuzzy (Fuzzy (tolerates typos and partial names)), exact (Exact (name must match exactly)). Default: fuzzy.
Setset_codetext
Optional. Return the printing from this set. Pick a set or reference a set code from a previous step.

Outputs

cardobject
Example output
{
  "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 IDidtextRequired
The card's Scryfall id (a UUID).

Outputs

cardobject
Example output
{
  "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

Setset_codetextRequired
Pick a set, or reference a set code from a previous step.
Collector numbercollector_numbertextRequired
The card's collector number within the set (e.g. '161').
Languagelangtext
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

cardobject
Example output
{
  "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 IDidtextRequired
The card's Scryfall id (a UUID).

Outputs

resultobject
Example output
{
  "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 systemid_systemtextRequired
Which system the id belongs to.One of: multiverse (Gatherer multiverse ID), mtgo (Magic Online (MTGO) ID), arena (MTG Arena ID).
External IDidnumberRequired
The numeric id in the chosen system.At least 1.

Outputs

resultobject
Example output
{
  "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

Setset_codetextRequired
Pick a set, or reference a set code from a previous step.
Collector numbercollector_numbertextRequired
The card's collector number within the set.

Outputs

resultobject
Example output
{
  "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 identifiersidentifierslistRequired
A list of identifier objects (max 75). For example: [{"name": "Lightning Bolt"}, {"set": "lea", "collector_number": "161"}].

Outputs

resultobject
Example output
{
  "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 IDidtextRequired
The set's Scryfall id (a UUID).

Outputs

setobject
Example output
{
  "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 IDtcgplayer_idnumberRequired
The set's TCGplayer group id.At least 1.

Outputs

setobject
Example output
{
  "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

resultobject
Example output
{
  "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

resultobject
Example output
{
  "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

resultobject
Example output
{
  "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

resultobject
Example output
{
  "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 costcosttextRequired
A mana cost, e.g. 'RUW' or '{2}{W}{W}'.

Outputs

manaCostobject
Example output
{
  "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 queryqtextRequired
A Scryfall search query. See the syntax guide at https://scryfall.com/docs/syntax.
Roll up duplicates byuniquetext
How to collapse duplicate cards in the results.One of: cards (Distinct cards), art (Distinct artworks), prints (All printings). Default: cards.
Sort byordertext
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 directiondirtext
Direction to sort in.One of: auto (Automatic), asc (Ascending), desc (Descending). Default: auto.
Include extrasinclude_extrastrue/false
Include tokens, emblems, and other funny cards in the results.Default: false.
Include other languagesinclude_multilingualtrue/false
Include cards in every language, not just English.Default: false.
Include variationsinclude_variationstrue/false
Include rare card variants alongside their normal prints.Default: false.
Page numberpagenumber
Which page of results to return (each page holds up to 175 cards).At least 1. Default: 1.

Outputs

resultobject
Example output
{
  "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
  }
}

On this page