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
| Action | What it does |
|---|---|
| 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. |
| Get a bulk-data file | Get the details and download URL of one bulk-data file. |
| Get a card migration | Get one card migration by its Scryfall id (a UUID). |
| 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. |
| Get a random card | Return a single random card. |
| Get a set | Get one Magic set's details by its set code. |
| Get card by external ID | Get a single card by an id from another system: Gatherer (multiverse), Magic Online, MTG Arena, TCGplayer, or Cardmarket. |
| Get card by name | Find one card by name. |
| Get card by Scryfall ID | Get a single card by its Scryfall id (the UUID returned by the search and lookup actions). |
| 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. |
| Get card rulings | Get the official rulings and clarifications for a card, by its Scryfall id. |
| Get card rulings by external ID | Get a card's rulings by an id from another system: Gatherer (multiverse), Magic Online, or MTG Arena. |
| Get card rulings by set and collector number | Get a card's rulings from its set code and collector number. |
| Get many cards at once | Fetch up to 75 cards in one request. |
| Get set by Scryfall ID | Get one Magic set's details by its Scryfall id (a UUID). |
| Get set by TCGplayer ID | Get one Magic set's details by its TCGplayer group id (their 'groupId'). |
| List all sets | List every Magic set Scryfall knows about, from Alpha to the latest release, with codes, release dates, and card counts. |
| List bulk data files | List Scryfall's downloadable bulk-data files (all cards, oracle cards, rulings, and more), each with a direct download URL. |
| List card migrations | List the card-object migrations Scryfall has performed (ids that were merged or deleted). |
| List card symbols | List every mana symbol and card symbol Scryfall recognises, with its meaning, mana value, and SVG image URL. |
| Parse a mana cost | Parse a mana-cost string such as 'RUW' or '{2}{W}{W}' into its normalized form, colors, and mana value. |
| 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'). |
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
qtextRequired - The start of a card name to complete.
- Include extras
include_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 file
idtextRequired - 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 ID
idtextRequired - 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
- Catalog
nametextRequired - 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 query
qtext - 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
- Set
codetextRequired - 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 system
id_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 ID
idnumberRequired - 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 name
nametextRequired - The card name to look up.
- Match mode
modetext - 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_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 ID
idtextRequired - 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
- Set
set_codetextRequired - Pick a set, or reference a set code from a previous step.
- Collector number
collector_numbertextRequired - The card's collector number within the set (e.g. '161').
- Language
langtext - 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 ID
idtextRequired - 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 system
id_systemtextRequired - Which system the id belongs to.One of:
multiverse(Gatherer multiverse ID),mtgo(Magic Online (MTGO) ID),arena(MTG Arena ID). - External ID
idnumberRequired - 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
- Set
set_codetextRequired - Pick a set, or reference a set code from a previous step.
- Collector number
collector_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 identifiers
identifierslistRequired - 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 ID
idtextRequired - 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 ID
tcgplayer_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 cost
costtextRequired - 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 query
qtextRequired - A Scryfall search query. See the syntax guide at https://scryfall.com/docs/syntax.
- Roll up duplicates by
uniquetext - How to collapse duplicate cards in the results.One of:
cards(Distinct cards),art(Distinct artworks),prints(All printings). Default:cards. - Sort by
ordertext - 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
dirtext - Direction to sort in.One of:
auto(Automatic),asc(Ascending),desc(Descending). Default:auto. - Include extras
include_extrastrue/false - Include tokens, emblems, and other funny cards in the results.Default:
false. - Include other languages
include_multilingualtrue/false - Include cards in every language, not just English.Default:
false. - Include variations
include_variationstrue/false - Include rare card variants alongside their normal prints.Default:
false. - Page number
pagenumber - 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
}
}