File formats
Every input we accept and how it's read.
This is the full list of inputs 2anki accepts. The hard limits live on Limits and quotas — this page is the format reference.
Plan: Free (any plan can upload any format; paid plans get bigger files and AI-generated cards)
| Format | How 2anki reads it | Limits | Notes |
|---|---|---|---|
Notion HTML export (.zip) | Each .html file inside becomes a deck. Toggles inside the file become cards. The assets/ folder is bundled into the deck. | Same size limit as any upload. | The .zip Notion gives you when you export with "HTML" + "Include subpages". The cleanest non-Notion-integration path. |
HTML (.html) | Each <details> block becomes a card — <summary> is the front, the rest is the back. <code> becomes cloze. <strong> becomes input (with the Treat Bold Text as Input option on). | Same size limit as any upload. | Hand-written HTML works the same way. See HTML. |
Markdown (.md) | Bullet pairs become cards: parent bullet is the front, child bullet is the back. Backticks become cloze. | Same size limit as any upload. | Requires the Markdown Nested Bullet Points card option (on by default). Obsidian vaults work the same way. See Markdown and Obsidian. |
ZIP (.zip) | Extracted; the contents are processed in place. Notion HTML exports, folders of HTML files, or mixed bundles all work. | Same size limit as any upload. Entries are checked for unsafe paths before extraction. | If you have a Notion export with images, keep it zipped — the assets stay attached. |
CSV (.csv) | One row per card. The first column is the front, the second is the back. | Same size limit as any upload. | Use commas as the separator. TSV (tab-separated) is not supported — convert to CSV first. |
XLSX (.xlsx) | Same as CSV but for Excel files. First column front, second column back. | Same size limit as any upload. | One sheet per deck. |
PDF (.pdf) | Each page becomes an image. By default, page 1 is the front and page 2 is the back, page 3 the front of the next card, page 4 the back, and so on — useful for slide decks where each topic spans two slides. | 100 pages on free, no fixed cap on paid. | Turn on Generate Flashcards with Claude AI to have Claude read the PDF and write questions instead of pairing pages. Paid only. |
PPT / PPTX (.pptx, .ppt) | One card per slide. The slide title is the front; the bullet points, the rendered slide image, and the speaker notes are the back. A deck whose slides carry no text at all falls back to the PDF page-pair layout. | Same as PDF. | Put the question in the slide title and the answer in the body or notes. Binary .ppt always uses the page-pair layout. |
Word (.docx, .doc) | Converted to PDF via LibreOffice, then handled like a PDF. | Same as PDF. | Best with Claude AI for prose-heavy documents — the page-pair path works for documents you've structured like slides. |
OPML (.opml) | Each parent→child outline relationship becomes one Basic card: the parent text is the front, the child text is the back. | Same size limit as any upload. | Export from OmniOutliner, iThoughtsX, or any outliner that supports OPML. |
Brainstorms JSON (.brainstorms.json) | Same parent→child edge rule as OPML — each edge becomes one Basic card. | Same size limit as any upload. | Export from Brainstorms (iOS/macOS) using the JSON export option. The file must end in .brainstorms.json. |
HTML and Markdown
HTML and Markdown have their own pages because the syntax for cloze and input cards is worth a couple of examples each:
- HTML — toggles, cloze, input, and how images travel with the deck.
- Markdown and Obsidian — bullet syntax for basic, cloze, and input cards.
For the format-by-format pitfalls users actually hit, see Common problems.