Share via


Pools - Remove Nodes

Removes Compute Nodes from the specified Pool.
This operation can only run when the allocation state of the Pool is steady. When this operation runs, the allocation state changes from steady to resizing. Each request may remove up to 100 nodes.

POST {endpoint}/pools/{poolId}/removenodes?api-version=2025-06-01
POST {endpoint}/pools/{poolId}/removenodes?api-version=2025-06-01&timeOut={timeOut}

URI Parameters

Name In Required Type Description
endpoint
path True

string (uri)

Batch account endpoint (for example: https://batchaccount.eastus2.batch.azure.com).

poolId
path True

string

The ID of the Pool to get.

api-version
query True

string

minLength: 1

The API version to use for this operation.

timeOut
query

integer (int32)

The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.".

Request Header

Media Types: "application/json; odata=minimalmetadata"

Name Required Type Description
client-request-id

string

The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.

return-client-request-id

boolean

Whether the server should return the client-request-id in the response.

ocp-date

string (date-time-rfc7231)

The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.

If-Modified-Since

string (date-time-rfc7231)

A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.

If-Unmodified-Since

string (date-time-rfc7231)

A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.

If-Match

string

An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.

If-None-Match

string

An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.

Request Body

Media Types: "application/json; odata=minimalmetadata"

Name Required Type Description
nodeList True

string[]

A list containing the IDs of the Compute Nodes to be removed from the specified Pool. A maximum of 100 nodes may be removed per request.

nodeDeallocationOption

BatchNodeDeallocationOption

Determines what to do with a Compute Node and its running task(s) after it has been selected for deallocation. The default value is requeue.

resizeTimeout

string (duration)

The timeout for removal of Compute Nodes to the Pool. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).

Responses

Name Type Description
202 Accepted

The request has been accepted for processing, but processing has not yet completed.

Headers

  • DataServiceId: string
  • ETag: string
  • Last-Modified: string
  • client-request-id: string
  • request-id: string
Other Status Codes

BatchError

An unexpected error response.

Security

OAuth2Auth

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

Scopes

Name Description
https://batch.core.windows.net//.default

Examples

Pool remove nodes

Sample request

POST {endpoint}/pools/poolId/removenodes?api-version=2025-06-01



{
  "nodeList": [
    "tvm-1695681911_1-20161122t224741z",
    "tvm-1695681911_2-20161122t224741z"
  ]
}

Sample response

Definitions

Name Description
BatchError

An error response received from the Azure Batch service.

BatchErrorDetail

An item of additional information included in an Azure Batch error response.

BatchErrorMessage

An error message received in an Azure Batch error response.

BatchNodeDeallocationOption

BatchNodeDeallocationOption enums

BatchNodeRemoveOptions

Parameters for removing nodes from an Azure Batch Pool.

BatchError

An error response received from the Azure Batch service.

Name Type Description
code

string

An identifier for the error. Codes are invariant and are intended to be consumed programmatically.

message

BatchErrorMessage

A message describing the error, intended to be suitable for display in a user interface.

values

BatchErrorDetail[]

A collection of key-value pairs containing additional details about the error.

BatchErrorDetail

An item of additional information included in an Azure Batch error response.

Name Type Description
key

string

An identifier specifying the meaning of the Value property.

value

string

The additional information included with the error response.

BatchErrorMessage

An error message received in an Azure Batch error response.

Name Type Description
lang

string

The language code of the error message.

value

string

The text of the message.

BatchNodeDeallocationOption

BatchNodeDeallocationOption enums

Value Description
requeue

Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Remove Compute Nodes as soon as Tasks have been terminated.

terminate

Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove Compute Nodes as soon as Tasks have been terminated.

taskcompletion

Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Remove Compute Nodes when all Tasks have completed.

retaineddata

Deprecated, we encourage you to upload task data to Azure Storage in your task and use TaskCompletion instead. Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Remove Compute Nodes when all Task retention periods have expired.

BatchNodeRemoveOptions

Parameters for removing nodes from an Azure Batch Pool.

Name Type Description
nodeDeallocationOption

BatchNodeDeallocationOption

Determines what to do with a Compute Node and its running task(s) after it has been selected for deallocation. The default value is requeue.

nodeList

string[]

A list containing the IDs of the Compute Nodes to be removed from the specified Pool. A maximum of 100 nodes may be removed per request.

resizeTimeout

string (duration)

The timeout for removal of Compute Nodes to the Pool. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).