API Documentation

Scryfall provides a REST-like API for ingesting our card data programatically. The API exposes information available on the regular site in easy-to-consume formats.

Endpoint Details

The API is available at https://api.scryfall.com

API requests are only served over HTTPS, using TLS 1.2 or better. Requests will not be honored over plaintext HTTP.

The API uses UTF-8 character encoding for all responses. Many fields will include characters that are not in the ASCII range.

Required Headers

All HTTP requests to api.scryfall.com must include a User-Agent header and an Accept header.

Your User-Agent header must be accurate to your usage context. If you are running a script or app, the header should be the name of your application, such as MTGExampleApp/1.0 or the current relevant version. Do not allow HTTP libraries to choose the header for you.

If you are accessing the API via on-page web browser JavaScript, keep the browser’s User-Agent intact.

The Accept header must be present, but you can provide a generic preference. For example, both of these are okay: Accept: */* and Accept: application/json;q=0.9,*/*;q=0.8.

Use of Scryfall Data and Images

As part of the Wizards of the Coast Fan Content Policy, Scryfall provides our card data and image database free of charge for the primary purpose of creating additional Magic software, performing research, or creating community content (such as videos, streams, podcasts, etc.) about Magic and related products.

When using Scryfall data, you must adhere to the following guidelines:

  • You may not use Scryfall logos or use the Scryfall name in a way that implies Scryfall has endorsed you, your work, or your product.
  • You may not “paywall” access to Scryfall data. You may not require anyone to make payments, take surveys, agree to subscriptions, rate your content, join chat servers, or follow channels in exchange for access to Scryfall data. If you have an account system, end-users should be able to access card data anonymously or with free accounts.
  • You may not use Scryfall data to create new games, or to imply the information and images are from any other game besides Magic: The Gathering.
  • You may not simply repackage, republish, or proxy Scryfall data. Your software must create additional value for end-users.

When using images from Scryfall, you must adhere to the following guidelines:

  • Do not cover, crop, or clip off the copyright or artist name on card images.
  • Do not distort, skew, or stretch card images.
  • Do not blur, sharpen, desaturate, or color-shift card images.
  • Do not add your own watermarks, stamps, or logos to card images.
  • Do not place card images in a way that implies someone other than Wizards of the Coast created the card or that it is from another game besides Magic: The Gathering.
  • When using the art_crop, list the artist name and copyright elsewhere in the same interface presenting the art crop, or use the full card image elsewhere in the same interface. Users should be able to identify the artist and source of the image somehow.

Repeated mishandling or misreprensation of data or images in your project may result in Scryfall restricting or blocking your API access.

Rate Limits and Good Citizenship

We kindly ask that you insert 50 – 100 milliseconds of delay between the requests you send to the server at api.scryfall.com. (i.e., 10 requests per second on average).

Submitting excessive requests to the server may result in a HTTP 429 Too Many Requests status code. Overloading the API after this point may result in a temporary or permanent ban of your IP address. Applications that continously recieve rate limit warnings over a longer period may also be blocked.

The file origins used by the API, located at *.scryfall.io do not have these rate limits.

We encourage you to cache the data you download from Scryfall or process it locally in your own database, at least for 24 hours. Scryfall provides our entire database compressed for download in daily bulk data files.

While we make incremental updates to card data daily, take note that:

  • We only update prices for cards once per day. Fetching card data more frequently than 24 hours will not yield new prices.
  • Updates to gameplay data (such as card names, Oracle text, mana costs, etc) are much less frequent. If you only need gameplay information, downloading card data once per week or right after set releases would most likely be sufficient.