Skip to main content

Scryfall

This connector syncs Magic: The Gathering card, set, and card symbol data from the Scryfall API.

Prerequisites​

None. The Scryfall API is public and doesn't require an account or API key.

Setup guide​

This connector has no configuration options. Create a Scryfall source in Airbyte, give it a name, and select Set up source.

Supported sync modes​

This connector supports Full Refresh syncs only. It doesn't support incremental syncs.

Supported streams​

StreamScryfall endpointPrimary keyDescription
cardsGET /cards/searchidCards returned by a search for *. See Cards stream coverage.
setsGET /setsidAll sets on Scryfall.
symbolsGET /symbologysymbolAll card symbols, such as mana and tap symbols.

Cards stream coverage​

The cards stream runs a Scryfall full-text search with the query * and Scryfall's default search options. Because of those defaults, the stream doesn't contain every card object in Scryfall's database:

  • Reprints are rolled up, so you get one printing of each unique card rather than every printing.
  • Only English cards are included.
  • Extras, such as tokens and planes, are excluded.
  • Rare card variations are excluded.

The connector doesn't expose options to change this behavior. If you need every printing in every language, use Scryfall's bulk data files instead.

Limitations​

Rate limits​

Scryfall enforces hard rate limits: 2 requests per second for /cards/search, and 10 requests per second for other endpoints. Receiving an HTTP 429 blocks the client for 30 seconds. The connector stays under these limits by sending at most 1 request per second to /cards/search and at most 5 requests per second to other endpoints. The search endpoint returns 175 cards per page, so a full sync of the cards stream takes roughly 200 requests, or about 3 to 4 minutes. If Scryfall still responds with HTTP 429, the connector waits 35 seconds and retries, up to 5 times.

Sync frequency​

Scryfall only updates card prices once per day, and gameplay data such as card names and Oracle text changes less often. Syncing more than once a day doesn't return new prices.

Troubleshooting​

Scryfall requires every request to include a User-Agent and Accept header, and it rejects requests that use a default HTTP library user agent with HTTP 400. Versions of this connector before 0.0.66 don't send these headers, so connection checks and syncs fail. If you see HTTP 400 errors, upgrade to version 0.0.66 or later.

IP allow list​

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference​

Config fields reference

Field
Type
Property name

Changelog​

Expand to review
VersionDatePull RequestSubject
0.0.692026-10-1388769Update dependencies
0.0.682026-10-0788240Throttle requests to Scryfall's documented rate limits and wait 35 seconds before retrying HTTP 429, so full cards syncs no longer fail
0.0.672026-10-0688025Update dependencies
0.0.662026-10-0387644Send a custom User-Agent (Scryfall rejects default HTTP-library agents with 400)
0.0.652026-09-2987339Update dependencies
0.0.642026-09-2286781Update dependencies
0.0.632026-09-1586218Update dependencies
0.0.622026-09-0885656Update dependencies
0.0.612026-08-1884734Update dependencies
0.0.602026-08-1184093Update dependencies
0.0.592026-08-0483609Update dependencies
0.0.582026-07-2883087Update dependencies
0.0.572026-07-2182586Update dependencies
0.0.562026-07-1482003Update dependencies
0.0.552026-06-3081215Update dependencies
0.0.542026-06-2380646Update dependencies
0.0.532026-06-1680026Update dependencies
0.0.522026-06-0979488Update dependencies
0.0.512026-06-0278953Update dependencies
0.0.502026-04-2877403Update dependencies
0.0.492026-04-2176766Update dependencies
0.0.482026-03-3175857Update dependencies
0.0.472026-03-1774963Update dependencies
0.0.462026-02-2473747Update dependencies
0.0.452026-02-0372553Update dependencies
0.0.442026-01-2072094Update dependencies
0.0.432026-01-1471515Update dependencies
0.0.422025-12-1870761Update dependencies
0.0.412025-11-2569983Update dependencies
0.0.402025-11-1869648Update dependencies
0.0.392025-10-2968892Update dependencies
0.0.382025-10-2168443Update dependencies
0.0.372025-10-1467908Update dependencies
0.0.362025-10-0767224Update dependencies
0.0.352025-09-3066858Update dependencies
0.0.342025-09-2466636Update dependencies
0.0.332025-09-0965655Update dependencies
0.0.322025-08-2465431Update dependencies
0.0.312025-08-1664990Update dependencies
0.0.302025-08-0264448Update dependencies
0.0.292025-07-2663939Update dependencies
0.0.282025-07-1963623Update dependencies
0.0.272025-07-1263052Update dependencies
0.0.262025-06-2862275Update dependencies
0.0.252025-06-1461294Update dependencies
0.0.242025-05-2560519Update dependencies
0.0.232025-05-1060186Update dependencies
0.0.222025-05-0459033Update dependencies
0.0.212025-04-1958414Update dependencies
0.0.202025-04-1257965Update dependencies
0.0.192025-04-0557487Update dependencies
0.0.182025-03-2956752Update dependencies
0.0.172025-03-2256185Update dependencies
0.0.162025-03-0855065Update dependencies
0.0.152025-02-2354600Update dependencies
0.0.142025-02-1553965Update dependencies
0.0.132025-02-0853510Update dependencies
0.0.122025-02-0153000Update dependencies
0.0.112025-01-2552514Update dependencies
0.0.102025-01-1851916Update dependencies
0.0.92025-01-1151347Update dependencies
0.0.82024-12-2850713Update dependencies
0.0.72024-12-2150286Update dependencies
0.0.62024-12-1449685Update dependencies
0.0.52024-12-1249369Update dependencies
0.0.42024-12-1149093Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
0.0.32024-11-0447879Update dependencies
0.0.22024-10-2847457Update dependencies
0.0.12024-08-28Initial release by @michel-tricot via Connector Builder