curl --request PUT \ --url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/tenant_clusters/{tenant_cluster_id}/node-pools/{node_pool_id}/committed-plan/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \ --header 'Authorization: Bearer <API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{ "updation_policy": "auto_renew", "next_sku_item_price_id": 0, "sku_item_price_id": 0}'import requests
response = requests.put( "https://api.e2enetworks.com/myaccount/api/v1/gpu/tenant_clusters/{tenant_cluster_id}/node-pools/{node_pool_id}/committed-plan/", params={"project_id": "<PROJECT_ID>", "location": "<LOCATION>", "apikey": "<API_KEY>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "updation_policy": "auto_renew", "next_sku_item_price_id": 0, "sku_item_price_id": 0, },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/gpu/tenant_clusters/{tenant_cluster_id}/node-pools/{node_pool_id}/committed-plan/");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({ "updation_policy": "auto_renew", "next_sku_item_price_id": 0, "sku_item_price_id": 0 }),});console.log(await response.json());Does one of two things, depending on the pool’s plan.
On a committed pool, it sets what happens when the term ends: send updation_policy and next_sku_item_price_id. This changes only the end of the term; it does not shorten the term or refund anything.
On an hourly pool, it moves the pool onto a committed plan: send sku_item_price_id as well, a committed plan of the pool’s resource. The pool must be ready and have a fixed size, and the account needs enough credit for the whole term, which is charged upfront. The pool cannot then be resized until the term ends.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Kubernetes cluster ID, as returned by List Kubernetes Clusters.
Worker node pool ID, from the cluster’s node_pools list.
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
What happens when the term ends: auto_renew starts a new term if the account has enough credit (otherwise the pool moves to hourly billing), and convert_to_hourly_billing moves the pool to the hourly plan.
The plan of the same resource to continue on: a committed plan with auto_renew, or an hourly plan with convert_to_hourly_billing.
Only to move an hourly pool onto a committed plan. The committed plan to move it onto.
Responses
Section titled “Responses”The committed plan settings are saved.
object
object
resizing while the pool moves to a new fixed size, scaling while its autoscaler changes the node count.
The node count the pool is set to.
The pool’s nodes that are up and ready.
object
The key without the node.e2enetworks.com/ prefix, which the platform adds. Up to 63 letters, numbers, -, _, or ., starting and ending with a letter or number.
Required. The same characters as the key.
object
The key without the node.e2enetworks.com/ prefix, which the platform adds. Up to 63 letters, numbers, -, _, or ., starting and ending with a letter or number.
May be empty.
NoExecute evicts running pods that do not tolerate the taint.
The computing resource and pricing plan a node pool runs on.
object
object
object
hourly or committed.
Set only for a pool on a committed plan.
object
The computing resource and pricing plan a node pool runs on.
object
object
object
hourly or committed.
The pool’s size bounds. A min_replicas lower than max_replicas means the pool is autoscaled; equal values are a fixed size.
object
object
Example
{ "code": 200, "data": { "id": 22, "tenant_cluster_id": 103, "name": "app-workers", "role": "control_plane", "status": "queued", "replicas": 2, "ready_replicas": 2, "labels": [ { "key": "team", "value": "ml" } ], "taints": [ { "key": "dedicated", "value": "gpu", "effect": "NoSchedule" } ], "sku_details": { "specs": { "sku_id": 101, "name": "C3.8GB", "series": "CPU", "cpu": 4, "memory": 8 }, "plan": { "sku_item_price_id": 1001, "sku_type": "hourly", "committed_days": 0, "unit_price": 4.5, "currency": "INR" } }, "committed_info": { "updation_policy": "auto_renew", "next_sku_item_price": { "specs": { "sku_id": 101, "name": "C3.8GB", "series": "CPU", "cpu": 4, "memory": 8 }, "plan": { "sku_item_price_id": 1001, "sku_type": "hourly", "committed_days": 0, "unit_price": 4.5, "currency": "INR" } }, "end_date": "2026-11-20T10:15:00Z" }, "autoscaling": { "min_replicas": 2, "max_replicas": 2 }, "created_at": "2026-10-20T10:15:00Z", "updated_at": "2026-10-20T10:42:00Z" }, "errors": {}, "message": "Success"}