Complete REST endpoint index
Wiki home · Getting started · Practical examples · Exact OpenAPI schemas
Generated from the checked OpenAPI 3.1.0 contract (version 0.4.0). This index has 78 operations on 66 paths. Regenerate with npm run api-wiki:build. The OpenAPI contract defines all fields, validations, examples and response statuses. A documented endpoint can still be denied by the caller's scope or source/field policy.
Query names and required top-level JSON body fields appear here for orientation. A dash means none are declared. See Cards, sets and prices, Rules, formats and legality, Decks, ASK AI, and Events and stores for use cases.
| Method | Path | Query parameters | Required JSON body fields | Current access |
|---|---|---|---|---|
| GET | /v1/cards | as_of, limit, cursor, fields, include, q, name, format, legality, type, colors, colors_match, color_identity, identity_match, mv, mv_min, mv_max, keyword, set, rarity, game, sort, order | — | First-party * |
| GET | /v1/cards/named | as_of, limit, cursor, fields, include, exact, fuzzy | — | First-party * |
| GET | /v1/cards/by-identifier | as_of, limit, cursor, fields, include, type, value | — | First-party * |
| GET | /v1/cards/autocomplete | as_of, limit, cursor, fields, include, q | — | First-party * |
| POST | /v1/cards/resolve | as_of, limit, cursor, fields, include | names | First-party * |
| GET | /v1/cards/{oracle_id} | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/cards/{oracle_id}/printings | as_of, limit, cursor, fields, include, set, game, lang | — | First-party * |
| GET | /v1/cards/{oracle_id}/parts | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/printings/{printing_id} | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/printings/by-identifier | as_of, limit, cursor, fields, include, type, value | — | First-party * |
| GET | /v1/sets | as_of, limit, cursor, fields, include, q, type, released_after, released_before | — | First-party * |
| GET | /v1/sets/{code} | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/sets/{code}/cards | as_of, limit, cursor, fields, include, set, game, lang | — | First-party * |
| GET | /v1/prices/printings/{printing_id} | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/prices/cards/{oracle_id} | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/cards/{oracle_id}/cheapest-purchase | as_of, limit, cursor, fields, include | — | First-party * or card:purchase:read |
| GET | /v1/sources | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /v1/status | as_of, limit, cursor, fields, include | — | First-party * |
| GET | /health | — | — | Public |
| GET | /ready | — | — | Public |
| GET | /v1/rules | as_of, version, limit, offset | — | First-party * |
| GET | /v1/rules/versions | — | — | First-party * |
| GET | /v1/rules/search | as_of, version, limit, offset, q, prefix, mode | — | First-party * |
| GET | /v1/rules/glossary | as_of, version, limit, offset, q | — | First-party * |
| GET | /v1/rules/glossary/{term} | as_of, version | — | First-party * |
| GET | /v1/rules/{rule} | as_of, version, include | — | First-party * |
| GET | /v1/cards/{oracle_id}/rulings | as_of, limit, offset, q | — | First-party * |
| GET | /v1/rulings/search | as_of, limit, offset, q, oracle_id | — | First-party * |
| GET | /v1/formats | as_of | — | First-party * |
| GET | /v1/formats/{format} | as_of | — | First-party * |
| GET | /v1/formats/{format}/sets | as_of | — | First-party * |
| GET | /v1/formats/{format}/banlist | as_of | — | First-party * |
| GET | /v1/formats/{format}/events | as_of, from, to, oracle_id, limit, offset | — | First-party * |
| GET | /v1/formats/{format}/cards/{oracle_id} | as_of | — | First-party * |
| POST | /v1/legality/cards | — | format, cards | First-party * |
| POST | /v1/legality/decks | — | format, deck | First-party * |
| POST | /v1/decks/parse | — | — | First-party * |
| POST | /v1/decks/analyze | — | deck | First-party * |
| POST | /v1/decks/analyze/curve | — | deck | First-party * |
| POST | /v1/decks/analyze/mana-base | — | deck | First-party * |
| POST | /v1/decks/diff | — | from, to | First-party * |
| POST | /v1/decks | — | deck | First-party * |
| GET | /v1/decks/{id} | — | — | First-party * |
| PATCH | /v1/decks/{id} | — | — | First-party * |
| DELETE | /v1/decks/{id} | — | — | First-party * |
| GET | /v1/decks/{id}/versions | — | — | First-party * |
| POST | /v1/decks/{id}/versions | — | deck | First-party * |
| GET | /v1/decks/{id}/versions/{version_id} | — | — | First-party * |
| GET | /v1/decks/{id}/versions/{version_id}/analysis | — | — | First-party * |
| GET | /v1/decks/{id}/versions/{version_id}/diff | against | — | First-party * |
| POST | /v1/ai/ask | — | question | First-party * or ask_ai |
| GET | /v1/ai/access | — | — | First-party * or ask_ai |
| GET | /v1/ai/conversations | limit, cursor, search | — | First-party * or ask_ai |
| POST | /v1/ai/conversations | — | — | First-party * or ask_ai |
| GET | /v1/ai/feedback | rating, flagged, has_correction, since, until, end_user_ref, format, limit, cursor | — | Customer key: ai:feedback:read |
| GET | /v1/ai/events | — | — | First-party * or ask_ai |
| GET | /v1/ai/memory | — | — | First-party * or ask_ai |
| PATCH | /v1/ai/memory | — | — | First-party * or ask_ai |
| DELETE | /v1/ai/memory | — | — | First-party * or ask_ai |
| GET | /v1/ai/conversations/{id}/turns/{turn}/feedback | — | — | First-party * or ask_ai |
| PUT | /v1/ai/conversations/{id}/turns/{turn}/feedback | — | — | First-party * or ask_ai |
| DELETE | /v1/ai/conversations/{id}/turns/{turn}/feedback | — | — | First-party * or ask_ai |
| GET | /v1/ai/conversations/{id} | turn_limit, before_turn, after_turn | — | First-party * or ask_ai |
| PATCH | /v1/ai/conversations/{id} | — | title | First-party * or ask_ai |
| DELETE | /v1/ai/conversations/{id} | — | — | First-party * or ask_ai |
| GET | /v1/ai/conversations/{id}/files | — | — | First-party * or ask_ai |
| POST | /v1/ai/conversations/{id}/files | — | kind, text | First-party * or ask_ai |
| GET | /v1/ai/conversations/{id}/files/{file_id} | — | — | First-party * or ask_ai |
| DELETE | /v1/ai/conversations/{id}/files/{file_id} | — | — | First-party * or ask_ai |
| GET | /v1/event-programs | as_of, kind, category, tag, set, from, to, upcoming, region, limit, cursor | — | First-party * |
| GET | /v1/event-programs/{key} | as_of, region | — | First-party * |
| GET | /v1/events | as_of, kind, format, set, source, store, limit, cursor, timezone, include, city, region, country, postal_code, radius_km, from, to | — | First-party * |
| GET | /v1/events/upcoming | as_of, kind, format, set, source, store, limit, cursor, timezone, include, city, region, country, postal_code, radius_km | — | First-party * |
| GET | /v1/events/{id} | as_of, timezone, include | — | First-party * |
| POST | /v1/events/search | — | location | First-party * |
| GET | /v1/stores | city, region, country, postal_code, name, limit, cursor, include | — | First-party * |
| GET | /v1/stores/{id} | include | — | First-party * |
| GET | /v1/stores/{id}/events | as_of, kind, format, set, source, store, limit, cursor, timezone, include, from, to | — | First-party * |