Snapshots¶
A snapshot is a copy of a server's disk at one moment. Take one before a risky change, restore it if the change goes wrong, or create a new server from it.
Endpoints¶
| Endpoint | What it does |
|---|---|
POST / |
Take a snapshot |
POST / |
Restore a snapshot |
GET / |
List snapshots |
GET / |
Get a snapshot |
PATCH / |
Rename a snapshot |
DELETE / |
Delete a snapshot |
The snapshot object¶
{
"id": 2958,
"name": "before upgrade",
"status": "completed",
"state": "completed",
"size_gb": 12.5,
"server_id": "4c63f6",
"image": "almalinux9",
"created_at": "2026-10-19T10:00:00Z",
"error": null
}
| Field | Type | Description |
|---|---|---|
id |
integer | The snapshot's id. |
name |
string | Its name, which you can change. |
status |
string | pending while it is being taken, then completed or failed. |
state |
string | A finer-grained step of the same progress, for display. Act on status. |
size_gb |
number | Its size. |
server_id |
string | The server it was taken from. |
image |
string | The image that server was installed with. |
created_at |
string | When it was taken. |
error |
object or null | On failed: a code and a fixed message saying why. Otherwise null. |
Reading, renaming and deleting¶
List snapshots¶
GET /
The project's snapshots, of all its servers.
Get a snapshot¶
GET /
One snapshot.
Rename a snapshot¶
PATCH /
Change the snapshot's name, 1 to 255 characters.
{"name": "before upgrade"}
Delete a snapshot¶
DELETE /
Delete the snapshot. It can't be recovered.
Taking and restoring¶
Both are actions, and exclusive: a server takes or restores one snapshot at a time, and not during another exclusive action. Send an Idempotency-Key with each.
Take a snapshot¶
POST /
Take a snapshot of the server's disk. The request takes no body. Once the action has succeeded, its result has the new snapshot's id when it can be told, as {"snapshot_id": 2960}; the snapshot list shows it either way.
Your account can hold a limited number of snapshots: one more answers 409 snapshot_limit_reached, so delete one first. A legacy server can't take snapshots, and answers 409 not_eligible.
Restore a snapshot¶
POST /
Overwrite the server's disk with a snapshot.
Warning
Everything written to the server's disk since the snapshot was taken is lost.
{"snapshot_id": 2958}
The snapshot must be one of the project's, and completed; any other answers 400 validation_error.
New servers from a snapshot¶
To create a new server from a snapshot, order a server with its snapshot_id instead of an image.
Errors¶
| Status | Code | When |
|---|---|---|
| 400 | validation_error |
A field is invalid, or the snapshot to restore isn't the project's or isn't completed. |
| 403 | read_only_key |
A change with a read-only key. |
| 403 | project_not_ready |
The project is still being set up. |
| 404 | not_found |
No such snapshot or server in the project. |
| 409 | action_in_progress |
Another exclusive action is running on the server. |
| 409 | snapshot_limit_reached |
Your account has as many snapshots as it can hold. |
| 409 | not_eligible |
A legacy server can't take snapshots. |
| 502 | upstream_error |
A system behind the API failed. |