# Scryfall Set Information Scraper (`parseforge/scryfall-set-information-scraper`) Actor

Scrapes the complete Magic: The Gathering set list from Scryfall. Returns each set as a row with its code, name, release date, card count, type, and icon URI.

- **URL**: https://apify.com/parseforge/scryfall-set-information-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Games
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.05 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Scryfall Set Information Scraper

**Scrape Magic: The Gathering set metadata from Scryfall, including card counts, release dates, icons, and set codes.** Every set comes with its type, block, parent set, and digital availability flags. Export to CSV, JSON, Excel, or XML.

Magic: The Gathering has hundreds of expansion sets, each with its own code, release date, and card list. Scryfall catalogs them all, but browsing set by set or pulling the data through a general API takes manual work. This Actor reads the full set list from Scryfall in one pass and returns every set as a structured row, ready for your spreadsheet or database.

| Who uses it | What they scrape Scryfall for |
|---|---|
| MTG collectors | Build a personal checklist of every set they own or still need to complete. |
| Deck builders and content creators | Pull the latest set codes and release dates to keep their tools and articles current. |
| Market analysts and store owners | Track set releases and card counts to plan inventory and pricing strategies. |
| App developers | Seed a database with canonical set metadata for a deck tracker or collection manager. |

### What it does

This Actor collects every Magic: The Gathering set listed on Scryfall and returns each one as a flat row with its code, name, release date, card count, and type.

- 🗂️ **Complete set catalog:** every expansion, core set, masters set, and promotional release Scryfall knows about.
- 📅 **Release dates and timelines:** the exact day each set launched, plus its block and parent set relationships.
- 🎨 **Set icons and symbols:** SVG icon URIs for each set, ready to render in your own UI.
- 🔢 **Card counts and types:** total cards, digital-only sets, and whether a set is foil-only or available on Arena.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Scryfall data

**📋 Build a set checklist.**

A collector runs the Actor once, exports to CSV, and imports the rows into a spreadsheet to track which sets they have completed.

**📆 Monitor new set releases.**

A store owner schedules a weekly run to catch newly added sets and updates their pre-order page before the next spoiler season.

**🖥️ Seed a collection app database.**

A developer pulls the full set catalog, stores the codes and icons, and uses them as the foundation for a deck-building or inventory tool.

**🔍 Cross-reference set legality.**

A content creator filters by set type and release date to confirm which sets are currently Standard-legal for an article.

### Why choose this scraper

| | What you get |
|---|---|
| **Set code** | The three-letter shorthand used on every card and API call |
| **Release date** | When the set became legal or available, in ISO format |
| **Card count** | How many cards are in the base set, excluding variants |
| **Digital availability** | Whether the set exists on MTGO, Arena, or both |

### How it compares

No other Store actor targets Scryfall the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Scryfall Set Information Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Scryfall changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Control the run with a single maxItems limit. The Actor reads the full Scryfall set list and stops after the number of rows you specify. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.0089 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.89 |
| 1,000 results | $8.90 |
| 10,000 results | $89.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Scryfall Set Information Scraper](https://apify.com/parseforge/scryfall-set-information-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Scryfall through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/scryfall-set-information-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting only 10 results?**

Free Apify accounts are capped at 10 items. Upgrade to a paid plan and increase the maxItems input to get the full set list.

**The run finished but my dataset is empty.**

Check that maxItems is set to at least 1. If Scryfall's API was temporarily unreachable, wait a minute and retry the run.

**A newly announced set is missing from the results.**

Scryfall adds sets when Wizards of the Coast officially publishes the product page. If the set is not yet on Scryfall's website, it will not appear in the Actor's output.

**The set icon URI returns a 404 when I open it.**

Scryfall occasionally changes icon paths. The URI is provided directly from their API. If a link breaks, it likely changed upstream, and a fresh run will return the updated URI.

**Can I run this on a schedule?**

Yes. Apify supports scheduled runs. Set the Actor to run weekly or monthly to catch new set releases automatically.

### FAQ

| Question | Answer |
|---|---|
| Does this scrape every card in each set? | No, this Actor returns set-level metadata only: the set name, code, release date, card count, and related properties. It does not return individual card data. |
| What is the difference between set code and set name? | The set code is a short, unique identifier like 'MH3' or 'BLB'. The set name is the full, human-readable title like 'Modern Horizons 3' or 'Bloomburrow'. |
| Does this include Secret Lair drops and promotional sets? | Yes, Scryfall lists all official releases, including Secret Lair, promos, and box-topper sets. They appear with their own set codes and types. |
| Can I filter by set type, like only core sets or only expansions? | The Actor returns all sets. You can filter the resulting dataset in your spreadsheet or code by the set\_type field after the run completes. |
| How often is the Scryfall data updated? | Scryfall updates its set list as soon as Wizards of the Coast announces a new product. Run the Actor any time to get the latest data. |
| Is an API key required? | No. This Actor reads the public Scryfall set list. You do not need to register an application or provide credentials. |
| What output formats are supported? | You can export the results to CSV, JSON, Excel, or XML from the Apify dataset tab. |
| Does this Actor respect Scryfall's rate limits? | Yes, it makes a single request for the full set list and does not hammer the server. It is designed to be a good API citizen. |
| Can I get the set icon as an image file? | The Actor returns the SVG icon URI provided by Scryfall. You can download the SVG separately using that URI. |
| What is the maxItems limit for free users? | Free Apify accounts are limited to 10 items per run. Paid plans can request up to 1,000,000 items, which covers every set Scryfall has ever listed. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Scryfall, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Complete dataset of all scraped records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/scryfall-set-information-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/scryfall-set-information-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/scryfall-set-information-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/scryfall-set-information-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RADZwphH7TRbv3dZ5/builds/KWubUpdsxddqZtrUs/openapi.json
