Skip to content
GET /v1/sets

Every MTG set with paging

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/mtg-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/mtg-api/v1/sets" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/mtg-api/v1/sets", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/mtg-api/v1/sets");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/mtg-api/v1/sets",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "sets": [
            {
                "code": "trk",
                "icon": "https://svgs.scryfall.io/sets/default.svg?1779681600",
                "name": "Star Trek",
                "digital": false,
                "set_type": "expansion",
                "card_count": 0,
                "released_at": "2026-11-20"
            },
            {
                "code": "trc",
                "icon": "https://svgs.scryfall.io/sets/default.svg?1779681600",
                "name": "Star Trek Commander",
                "digital": false,
                "set_type": "commander",
                "card_count": 1,
                "released_at": "2026-11-20"
            },
            {
                "code": "fra",
                "icon": "https://svgs.scryfall.io/sets/fra.svg?1779681600",
                "name": "Reality Fracture",
                "digital": false,
                "set_type": "expansion",
                "card_count": 7,
                "released_at": "2026-10-02"
            },
            {
                "code": "hoc",
                "icon": "https://svgs.scryfall.io/sets/hoc.svg?1779681600",
                "name": "The Hobbit Commander",
                "digital": false,
                "set_type": "commander",
                "card_count": 7,
                "released_at": "2026-08-14"
            },
            {
                "code": "thob",
                "icon": "https://svgs.scryfall.io/sets/hob.svg?1779681600",
                "name": "The Hobbit Tokens",
                "digital": false,
                "set_type": "token",
                "card_count": 2,
                "released_at": "2026-08-14"
            },
            {
                "code": "hob",
                "icon": "https://svgs.scryfall.io/sets/hob.svg?1779681600",
                "name": "The Hobbit",
                "digital": false,
                "set_type": "expansion",
                "card_count": 39,
                "released_at": "2026-08-14"
            },
            {
                "code": "msh",
                "icon": "https://svgs.scryfall.io/sets/msh.svg?1779681600",
                "name": "Marvel Super Heroes",
                "digital": false,
                "set_type": "expansion",
                "card_count": 24,
                "released_at": "2026-06-26"
            },
            {
                "code": "om2",
                "icon": "https://svgs.scryfall.io/sets/default.svg?1779681600",
                "name": "Through the Omenpaths 2",
                "digital": false,
                "set_type": "expansion",
                "card_count": 0,
                "released_at": "2026-06-26"
            },
            {
                "code": "tmsh",
                "icon": "https://svgs.scryfall.io/sets/default.svg?1779681600",
                "name": "Marvel Super Heroes Tokens",
                "digital": false,
                "set_type": "token",
                "card_count": 0,
          
…