Tutorial · 5-minute read

How to export your Bitwarden vault — CSV, JSON, and encrypted backup

Stack of cardboard moving boxes — exporting your Bitwarden vault as a portable backup file

You should be able to take your data and leave. That's the property a good password manager has and the reason locking your data into a closed format is the single largest red flag for any vault product. Bitwarden gets this right — three export formats, no friction beyond a master-password reconfirm, no premium-tier paywall, no hidden truncation. This page walks through exactly how to do it, in every Bitwarden client, and what the export does and doesn't include.

TL;DR

Use password-protected JSON for backups — it's encrypted, safe to leave on disk, and re-imports cleanly. Use CSV only if you're moving to a competitor that doesn't accept Bitwarden JSON. Plain JSON is plaintext — never leave it sitting in your Downloads folder.

Why export at all

Three legitimate reasons:

What you should not do: export to plain JSON or CSV "just in case" and leave the file in Downloads. That file is your entire authentication life in plaintext. The next malicious browser extension or compromised account password rolls up your whole credential set.

Three formats — pick the right one

FormatEncrypted?Use caseRe-importable to
Password-protected JSONYes — AES-256 + KDFBackup, Bitwarden-to-Bitwarden migrationBitwarden, Vaultwarden
JSON (unencrypted)No — plaintextMoving to another manager that takes JSON, or scripted analysisBitwarden, Vaultwarden, some others
CSVNo — plaintextMoving to a manager that only accepts CSV1Password, Dashlane, KeePass, NordPass, RoboForm

Default to password-protected JSON. You set a separate password when you create it (different from your master), and Bitwarden encrypts the file with a key derived from that password. Even if the file leaks, contents stay safe so long as the file password is strong.

The format also preserves field types Bitwarden has but CSV flattens — secure notes, identities, custom fields, folders, attachments-by-reference, item history. CSV throws most of that away. Plain JSON keeps everything but exposes it.

Export from the web vault

The web vault is the simplest path:

  1. Sign in at vault.bitwarden.com.
  2. Top menu: Tools → Export vault.
  3. Format dropdown: pick .json (Encrypted).
  4. Choose "Password protected" file password type.
  5. Set a strong file password — different from your master, written down somewhere offline.
  6. Click Confirm format, then re-enter your master password when prompted.
  7. Browser downloads bitwarden_encrypted_export_YYYYMMDD.json.

Move the file out of Downloads immediately. Documents/Backups/bitwarden/ on an encrypted disk, an encrypted external drive, or a separate cloud account are all defensible destinations.

Export from the desktop app

The same path exists in Windows, Mac, and Linux desktop apps:

  1. Open the desktop app, unlock vault.
  2. Menu bar: File → Export vault.
  3. Same format choice as web — pick .json (Encrypted).
  4. Set file password, confirm master password.
  5. Choose save location — desktop app lets you pick the destination, web doesn't.

Useful when you want to save directly to an encrypted external volume without the file ever touching Downloads/.

Export with the CLI

For automation — nightly cron, post-rotation backup, audit pipelines:

# Unlock and capture session
export BW_SESSION=$(bw unlock --raw)

# Encrypted JSON to a file
bw export --format encrypted_json --password "$BACKUP_PWD" \
  --output ~/backups/bitwarden-$(date +%F).json

# Or plain JSON for scripting (DANGEROUS — plaintext!)
bw export --format json --output /tmp/vault.json
# ...do work...
shred -u /tmp/vault.json

# Lock the session when done
bw lock

The --password flag for encrypted exports avoids interactive prompts but means the password sits in your shell history. Pull it from a secrets manager (op, vault) or a non-history-recorded prompt instead. Our CLI scripts post walks through a hardened backup pattern.

Exporting an organisation vault

Personal vault and organisation vaults export separately. To export an organisation:

  1. Web vault → switch to the organisation in the top-left selector.
  2. Manage → Export vault (you need export permissions on the organisation).
  3. Same format choices apply.

An organisation export contains shared collections only — it does not include personal items members hold individually. Each member exports their personal vault separately if they need a personal backup.

Storing the export safely

An encrypted-JSON export is safer than a plain export, but "safer" is not "safe." Treat it as sensitive material:

Decrypting a password-protected JSON outside Bitwarden

Password-protected exports are not opaque blobs — they're a documented format Bitwarden publishes. The structure: a salted PBKDF2/Argon2 key derivation, AES-256-CBC ciphertext, HMAC-SHA-256 integrity tag. If you ever need to decrypt outside a Bitwarden client (forensic recovery, legacy account, dead vendor scenario), the file format is implementable from the spec.

For most users, the recovery path is simply: install Bitwarden client → Tools → Import → Bitwarden (json) → upload the file → enter the file password. Bitwarden detects the encrypted format automatically and prompts for the password.

Re-import to Bitwarden, Vaultwarden, or a competitor

The encrypted-JSON path back into Bitwarden:

  1. Web vault → Tools → Import data.
  2. Format: Bitwarden (json).
  3. Upload the encrypted file.
  4. Enter the file password when prompted.
  5. Review imported items, then archive the source file.

To KeePass / KeePassXC: import the plain JSON or CSV. To 1Password: CSV is the safe path; 1Password's importer recognises Bitwarden's CSV column layout.

What an export does NOT include

Worth knowing before you assume a single file is a complete backup:

For a complete backup of an organisation: vault export + attachment downloads + a documented note of 2FA settings and emergency-access contacts. For a personal vault: the encrypted JSON and a scripted attachment dump cover ~99% of recovery scenarios.