# Take a server snapshot

> Archive a whole server into your account's snapshot storage from its Snapshots tab, and see which snapshots fit it.

Source: https://docs.coritan.com/managed-containers/snapshots/

In the dashboard:

- /dashboard/servers/…/snapshots: https://www.coritan.com/dashboard/servers

A snapshot is an archive of a server's files, kept in your account's snapshot storage. It belongs to your account rather than to the server, so it stays after you delete the server and you can restore it onto any of your servers. The server's **Snapshots** tab takes new snapshots and lists the ones you already have.

## Before you begin

- Every snapshot uses part of your account's snapshot allowance. The **Snapshot storage** card at the top of the tab shows how much is **Used** and how much is left across every server on the account. [Snapshot storage allowance](/snapshots/storage-allowance/) explains where the allowance comes from.
- A snapshot holds the server's files only. The server's [databases](/managed-containers/databases/) are not in it.
- You cannot take a snapshot while the server is installing, being moved or suspended.
- A server runs one snapshot or restore at a time.
- On a server someone shared with you, the owner must have given you the Snapshots permission.

## Take a snapshot

1. In the [dashboard](https://www.coritan.com/dashboard/servers), go to **Container Apps** and open the server, then the **Snapshots** tab.
2. Select **Take snapshot…**. The dialog measures the server's disk usage and shows it against what is left of your allowance, under **Estimated size against what is left**.
3. Check the **Name**. It starts as `snapshot-` followed by the date and time in UTC, such as `snapshot-2026-09-25-1430`, and can be up to 191 characters.
4. Optional: under **Leave out**, list the files and folders the snapshot should skip, one pattern per line, relative to the server root. For example, `logs/*` skips everything in the `logs` folder. You can list up to 50 patterns.
5. Optional: select **Lock this snapshot**. Nobody can delete a locked snapshot until someone unlocks it, and a schedule never deletes it to make room. The one exception is the cleanup when your account stays over its snapshot storage: it deletes unlocked snapshots first, then locked ones ([Snapshot storage allowance](/snapshots/storage-allowance/)).
6. Select **Take snapshot**.

The estimate is the server's current disk usage. We compress the archive, so the finished snapshot is usually smaller. When the estimate is more than what is left, the dialog shows **Not enough snapshot storage** and you cannot take the snapshot. Delete an old snapshot, or select **Order more storage** to open the Snapshot Storage order page, as [Add snapshot storage](/snapshots/add-snapshot-storage/) describes.

## See which snapshots fit this server

The list starts on **This server**, which shows the snapshots taken from this server. Select **Whole account** to see every snapshot on your account, with a **Fit** column that says how each one would restore onto this server:

**Same software**
: The snapshot was taken on this server's software, or on software that runs the same plugins or mods (Paper and Purpur, for example). It restores as it was.

**Other loader**
: The same game on different server software, such as a Paper world for a Fabric server. The world loads, but its plugins or mods do not. You must allow the difference when you restore it.

**Incompatible**
: A different game. You cannot restore it onto this server.

**Unknown**
: We do not know which software the snapshot was taken on. Check that it matches before you restore it.

Point at a badge to read the reason. On a server someone shared with you, **Whole account** shows only this server's snapshots, because the rest of the account is not yours to see. **All snapshots** opens the account's [Snapshots page](/snapshots/).

## Read the list

Each row shows the snapshot's name, the software it was taken on, its **Status**, its **Size** and when it was **Taken**. Select a column heading to sort by it.

- A **Locked** badge beside the name means nobody can delete the snapshot until someone unlocks it. Only the cleanup of an account that stays over its snapshot storage deletes a locked snapshot, after every unlocked one.
- A schedule's name under the date means that [schedule](/managed-containers/schedules/) took it. **By the platform** means we took it on our own before removing a server: after a cancellation, for an unpaid invoice, or before cleaning up an inactive free server.
- "(probably)" after the software means we recorded the software after the snapshot was taken, from what the server ran later.
- A failed snapshot shows its error under its name.
- On **Whole account**, a snapshot of another server names that server, with a **Deleted server** badge once the server is gone.

The menu at the end of each row holds **Restore onto this server…**, **Download**, **Lock** or **Unlock**, and **Delete snapshot…**. [Restore a snapshot](/snapshots/restore-a-snapshot/) and [Manage snapshots](/snapshots/manage-snapshots/) explain them.

## Result

A message confirms that we are taking the snapshot, and it appears in the list straight away. Its **Status** goes from `Pending` to `Creating` while the server archives and uploads its files, then to `Completed`. The tab refreshes on its own while a snapshot is in progress, and the **Size** fills in when it completes.

A server that was ordered from a snapshot also shows the state of that restore at the top of the tab: **Waiting to restore your snapshot**, **Restoring your snapshot**, **Restored from a snapshot** or **Could not restore the snapshot**. See [Start a server from a snapshot](/snapshots/new-server-from-a-snapshot/).

## Troubleshooting

`This snapshot needs … and your plan includes …`
: The snapshot does not fit in what is left of your allowance. Delete an older snapshot or [add snapshot storage](/snapshots/add-snapshot-storage/), then try again.

`A snapshot or restore is already in progress on this server; wait for it to finish before you start another snapshot.`
: Wait until the snapshot or restore in the list shows `Completed` or `Failed`, then try again.

`Cannot start a snapshot while the server is suspended`
: A suspended server cannot take snapshots. Try again once the server is unsuspended. The same message names `installing` or `transferring` while the server installs or moves; wait until it finishes.

`Could not estimate the size; the snapshot is refused if it does not fit.`
: We could not measure the server's disk usage. You can still take the snapshot, and we refuse it if it does not fit.

`The daemon never reported this upload finishing. Any partial upload has been released.`
: The upload stopped before it finished. We mark a snapshot failed when it has not finished 12 hours after it started. Delete the failed snapshot and take a new one. A failed snapshot does not count against your allowance.

`Snapshots are not enabled on this platform yet.`
: Snapshots are switched off for now. Try again later, or [contact support](/support/).

**Take snapshot** is greyed out
: The **Name** is empty, or the estimate does not fit in what is left of your allowance.

## Related

- [Restore a snapshot onto a server](/snapshots/restore-a-snapshot/)
- [Manage snapshots](/snapshots/manage-snapshots/)
- [Snapshot storage allowance](/snapshots/storage-allowance/)
- [Snapshots and backups compared](/snapshots/snapshots-and-backups/)

## With the API

`GET /api/v1/client/servers/{uuid}/snapshots` lists the snapshots taken from the server, newest first. Add `?scope=account` to list every snapshot on your account instead. Each one then carries a `compatibility` object for this server: `level` is `same`, `same_game`, `incompatible` or `unknown`, and `reason` explains any level but `same`. When the server is shared with you, `scope=account` returns the server's own list.

Each snapshot has `uuid`, `name`, `status`, `size_bytes`, `is_locked`, `created_by` (`customer`, `schedule` or `system`), `error`, `region`, `software_label`, `source_uuid`, `source_name`, `source_deleted`, `created_at` and `completed_at`. `status` is `pending` or `creating` while it is taken, `completed` when you can restore or download it, `restoring` or `deleting` while that work runs, or `failed`.

Before you take a snapshot, check that it fits:

```bash
curl https://api.coritan.com/api/v1/client/servers/$SERVER/snapshots/estimate \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{
  "estimated_bytes": 2147483648,
  "remaining_bytes": 8589934592,
  "fits": true,
  "shortfall_bytes": 0
}
```

Take the snapshot. `name` is required and can be up to 191 characters. `ignored_files` is an optional list of up to 50 patterns, each up to 255 characters and 4,000 characters in all. `is_locked` defaults to `false`.

```bash
curl -X POST https://api.coritan.com/api/v1/client/servers/$SERVER/snapshots \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "before-1.21-update", "ignored_files": ["logs/*", "cache/*"], "is_locked": true}'
```

The response is `201` with the new snapshot, its `status` set to `pending`. Poll the list, or `GET /api/v1/client/snapshots/{snapshot_uuid}`, until `status` is `completed`.

A snapshot that does not fit answers `402`. Its `detail` holds `message`, `used_bytes`, `allowance_bytes`, `needed_bytes` and `reason` set to `over_allowance`. A second snapshot while one is running, or a server that is installing, moving or suspended, answers `409`. When snapshots are switched off, or no storage is available for the server's region, the API answers `503`.

On a server shared with you, listing and the estimate need `snapshot.read`, and taking a snapshot needs `snapshot.create`. The Snapshots permission in the dashboard grants both.

## API

- `GET /api/v1/client/servers/{uuid}/snapshots`: List snapshots (https://docs.coritan.com/api/reference/client/container-apps/servers-snapshots/#op-get-api-v1-client-servers-uuid-snapshots)
- `POST /api/v1/client/servers/{uuid}/snapshots`: Take a snapshot of this server (https://docs.coritan.com/api/reference/client/container-apps/servers-snapshots/#op-post-api-v1-client-servers-uuid-snapshots)
- `GET /api/v1/client/servers/{uuid}/snapshots/estimate`: How much of the allowance a snapshot of this server would use (https://docs.coritan.com/api/reference/client/container-apps/servers-snapshots/#op-get-api-v1-client-servers-uuid-snapshots-estimate)
