Skip to content

Create VM Snapshot

POST
/notebooks/{Instance_id}/snapshots/
curl --request POST \
--url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/{Instance_id}/snapshots/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"name": "before-upgrade"
}'

Takes a snapshot of the Virtual Machine’s disk now. The call returns at once with status set to pending; poll List VM Snapshots until it is ready. A snapshot you take this way stays until you delete it. Snapshot storage is billed while the snapshot exists. Plans that do not support snapshots are refused.

Instance_id
required
integer

Instance ID

project_id
required
integer

Project ID

active_iam
integer

Active IAM ID (To access contact person account) Find your Active IAM ID here

location
required
string
Allowed values: Delhi Chennai

Location

Media typeapplication/json
object
name

A name for the snapshot, up to 128 characters, not used by another snapshot of this VM; the name of a snapshot that failed can be used again. Omit it and the snapshot is named Snapshot with the date and time. snapshot_name is accepted in its place.

string

Example

before-upgrade

Snapshot creation started

Media typeapplication/json
object
code
integer
message
string
data
object
id
integer
vm_id

ID of the VM the snapshot was taken from.

integer
vm_name

Name of that VM when the snapshot was taken.

string
nullable
vm_deleted

true once the VM has been deleted. The snapshot stays.

boolean
name

The snapshot’s name.

string
nullable
status

The snapshot is not ready yet.

string
Allowed values: pending ready failed
ready
boolean
snapshot_type

manual for one you took, scheduled for one the schedule took.

string
Allowed values: manual scheduled
consistency

filesystem when the VM’s guest agent answered while the snapshot was taken, crash otherwise.

string
Allowed values: filesystem crash
consistency_reason

Why the snapshot has its consistency: quiesced, vm_stopped or guest_agent_unavailable.

string
size_gb

Size of the disk the snapshot was taken from, in GB.

number
nullable
size_bytes

Size of the disk the snapshot was taken from, in bytes.

integer
nullable
stored_bytes

Storage the snapshot uses, in bytes. null until it is measured.

integer
nullable
taken_at
string
nullable
failed_at

When the snapshot failed, if it did.

string
nullable
created_at
string
image_details

The image and version of the source VM. null when none is recorded.

object
image_id
integer
version_id
integer
name
string
version
string
snapshot_scope

What the snapshot covers.

string
Allowed values: vm disk
tier

local for a snapshot on the cluster, export for a copy in object storage.

string
Allowed values: local export
created_by

Who took the snapshot.

object
id
integer
name
string
email
string
username
string
progress

How far the snapshot has got. Always present.

object
status
string
stage
string
message
string
nullable
percent
integer
eta_seconds
integer
nullable
elapsed_seconds
integer
nullable
reason

Why the snapshot failed, if it did.

string
nullable
percent_is_measured
boolean
is_delayed
boolean
progress_steps
Array<object>
object
key
string
label
string
status
string
Allowed values: done running pending failed
errors
object

Example

{
"code": 200,
"message": "Snapshot creation started",
"data": {
"id": 212,
"vm_id": 4984,
"vm_name": "web-01",
"vm_deleted": false,
"name": "before-upgrade",
"status": "pending",
"ready": false,
"snapshot_type": "manual",
"consistency": "filesystem",
"consistency_reason": "quiesced",
"size_gb": 30,
"size_bytes": 32212254720,
"stored_bytes": 1580000000,
"taken_at": null,
"failed_at": null,
"created_at": "2026-10-21T11:17:29Z",
"image_details": {
"image_id": 14,
"version_id": 16,
"name": "Ubuntu",
"version": "24.04"
},
"snapshot_scope": "vm",
"tier": "local",
"created_by": {
"id": 1,
"name": "A User",
"email": "user@example.com",
"username": "auser"
},
"progress": {
"status": "ready",
"stage": "ready",
"message": null,
"percent": 100,
"eta_seconds": null,
"elapsed_seconds": 12,
"reason": null,
"percent_is_measured": true,
"is_delayed": false,
"progress_steps": [
{
"key": "cutting",
"label": "Taking the snapshot",
"status": "done"
}
]
}
},
"errors": {}
}

The plan does not support snapshots (“Snapshots are not supported for this plan.”), or the name is longer than 128 characters, repeats a name used for this VM, or holds an emoji.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 400,
"message": "Bad Request",
"data": {},
"errors": "Snapshot name must be at most 128 characters."
}

No VM with that ID in the project and region.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 404,
"message": "Bad Request",
"data": {},
"errors": "Invalid Request! Notebook not found"
}

The cluster could not take the snapshot, or the VM’s storage has no snapshot class. errors is the cluster’s own text.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 412,
"message": "Precondition Failed",
"data": {},
"errors": "Snapshot create failed"
}