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"}'import requests
response = requests.post( "https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/{Instance_id}/snapshots/", params={"project_id": "<PROJECT_ID>", "location": "<LOCATION>", "apikey": "<API_KEY>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "name": "before-upgrade", },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/{Instance_id}/snapshots/");url.search = new URLSearchParams({ project_id: "<PROJECT_ID>", location: "<LOCATION>", apikey: "<API_KEY>" });
const response = await fetch(url, { method: "POST", headers: { "Authorization": "Bearer <API_TOKEN>", "Content-Type": "application/json" }, body: JSON.stringify({ "name": "before-upgrade" }),});console.log(await response.json());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.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Instance ID
Query Parameters
Section titled “Query Parameters”Project ID
Active IAM ID (To access contact person account) Find your Active IAM ID here
Location
Request Bodyrequired
Section titled “Request Bodyrequired”object
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.
Example
before-upgradeResponses
Section titled “Responses”Snapshot creation started
object
object
ID of the VM the snapshot was taken from.
Name of that VM when the snapshot was taken.
true once the VM has been deleted. The snapshot stays.
The snapshot’s name.
The snapshot is not ready yet.
manual for one you took, scheduled for one the schedule took.
filesystem when the VM’s guest agent answered while the snapshot was taken, crash otherwise.
Why the snapshot has its consistency: quiesced, vm_stopped or guest_agent_unavailable.
Size of the disk the snapshot was taken from, in GB.
Size of the disk the snapshot was taken from, in bytes.
Storage the snapshot uses, in bytes. null until it is measured.
When the snapshot failed, if it did.
The image and version of the source VM. null when none is recorded.
object
What the snapshot covers.
local for a snapshot on the cluster, export for a copy in object storage.
Who took the snapshot.
object
How far the snapshot has got. Always present.
object
Why the snapshot failed, if it did.
object
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.
object
object
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.
object
object
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.
object
object
Example
{ "code": 412, "message": "Precondition Failed", "data": {}, "errors": "Snapshot create failed"}