← Back to support

How to import AlgoApp decks (.zip, .xml)

Import an AlgoApp deck

Open "Import Decks", select the "AlgoApp" tab, and choose either:

  • one .xml file, or
  • a .zip containing exactly one deck XML file and, when needed, a blobs folder.

A ZIP with multiple XML files is not supported. Import decks separately. CSV and Anki .apkg files use their own tabs.

Minimal example with card tags

The tag for each card value must match its field's type. For a Text field, use <text>, not a generic <field> element. Names must match exactly.

<deck name="French Vocabulary">
  <fields>
    <text name="Front" lang="en-US" sides="11" />
    <text name="Back" lang="fr-FR" sides="01" />
  </fields>
  <cards>
    <card tags="greetings,french">
      <text name="Front">Hello</text>
      <text name="Back">Bonjour</text>
    </card>
    <card tags="greetings,french">
      <text name="Front">Goodbye</text>
      <text name="Back">Au revoir</text>
    </card>
  </cards>
</deck>

sides="11" displays a field on both sides; sides="10" is front only and sides="01" is back only. Card tags go on <card tags="..."> as a comma-separated list. Optional deck folder tags go on the root <deck> element instead.

Field types

Supported field tags include text, rich-text, tts, audio, img, code, tex, japanese, chinese, drawing, image-occlusion, fill-in-blank, and multiple-choice.

Translation is configured as a field source; it is not a standalone field type. For example, a translated Text field can include <sources><translation><ref name="Front" /></translation></sources>. Markdown and video are not standalone field types in the current importer.

For complex field values and custom templates, export a small working deck from AlgoApp and use its XML as a starting point.

Media

Image and Audio values require both a blob id and a MIME type, for example:

<img name="Picture" id="YOUR_BLOB_ID" type="image/png" />
<audio name="Recording" id="YOUR_AUDIO_ID" type="audio/mpeg" />

Declare matching img and audio fields in the deck header. Include each file at blobs/ID inside the ZIP, with the filename matching its referenced ID exactly. AlgoApp normally uses the file's SHA-256 hex hash as its ID; do not add a filename extension unless it is part of the referenced ID. Keeping the original names from an AlgoApp export is safest.

XML formatting

Escape XML-sensitive characters: use &amp; for an ampersand and &lt; for a less-than sign in text. Quote attribute values, including numeric ones such as rate="0.8". Rich HTML values can be XML-escaped or wrapped in CDATA.

Start with a small file and check the imported content and tags before importing a large collection. Importing creates a new deck; it does not update an existing deck or restore review history. If an older export omitted card tags, they must be added to the file or recreated after import.