Reliquary
← Features

Deck submission API: send a decklist to Reliquary over REST

Updated November 9, 2026

Reliquary has a deck submission API in one sense: a program can send it a decklist as text and get a deck back, with every line it could not read named. It does not submit a deck to a tournament, an organiser or an online client; for a paper event, the free registration sheet turns a list into a PDF to hand in.

The calls

Every tool of the MCP server is also a REST call, POST /api/v1/tools/<name> with the tool's arguments as JSON, and GET /api/v1/tools lists them with their descriptions.

CallWhat it does
POST /api/v1/tools/import_deckMakes a deck from decklist_text; returns the cards added, the names it could not resolve and the lines it ignored
POST /api/v1/decksMakes an empty deck, with its format and commander
POST /api/v1/decks/{id}/wantsAdds up to 75 lines to a deck's list in one call, each with its count
POST /api/v1/decks/{id}/claimClaims the copies you own for the deck, and says which are shared and which are missing
GET /api/v1/export/deck/{id}The deck as plain decklist text

The decklist text is plain lines: 4 Lightning Bolt (2XM) 123, Commander and Sideboard headings, SB: lines. The decklist guide lists every form it reads.

Signing in

A request carries an OAuth bearer token, the same sign-in an assistant uses. The server registers clients at /oauth/register, and you allow access on Reliquary's own consent page. Disconnecting the client on your account page ends its token on the next call.

What it will not do

  • Submit a list to an event, a tournament platform or a game client.
  • Delete without asking: delete_deck only describes what it would do until called again with confirm: true, and deleting a deck never deletes cards.
  • Hide a shared copy: a shared claim names the other decks and where the card physically is.

Questions

Is the API on the free plan?

Yes. A free account holds five decks: a sixth answers PLAN_LIMIT, status 402, with a link to pricing. API calls are never sold.

Can it read a Moxfield link instead of text?

import_deck also takes a public Moxfield deck link, but that fetch can fail. Text always works.

What should I hand in at an event?

Whatever the organiser asks for. The registration sheet makes a printable PDF of a list with its main deck and sideboard counted; it is not any organiser's official form.

Create a free accountFree, with Google or GitHub. No card.

Related