Supported import formats

FlashTabs can import cards from a plain CSV file or a FlashTabs JSON export. You can drop in as many files as you like at once — each JSON file becomes its own deck, and CSV files import straight into the deck you're importing into.

CSV

Two columns per row: the front of the card, then the back. There's no header row — every row is treated as a card.

  • The file must be UTF-8 encoded.
  • Extra columns beyond the first two are ignored.
  • Cards always import into the deck you chose (or a new deck if you didn't pick one).
Bonjour,Hello
Au revoir,Goodbye
Merci,Thank you

FlashTabs JSON

v3 · current

This is the format you get when you export a deck from FlashTabs, so it's the easiest way to move a deck between accounts or restore a backup.

  • deck.name becomes the new deck's name (ignored if you're importing into an existing deck).
  • front_image / back_image are optional. When present, type is png, jpg, or jpeg, and data is the base64-encoded image.
  • Each card needs text or an image on both sides.
{
  "schema": "flashtabs-3.0.0",
  "deck": {
    "name": "French",
    "cards": [
      {
        "card_type": "question",
        "front": "Bonjour",
        "front_image": {
          "type": null,
          "data": null
        },
        "back": "Hello",
        "back_image": {
          "type": null,
          "data": null
        }
      }
    ]
  },
  "generated": "2026-08-18 12:00:00"
}

FlashTabs JSON

v2 · legacy

Same shape as v3, without image support. Still imports fine — cards just come in as text-only.

{
  "schema": "flashtabs-2.0.0",
  "deck": {
    "name": "French",
    "cards": [
      {
        "card_type": "question",
        "front": "Bonjour",
        "back": "Hello"
      }
    ]
  },
  "generated": "2026-08-18 12:00:00"
}

FlashTabs JSON

v1 · legacy

The original FlashTabs export format, from before decks and cards had their current shape. Still supported so old exports keep working.

{
  "schema": "flashtabs-0.1.2",
  "deck": {
    "myDeckName": "French"
  },
  "cards": {
    "myDeckCards": [
      {
        "question": "Bonjour",
        "answer": "Hello"
      }
    ]
  }
}

Ready to import? Go to your decks and use the Import button.