Scryfall Sets API

List and retrieve Magic: The Gathering set metadata.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-card-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-card-face-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-related-card-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-image-uris-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-legalities-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-prices-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-set-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-ruling-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-card-symbol-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-catalog-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-bulk-data-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-migration-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-list-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-schema/scryfall-error-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-card-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-set-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-ruling-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-card-symbol-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-catalog-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-bulk-data-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/scryfall/refs/heads/main/json-structure/scryfall-migration-structure.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scryfall-sets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scryfall-sets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Scryfall Sets API
  description: 'The Scryfall API is a REST-like interface to the most comprehensive Magic: The Gathering

    card database. It exposes Card, Set, Ruling, Symbology, Catalog, and Bulk Data resources

    used by community tools, deck builders, price trackers, and research projects.


    The API is provided free of charge as part of the Wizards of the Coast Fan Content Policy

    for the primary purpose of creating additional Magic software, performing research, or

    creating community content. It is served only over HTTPS (TLS 1.2+) and requires both a

    descriptive User-Agent and an Accept header on every request. Clients are expected to

    keep request rates under 10 per second (50–100 ms delay between calls), and to use the

    bulk-data downloads for any large-scale ingestion task instead of crawling Card endpoints.

    '
  version: '2026-05-29'
  contact:
    name: Scryfall API Support
    url: https://scryfall.com/contact
  license:
    name: Scryfall API License (Free with attribution)
    url: https://scryfall.com/docs/api
  termsOfService: https://scryfall.com/docs/api
servers:
- url: https://api.scryfall.com
  description: Production API
tags:
- name: Sets
  description: 'List and retrieve Magic: The Gathering set metadata.'
paths:
  /sets:
    get:
      tags:
      - Sets
      summary: List Sets
      description: 'Returns a List of all Magic: The Gathering sets known to Scryfall.'
      operationId: listSets
      responses:
        '200':
          description: A list of sets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetList'
  /sets/{code}:
    get:
      tags:
      - Sets
      summary: Get a Set by Code
      description: Returns a Set with the given three-to-five-letter set code.
      operationId: getSetByCode
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The requested Set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Set'
  /sets/tcgplayer/{id}:
    get:
      tags:
      - Sets
      summary: Get a Set by TCGplayer ID
      description: Returns a Set with the given tcgplayer_id (also known as the groupId on TCGplayer's API).
      operationId: getSetByTcgplayerId
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: The requested Set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Set'
  /sets/{id}:
    get:
      tags:
      - Sets
      summary: Get a Set by Scryfall ID
      description: Returns a Set with the given Scryfall ID.
      operationId: getSetByScryfallId
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The requested Set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Set'
components:
  schemas:
    SetList:
      allOf:
      - $ref: '#/components/schemas/List'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/Set'
    Set:
      type: object
      description: 'A Scryfall Set object representing a Magic: The Gathering set or product.'
      properties:
        object:
          type: string
          enum:
          - set
        id:
          type: string
          format: uuid
        code:
          type: string
        mtgo_code:
          type: string
        arena_code:
          type: string
        tcgplayer_id:
          type: integer
        name:
          type: string
        set_type:
          type: string
        released_at:
          type: string
          format: date
        block_code:
          type: string
        block:
          type: string
        parent_set_code:
          type: string
        card_count:
          type: integer
        printed_size:
          type: integer
        digital:
          type: boolean
        foil_only:
          type: boolean
        nonfoil_only:
          type: boolean
        scryfall_uri:
          type: string
          format: uri
        uri:
          type: string
          format: uri
        icon_svg_uri:
          type: string
          format: uri
        search_uri:
          type: string
          format: uri
    List:
      type: object
      description: A generic Scryfall List object wrapping a paginated collection of any type.
      properties:
        object:
          type: string
          enum:
          - list
        total_cards:
          type: integer
        has_more:
          type: boolean
        next_page:
          type: string
          format: uri
        data:
          type: array
          items:
            type: object