---
title: blossom backup:download
url: "/docs/reference/cli/backup/download/"
canonical_url: https://docs.blossom88.com/docs/reference/cli/backup/download/
markdown_url: https://docs.blossom88.com/docs/reference/cli/backup/download.md
summary: Download a verified PostgreSQL logical export
categories:
- cli
- reference
---

# blossom backup:download

Download a verified PostgreSQL logical export

## Usage

    blossom backup:download --id ID --output OUTPUT

## Flags

| Flag | Description |
| --- | --- |
| `--id (required)` | Backup id |
| `--output (required)` | New local archive path |

Download a completed PostgreSQL logical export to a new local file:

    blossom backup:download --id backup-100 --output ./production.dump

The CLI downloads directly from backup storage, decrypts locally and verifies
integrity before saving a private file. Existing files are never overwritten.
JSON output contains only the local path, Backup id, byte count and SHA-256;
keys and download URLs are never printed, including with tracing enabled.

Use `backup:create` with `backup.database_id` to create a logical export first.
Instance recovery backups (pgBackRest) are not supported by this command.
The archive contains schema and data but omits ownership and privileges.
Keep required roles and grants separately for independent recovery.

Verify its contents without connecting to a database. Use `pg_restore` from
the source PostgreSQL major version or newer:

    pg_restore --list ./production.dump
    pg_restore --file=/dev/null ./production.dump

Exports are limited to 1 GiB. New Go exports stream through small authenticated
buffers; older Ruby exports require memory proportional to the archive size.
The saved archive is decrypted and contains private application data; keep it
in a protected directory.

Requires `backup:read` and `env_var:read`, matching the existing secret-reading
permission used for database credentials. This command does not restore or
modify a database.
