curl --request PUT \ --url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \ --header 'Authorization: Bearer <API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example-lb", "description": "Front end for the web tier", "committed_instance_policy": null, "next_sku_item_price_id": null, "algorithm": "ROUND_ROBIN", "health_check": true, "health_check_config": { "protocol": "HTTP", "interval_seconds": 10, "timeout_seconds": 3, "unhealthy_threshold": 3, "healthy_threshold": 2, "path": "/healthz", "expected_statuses": [ 0 ], "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, "ssl_cert_id": "12", "connection_timeout": 10, "client_timeout": 60, "server_timeout": 60, "http_keep_alive_timeout": 60, "websocket_timeout": 3600}'import requests
response = requests.put( "https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/", params={"project_id": "<PROJECT_ID>", "location": "<LOCATION>", "apikey": "<API_KEY>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "name": "example-lb", "description": "Front end for the web tier", "committed_instance_policy": None, "next_sku_item_price_id": None, "algorithm": "ROUND_ROBIN", "health_check": True, "health_check_config": { "protocol": "HTTP", "interval_seconds": 10, "timeout_seconds": 3, "unhealthy_threshold": 3, "healthy_threshold": 2, "path": "/healthz", "expected_statuses": [ 0, ], "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, "ssl_cert_id": "12", "connection_timeout": 10, "client_timeout": 60, "server_timeout": 60, "http_keep_alive_timeout": 60, "websocket_timeout": 3600, },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/");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({ "name": "example-lb", "description": "Front end for the web tier", "committed_instance_policy": null, "next_sku_item_price_id": null, "algorithm": "ROUND_ROBIN", "health_check": true, "health_check_config": { "protocol": "HTTP", "interval_seconds": 10, "timeout_seconds": 3, "unhealthy_threshold": 3, "healthy_threshold": 2, "path": "/healthz", "expected_statuses": [ 0 ], "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, "ssl_cert_id": "12", "connection_timeout": 10, "client_timeout": 60, "server_timeout": 60, "http_keep_alive_timeout": 60, "websocket_timeout": 3600 }),});console.log(await response.json());Changes settings of a Load Balancer. Send only the fields to change. The plan and the number of instances change with Resize Load Balancer instead; the capacity limits (rate_limit, connection_limit, bandwidth_mbps) follow the plan. Sending ssl_cert_id as null or an empty value detaches the certificate. For a Load Balancer on a committed plan you can change committed_instance_policy and next_sku_item_price_id. 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”object
New name, up to 255 characters, unique in the project.
Example
example-lbA description.
Example
Front end for the web tierFor a Load Balancer on 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
nullHow requests are spread over backends. Leave out to keep the current value. Other values are LEAST_REQUEST, LEAST_CONNECTION, RANDOM and SOURCE_IP_HASH.
Example
ROUND_ROBINTurn the health check on or off. Leave out to keep the current value.
Example
trueHealth check settings. Every key is optional; a key you leave out takes its default.
object
How the check probes a backend. Default TCP.
Example
HTTPSeconds between checks. Default 10.
Example
10Seconds to wait for an answer. Default 3.
Example
3Failed checks in a row before a backend is taken out. Default 3.
Example
3Passing checks in a row before a backend is put back. Default 2.
Example
2The path an HTTP check requests. Default /.
Example
/healthzStatus codes that count as healthy for an HTTP check. Default [200].
Server errors in a row before a backend is taken out. Default 5.
Example
5Errors 502, 503 or 504 in a row before a backend is taken out. Default 5.
Example
5Seconds a backend stays out after it is taken out. Default 30.
Example
30Seconds between scans for backends to take out. Default 10.
Example
10Most backends, in percent, that can be out at once. Default 50.
Example
50Count connection errors apart from errors the backend returned. Default false.
Example
falseThe port the Load Balancer listens on, 1 to 65535.
Example
443Protocols to accept. Empty or left out means both. Applies to L7.
How the Load Balancer talks to backends, up to 16 characters. GRPC makes routing rules without a backend group gRPC.
Example
HTTPRedirect HTTP requests to HTTPS. Needs HTTP and HTTPS both on. Leave out to keep the current value.
Example
falseID of a certificate of the project to serve, as text or a number. It must not have expired.
Example
12Seconds to wait when connecting to a backend. Whole number of seconds, 0 or more.
Example
10Seconds a client connection may stay idle. Whole number of seconds, 0 or more.
Example
60Seconds a backend connection may stay idle. Whole number of seconds, 0 or more.
Example
60Seconds an idle HTTP connection is kept open. Whole number of seconds, 0 or more.
Example
60Seconds a WebSocket connection may stay open. Whole number of seconds, 0 or more.
Example
3600Responses
Section titled “Responses”The Load Balancer as saved
object
object
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.
ID of the certificate bound to the Load Balancer, as text.
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.
The user who created the Load Balancer.
object
object
Example
{ "code": 200, "message": "Success", "data": { "id": 12, "name": "example-lb", "description": "Front end for the web tier", "environment": null, "connection_limit": 10000, "rate_limit": 1000, "rate_limit_unit": "Second", "max_concurrent_requests": null, "bandwidth_mbps": null, "lb_type": "L4", "scheme": "internet-facing", "algorithm": "ROUND_ROBIN", "vpc_id": null, "node_count": 1, "sku_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, "backend_protocol": "HTTP", "http_redirect": false, "ssl_cert_id": null, "ipv6": false, "security_group_id": null, "connection_timeout": 10, "client_timeout": 60, "server_timeout": 60, "http_keep_alive_timeout": 60, "websocket_timeout": 3600, "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:17:29Z" }, "errors": {}}A field is not valid (errors is keyed by field); the new name is already used or the save failed (“Failed to update load balancer. Please try again later.”); committed_instance_policy was sent for a Load Balancer on an hourly plan (“End-of-term options apply only to a load balancer on a committed plan.”); or HTTP was turned off while a free certificate for a custom domain is in use. errors then reads “Can’t turn off HTTP. Your Let’s Encrypt certificate for frontend_protocols. A missing or invalid project ID also gives 400 with errors “Project ID is missing or invalid”.
object
object
Example
{ "code": 400, "message": "Bad Request", "data": {}, "errors": "Failed to update load balancer. Please try again later."}No Load Balancer with that ID in the project and region.
object
object
Example
{ "code": 404, "message": "Bad Request", "data": {}, "errors": "Gateway not found"}