curl --request PUT \ --url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/resize/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \ --header 'Authorization: Bearer <API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{ "sku_item_price_id": 2101, "ha": false, "committed_instance_policy": null, "next_sku_item_price_id": null}'import requests
response = requests.put( "https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/resize/", params={"project_id": "<PROJECT_ID>", "location": "<LOCATION>", "apikey": "<API_KEY>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "sku_item_price_id": 2101, "ha": False, "committed_instance_policy": None, "next_sku_item_price_id": None, },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_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({ "sku_item_price_id": 2101, "ha": false, "committed_instance_policy": null, "next_sku_item_price_id": null }),});console.log(await response.json());Moves a Running Load Balancer to another plan, turns high availability (2 instances) on or off, or both. Billing changes: the old plan and instance count stop being billed and the new ones start. A Load Balancer on a committed plan cannot change its plan or instance count until its term ends. The Load Balancer needs the Update permission.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Load Balancer 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”Send sku_item_price_id, ha, or both. A field you leave out keeps its current value.
object
ID of the plan the Load Balancer runs on. The plan sets its capacity (requests per second, connections) and its billing. It must be a Load Balancer plan of the same region that fits the type.
Example
2101true to run on 2 instances, false for 1. Each instance is billed at the plan rate.
Example
falseNeeded when the new plan is a committed plan: what happens when the term ends.
Example
nullFor a committed plan that continues or converts: the plan to move to. Required for those end-of-term choices. It must be the same plan in the same region, committed to continue or hourly to convert to hourly.
Example
nullResponses
Section titled “Responses”The resized Load Balancer
object
object
The certificate the Load Balancer serves.
object
Certificate ID. Absent when the Load Balancer uses the platform certificate.
Where the certificate comes from, PLATFORM, ACME or UPLOADED.
Domain names the certificate covers.
When the certificate expires. null for the platform certificate.
Days until it expires. null for the platform certificate.
true when the certificate renews itself.
The address the E2E platform gives the Load Balancer.
The public IP address. null until one is assigned.
Initializing while the Load Balancer is being set up, Running, Stopped, or Failed.
L7 for HTTP and HTTPS traffic, L4 for TCP traffic.
How requests are spread over backends.
Instances the Load Balancer runs on: 2 when ha is true, otherwise 1.
ID of the plan.
Name of the plan. null without a plan.
hourly or committed. null without a plan.
Length of the committed term in days. null on an hourly plan.
The committed term and what happens when it ends. null on an hourly plan.
object
true when the Load Balancer runs on 2 instances.
Health check settings. Every key is optional; a key you leave out takes its default.
object
How the check probes a backend. Default TCP.
Seconds between checks. Default 10.
Seconds to wait for an answer. Default 3.
Failed checks in a row before a backend is taken out. Default 3.
Passing checks in a row before a backend is put back. Default 2.
The path an HTTP check requests. Default /.
Status codes that count as healthy for an HTTP check. Default [200].
Server errors in a row before a backend is taken out. Default 5.
Errors 502, 503 or 504 in a row before a backend is taken out. Default 5.
Seconds a backend stays out after it is taken out. Default 30.
Seconds between scans for backends to take out. Default 10.
Most backends, in percent, that can be out at once. Default 50.
Count connection errors apart from errors the backend returned. Default false.
The port the Load Balancer listens on.
Protocols the Load Balancer accepts. Empty means both.
true when HTTP requests are redirected to HTTPS.
Bandwidth limit in Mbps.
Requests allowed per rate_limit_unit, set by the plan.
Most connections allowed, set by the plan.
Seconds to wait when connecting to a backend.
Seconds a client connection may stay idle.
Seconds a backend connection may stay idle.
Seconds an idle HTTP connection is kept open.
Seconds a WebSocket connection may stay open.
TCP backends of an L4 Load Balancer.
object
The backend groups.
object
What the group’s backends are.
object
object
For a Virtual Machine or Auto Scaling Group backend, the name or ID it refers to.
The user who created the Load Balancer.
object
The routing rules.
object
object
object
object
Whether the Load Balancer can serve traffic.
object
ready, or needs_backends when no backend is set and every request gets 503.
Setup stage while the Load Balancer is being created.
How far setup has got, 0 to 100.
Rough seconds of setup left.
When it first became Running.
Why setup failed, if it did.
The setup checklist. Empty unless the status is Initializing or Failed.
object
object
Example
{ "code": 200, "message": "Success", "data": { "id": 12, "name": "example-lb", "certificate": { "id": 12, "source": "PLATFORM", "name": "Platform wildcard", "not_after": null, "days_remaining": null, "managed": true }, "description": "Front end for the web tier", "domain": "lb-12-abc123.e2enetworks.net", "public_ip": "203.0.113.10", "environment": null, "status": "Initializing", "lb_type": "L4", "scheme": "internet-facing", "algorithm": "ROUND_ROBIN", "node_count": 1, "sku_id": null, "sku_item_price_id": 2101, "plan": "LB-Small", "plan_type": "hourly", "committed_days": null, "ha": false, "vpc_id": null, "health_check": true, "health_check_config": { "protocol": "TCP", "interval_seconds": 10, "timeout_seconds": 3, "unhealthy_threshold": 3, "healthy_threshold": 2, "path": "/healthz", "consecutive_5xx_errors": 5, "consecutive_gateway_errors": 5, "base_ejection_time_seconds": 30, "outlier_interval_seconds": 10, "max_ejection_percent": 50, "split_external_local_origin_errors": false }, "listener_port": 443, "frontend_protocols": [ "HTTP" ], "backend_protocol": "HTTP", "http_redirect": false, "bandwidth_mbps": null, "rate_limit": 1000, "rate_limit_unit": "Second", "connection_limit": 10000, "connection_timeout": 10, "client_timeout": 60, "server_timeout": 60, "http_keep_alive_timeout": 60, "websocket_timeout": 3600, "targets": [ { "id": 31, "ip_address": "203.0.113.21", "port": 8080, "weight": 1, "name": "app-1" } ], "target_groups": [ { "id": 7, "name": "web-backend", "backend_type": "ip", "algorithm": "ROUND_ROBIN", "port": 8080, "protocol": "HTTP", "health_check_config": { "protocol": "HTTP", "path": "/healthz" }, "request_timeout_seconds": 30, "retry_attempts": 2, "targets": [ { "id": 41, "ip_address": "203.0.113.21", "port": 8080, "weight": 1, "name": "app-1", "resource_ref": null } ], "created_at": "2026-10-21T11:17:29Z", "updated_at": "2026-10-21T11:17:29Z" } ], "created_by": { "id": 1, "name": "A User", "email": "user@example.com", "username": "auser" }, "created_at": "2026-10-21T11:17:29Z", "updated_at": "2026-10-21T11:18:50Z", "rules": [ { "id": 5, "name": "route-to-web", "priority": 10, "routing_strategy": "WEIGHT_BASED", "match": {}, "target_group_id": null, "status": "Active" } ], "has_active_load_aware_rule": false, "configuration_state": { "state": "ready", "detail": "" }, "stage": "running", "stage_message": "Ready", "stage_percent": 100, "stage_started_at": "2026-10-21T11:19:00Z", "eta_seconds": 0, "launch_started_at": "2026-10-21T11:17:29Z", "became_ready_at": "2026-10-21T11:19:00Z", "failure_reason": null, "progress_steps": [ { "key": "creating_gateway", "label": "Creating load balancer", "status": "done", "message": null, "started_at": "2026-10-21T11:17:30Z", "completed_at": "2026-10-21T11:18:20Z", "duration_seconds": 50 } ] }, "errors": {}}The Load Balancer cannot be resized (“Only load balancers can be resized.”); neither sku_item_price_id nor ha was sent, or nothing would change (“Choose a different plan or HA setting.”); the Load Balancer is not Running (“The load balancer must be Running to resize (current status: errors “Project ID is missing or invalid”.
object
object
Example
{ "code": 400, "message": "Bad Request", "data": {}, "errors": "Choose a different plan or HA setting."}No Load Balancer with that ID in the project and region.
object
object
Example
{ "code": 404, "message": "Bad Request", "data": {}, "errors": "Gateway not found"}