curl --request PUT \ --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 '{ "snapshot_enabled": true, "snapshot_schedule_cron": "0 2 * * *", "snapshot_retention_count": 7}'import requests
response = requests.put( "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={ "snapshot_enabled": True, "snapshot_schedule_cron": "0 2 * * *", "snapshot_retention_count": 7, },)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: "PUT", headers: { "Authorization": "Bearer <API_TOKEN>", "Content-Type": "application/json" }, body: JSON.stringify({ "snapshot_enabled": true, "snapshot_schedule_cron": "0 2 * * *", "snapshot_retention_count": 7 }),});console.log(await response.json());Turns automatic snapshots on or off for the Virtual Machine, or changes their schedule. Scheduled snapshots are named scheduled-snapshot- with the date and time in India time. Beyond the number to keep, the oldest scheduled snapshot is removed; snapshots you took by hand are never removed. Turning the schedule off keeps the snapshots already taken. Send the whole body each time, with snapshot_enabled as a JSON boolean.
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
true to take snapshots on the schedule, false to stop.
Example
trueFive-field cron expression: minute, hour, day of month, month, day of week. Read as India time (IST). Defaults to 0 */6 * * *, every 6 hours.
Example
0 2 * * *How many scheduled snapshots to keep, from 1 to 60. Defaults to 7.
Example
7Responses
Section titled “Responses”The schedule after the change
object
object
true when automatic snapshots are on.
The schedule, as a five-field cron expression in India time (IST).
How many scheduled snapshots to keep, from 1 to 60.
When the schedule last took a snapshot.
When it takes the next one. null when automatic snapshots are off.
The stored schedule record: id, vm_id, enabled, schedule_cron, retention_count, last_run_at, status, location, created_at, updated_at. null for a VM that never had a schedule.
object
object
Example
{ "code": 200, "message": "Automatic snapshots enabled", "data": { "snapshot_enabled": true, "snapshot_schedule_cron": "0 */6 * * *", "snapshot_retention_count": 7, "snapshot_last_run_at": null, "snapshot_next_run_at": "2026-10-21T12:30:00Z", "policy": null }, "errors": {}}snapshot_enabled is missing, the cron expression is not valid, the number to keep is outside 1 to 60, or, when turning snapshots on, the plan does not support them. errors is keyed by the field.
object
object
object
Example
{ "code": 400, "message": "Bad Request", "data": {}, "errors": { "snapshot_retention_count": "snapshot_retention_count must be between 1 and 60." }}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"}Turning snapshots on is refused because the VM’s storage has no snapshot class.
object
object
Example
{ "code": 412, "message": "Precondition Failed", "data": {}, "errors": "Automatic snapshots can't be enabled for this VM: <reason>"}