Import decks into Untap.in

A one-link integration for deck builders and card sites.

Let your users push a deck straight into Untap.in with a single link. They click it, Untap opens a confirmation dialog with a live preview of the matched cards, and they save it to their collection. No API keys, no login handoff, nothing to host.

How it works — point users at https://untap.in/import-deck/<your-deck-url>. Untap fetches that deck from your site, resolves the cards, detects the game automatically, and opens the import dialog. If the user isn't logged in yet, they log in first and the import resumes.

Try it live

Paste one of your public deck URLs to generate a working link and copy-paste snippets.

Live preview of the button your users would click →
Play Deck on Untap.in

Copy-paste examples

When the button sits on the deck's own page you don't need to hardcode anything — just read window.location.href.

Branded button styles (optional)

Drop-in CSS + logo so the button matches ours. The logo is inlined as a data URI so you don't host anything.

Link format

https://untap.in/import-deck/<deck-url>

PartNotes
<deck-url> Your deck's public URL. Recommended: encodeURIComponent() it so query strings and special characters survive. A plain URL works too (Untap adds https:// if you omit the scheme).
Game / CCG Detected automatically from the deck source — you don't pass it. Untap resolves the game and the deck name from the fetched deck.
Login Handled first-party by Untap. If the user is logged out, they log in and the import continues — you never touch their credentials.
Supported already? Untap imports from dozens of builders (Moxfield, Archidekt, TappedOut, Limitless, deckplanet, TCGplayer, and many more). If your site isn't supported yet, email hello@untap.in with a couple of sample deck URLs and we'll add a handler.

Ways to surface it

A few patterns we like — mix and match to fit your UI.

Legacy embed widget deprecated

Heads up — the older embeddable iframe widget (/user/deck-importer?uri=…) reads the user's Untap login out of cross-site storage to save silently. Browser storage-partitioning (Safari ITP, Chrome CHIPS) increasingly blocks that, so it works inconsistently. It still runs for existing embeds, but new integrations should use the /import-deck/ link above — it's first-party, needs no storage access, and won't break as browsers tighten up.