curl --request PUT \ --url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/autoscale-groups/{group_id}/resize/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \ --header 'Authorization: Bearer <API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{ "cardinality": 4, "hold_seconds": 180, "update_min_nodes": false}'import requests
response = requests.put( "https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/autoscale-groups/{group_id}/resize/", params={"project_id": "<PROJECT_ID>", "location": "<LOCATION>", "apikey": "<API_KEY>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "cardinality": 4, "hold_seconds": 180, "update_min_nodes": False, },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/autoscale-groups/{group_id}/resize/");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({ "cardinality": 4, "hold_seconds": 180, "update_min_nodes": false }),});console.log(await response.json());Sets the number of VMs a Running group runs right away. A count above the saved Minimum VMs is a hold that ends after hold_seconds (180 by default), after which the group returns to its own range; set update_min_nodes to make it permanent by moving the saved Minimum VMs. The change is logged as a manual resize.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Auto Scaling Group 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
Required. The number of VMs to run, from 1 to the group’s Maximum VMs.
Example
4How long a count above the saved Minimum VMs is held, from 60 to 86,400 seconds. Default 180.
Example
180true moves the saved Minimum VMs to cardinality and leaves no hold. Default false.
Example
falseResponses
Section titled “Responses”The group after the change. message says whether the new size holds.
object
object
The group’s name.
An identifier for the group, used when you contact support. It cannot be changed.
Cooldown while the group is Running, usage is not over the target, and fewer than scale_in_stabilization_seconds have passed since the last usage-based size change; otherwise status.
true while the group is in that cooldown. The group will not remove VMs during it.
Seconds left of that hold. null when not holding.
The launch step the group is at. null before a launch has begun.
Launch progress, 0 to 100.
Estimated seconds left of the launch.
An identifier for the project in the region, used when you contact support.
The group’s rates for one VM, in the currency of its plan. null when the group has no plan.
object
Compute price per VM per hour.
Disk price per GB per month.
Disk size included in the compute price, in GB.
Disk size per VM that is charged, in GB.
Hours in the month used for the monthly figure.
Compute plus disk, per VM per hour.
Compute plus disk, per VM per month.
How the group’s usage-based scaling has behaved. Based on the group’s recent scale events.
object
The period the counts cover.
Times in that period that usage-based scaling added VMs and the count reached Maximum VMs.
Times in that period that usage-based scaling reversed direction.
Hints on the group’s settings.
object
object
object
Why the group is or is not changing size now: not_running, schedule_only, at_max_capacity, condition_met_stabilizing, in_cooldown, at_min_capacity, below_target or active.
object
Number of VMs that are ready.
While the group is Creating, how many VMs are still starting. null otherwise.
A coarse launch phase: validated, network_applied, created, launching or ready. null for other steps.
The launch checklist. Empty once the group is past launching, except for a Failed group, where it shows the step that failed.
object
Step identifier.
What the step does.
While the step runs, a live line; on the step that failed, the reason.
true when the current launch step has run longer than usual.
Why the group is Failed. Read it only when status is Failed.
The cause of a failed launch: credit, quota, inventory, config or transient.
true for a Creating or Failed group that has never been Running.
The region.
Minimum VMs in force now. While a schedule or Scale Now holds the minimum higher, this is the held value.
Maximum VMs in force now.
The saved Minimum VMs.
The saved Maximum VMs.
When the schedule hold now in force ends. null when none.
The minimum a Scale Now hold sets. null when no hold is in force.
When the Scale Now hold ends.
The number of VMs the group is set to run.
Same as scale_in_stabilization_seconds.
Number of watched periods before the group adds VMs.
Length of one watched period, in seconds.
How long usage must stay below the target before VMs are removed, in seconds. At least 120.
How long usage must stay above the target before VMs are added, in seconds.
Same value as scale_out_stabilization_seconds, under its older name.
Every VM in a group gets a public IP address.
http or https, for http checks.
Same value as health_check_grace_period_seconds.
ID of the snapshot the group launches from. null for a group made from a VM until its snapshot exists.
The operating system of the source image.
The plan the group’s VMs run on.
Average CPU use across the group’s VMs, as last measured.
The VM the group was made from. null once that VM is deleted.
The source VM’s identifier, kept after the VM is deleted.
Disk per VM, in GB.
Number of VMs now in the group.
One schedule of the group.
object
When the schedule runs: minute, hour, day of month, month, day of week.
The time zone of cron_expression.
The Minimum VMs the schedule sets.
The Maximum VMs the schedule sets.
How long the schedule holds its range, in seconds. null when it holds until another schedule changes it.
When the schedule’s hold ends. null when no hold is in force.
When the schedule next runs. null while it is disabled.
When the schedule last ran.
ID of the user who created the group.
Whether the new VM count stays.
object
true when the new size is kept until you change it; false when it is a hold that ends.
The Minimum VMs the group returns to. Present only when durable is false.
object
Example
{ "code": 200, "message": "This group's minimum capacity was raised to match, so the new size holds even though current usage is below the scaling threshold — the autoscaler can add more VMs above it, but will never drop below it. Lower the minimum in Edit to let it scale back down.", "data": { "id": 412, "name": "example-group", "vmpool_name": "example-group-ab12", "status": "Creating", "display_status": "Running", "in_cooldown": false, "cooldown_seconds_remaining": null, "stage": "running", "stage_message": "Ready", "stage_percent": 100, "stage_started_at": "2026-10-21T11:19:02+00:00", "eta_seconds": 0, "launch_started_at": "2026-10-21T11:17:29+00:00", "became_ready_at": "2026-10-21T11:21:40+00:00", "namespace": "project-example", "pricing": { "currency": "INR", "compute_hourly_per_vm": 5.5, "disk_rate_per_gb_month": 4, "free_disk_gb": 30, "billable_disk_gb": 20, "disk_monthly_per_vm": 80, "disk_hourly_per_vm": 0.11, "hours_per_month_basis": 730, "hourly_per_vm": 5.61, "monthly_per_vm": 4174.5 }, "scaling_health": { "window": "24h", "max_capacity_reached_count": 0, "oscillation_count": 0, "recommendations": [ { "code": "raise_maximum", "severity": "warning", "facts": { "times_at_max": 3, "window": "24h", "current_max": 5 } } ], "current_state": { "code": "below_target", "facts": { "metric": "cpu", "current": 31, "target": 60 } } }, "ready_count": 3, "booting_count": null, "provisioning_phase": "ready", "progress_steps": [ { "key": "creating_vmpool", "label": "Creating scale group", "description": "Creating the group that will hold your VMs.", "status": "done", "message": null, "started_at": "2026-10-21T11:17:31+00:00", "completed_at": "2026-10-21T11:17:51+00:00", "duration_seconds": 20 } ], "is_delayed": false, "delayed_message": null, "failure_reason": null, "failure_kind": null, "can_relaunch": false, "has_ever_reached_running_state": true, "location": "Delhi", "min_replicas": 3, "max_replicas": 10, "base_min_replicas": 2, "base_max_replicas": 10, "active_window_ends_at": null, "manual_override_min_replicas": null, "manual_override_ends_at": null, "desired_replicas": 3, "policy_type": "elastic_cpu", "scale_mode": "elastic", "cpu_threshold_percent": 60, "memory_threshold_percent": null, "network_threshold_bytes_per_sec": null, "custom_parameter_name": null, "custom_threshold_percent": null, "cooldown_period": 300, "watch_period": 3, "period_duration": 10, "scale_in_stabilization_seconds": 300, "scale_out_stabilization_seconds": 30, "scale_out_cooldown_seconds": 30, "public_ip_enabled": true, "scale_up_operator": ">", "scale_down_operator": "<", "scale_down_threshold_percent": null, "thresholds_enforced": false, "health_check_type": "vm_status", "health_check_protocol": null, "health_check_port": null, "health_check_path": "/", "health_check_interval_seconds": 30, "health_check_timeout_seconds": 5, "health_check_unhealthy_threshold": 2, "health_check_healthy_threshold": 1, "startup_grace_period_seconds": 300, "health_check_grace_period_seconds": 300, "auto_replace_unhealthy": true, "backup_snapshot_id": 212, "image_name": "example-vm snapshot", "image_os": "Ubuntu", "machine_size": "4 vCPU · 8 GB RAM", "sku_item_price_id": 1190, "current_cpu_percent": 31.5, "current_memory_percent": null, "source_vm_id": 4984, "source_vm_name": "example-vm", "source_vm_slug_name": "example-vm-abc123", "disk_size_gb": 50, "active_node_count": 3, "scheduled_policies": [ { "id": 88, "group_id": 412, "name": "weekday-morning", "cron_expression": "0 9 * * 1-5", "timezone_name": "UTC", "target_min_replicas": 4, "target_max_replicas": 10, "enabled": true, "duration_seconds": 28800, "window_ends_at": null, "next_run_at": "2026-10-26T09:00:00+00:00", "last_run_at": null, "created_at": "2026-10-21T11:17:29+00:00" } ], "ssh_key_ids": [ 17 ], "security_group_id": 45, "created_at": "2026-10-21T11:17:29+00:00", "created_by": 1, "resize": { "durable": false, "reverts_within_seconds": 180, "reverts_at": "2026-10-21T12:03:00+00:00", "reverts_to_min_replicas": 2 } }, "errors": {}}The group is not Running (as shown), cardinality is not a whole number of at least 1 (“cardinality must be a positive integer.”) or is above Maximum VMs (“cardinality must be between 1 and 10.”), hold_seconds is out of range (“hold_seconds must be an integer between 60 and 86400.”), or the new size was refused (errors is the reason, or “The cluster rejected the new replica bounds.”). errors is “Project ID is missing or invalid” when project_id is missing or not a number.
object
object
Example
{ "code": 400, "message": "Bad Request", "data": {}, "errors": "Only Running groups can be resized. Current status: Stopped."}The caller lacks the permission the call needs on the project, or the region is not allowed.
object
object
Example
{ "code": 403, "message": "Forbidden", "data": {}, "errors": "You don't have permission to access this service. Please verify your policy or project."}No Auto Scaling Group with that ID in the project and region.
object
object
Example
{ "code": 404, "message": "Bad Request", "data": {}, "errors": "Autoscale Group not found"}The new size could not be applied. data is a sentence that ends with the reason.
object
object
Example
{ "code": 500, "message": "Internal Server Error", "data": "Failed to resize the group: <reason>", "errors": {}}