> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Back Up and Restore with Snapshots

> Take a snapshot before risky changes, restore an application or database to an earlier state, and keep an off-platform copy.

A snapshot is a copy of an application or database at a given moment. You can restore it later or
download it as a `.zip`. Manual snapshots are available from the **Scale** plan.

## When to take one

* Before a deploy that changes data formats or runs migrations.
* Before a database **Reset**, a large import or a bulk delete.
* On a regular schedule, if the data matters to you.

## Take a snapshot

<Steps>
  <Step title="Open the resource">
    Open the application or database and go to **Snapshots**.
  </Step>

  <Step title="Create it">
    Click **Create snapshot**. You can take one every 5 minutes per resource, and 10 per hour across
    the account; above that the request is refused with `SNAPSHOT_RATE_LIMITED`.
  </Step>
</Steps>

## Restore

Pick a snapshot in the list and click **Restore**. The resource goes back to the content it had at
that moment, so anything written after it is lost: take a fresh snapshot first if you may need the
current state. Restores have a 30-second cooldown between them.

## Keep a copy outside the platform

**Download** any snapshot as a `.zip` and store it somewhere else. A download of an application
includes a `vertracloud.config` with its current settings, so it can be uploaded again as a new
project exactly as it was.

## Automatic safety snapshot for databases

Deleting or resetting a database always takes a snapshot first, on every plan. If that snapshot
fails, the delete or reset is blocked (`SNAPSHOT_FAILED`) and nothing is lost. Applications don't
get this automatic snapshot: take one yourself before deleting.

## Automate it

Snapshots are also available through the [API](/api-reference/introduction), the [SDKs](/sdks) and
the [CLI](/cli), so a scheduled job (for example a [GitHub Actions](/github-actions) workflow with a
`schedule` trigger) can take them on a routine.
