Skip to main content
POST
Create a node pool

Authorizations

Authorization
string
header
required

Bearer token for the authenticated caller.

Headers

akua-context
string

Optional workspace/scope context for the request. Carries a single workspace wire id (ws_…) today. Only needed for broad tokens - a workspace-owned token implies its workspace.

Required string length: 1 - 53
Example:

"ws_j572abc123def4"

idempotency-key
string

Optional caller-supplied idempotency key. Any non-empty key up to 64 characters is accepted. Endpoint-specific documentation describes how the key is used.

Required string length: 1 - 64
Example:

"create-prod-2026-05-07"

Path Parameters

id
string
required
Required string length: 3 - 54

Query Parameters

node_pool_id
string
required

A DNS label of at most 40 characters, unique in the Cluster. Every node of the pool carries it as the label akua.dev/node-pool.

Pattern: ^[a-z](?:[-a-z0-9]{0,38}[a-z0-9])?$
Example:

"default"

Body

application/json
machine_type
string
required

Server type Akua orders for each node, in the Cluster’s Region. The free trial covers one cx23.

Pattern: ^[a-z][a-z0-9-]{0,31}$
Example:

"cx23"

node_count
integer
required

Number of nodes the pool keeps, 0 to 10 at launch.

Required range: 0 <= x <= 10
locations
string[]

Where the pool places its Machines in the Cluster’s Region; empty lets Akua choose. One location at launch.

Maximum array length: 1
Pattern: ^[a-z][a-z0-9-]{1,31}$
image
enum<string>
default:ubuntu-24.04
Available options:
ubuntu-24.04
labels
object
Example:

Response

Node pool creation accepted

id
string
required
Required string length: 2 - 192
workspace_id
string | null
required
Required string length: 1 - 53
organization_id
string | null
required
Required string length: 1 - 54
owner_type
enum<string>
required

Domain entity collection the operation acts on.

Available options:
install,
repository_change_request,
repository,
workspace,
machine,
cluster,
node_pool,
package,
sandbox,
opencode
owner_id
string
required

Prefixed ID of the entity this operation acts on. Prefix matches owner_type (ws_, mch_, clu_, pkg_, inst_, rcr_, repo_, sbx_, oc_); a node pool is clu_<id>/node_pools/<node pool id>.

parent_operation_id
string | null
required

ID of the chained parent operation, when present.

Required string length: 2 - 192
state
enum<string>
required

Lifecycle state. Past-participle terminal states per AIP-216.

Available options:
RUNNING,
SUCCEEDED,
FAILED,
CANCELLED
done
boolean
required

True iff state is a terminal value.

html_url
string<uri>
required

Deep link to the dashboard view of this operation's owning resource when available, otherwise the operation detail page.

Maximum string length: 2048
Example:

"https://akua.dev/installs/inst_j572abc123def456?tab=operations"

metadata
object
required
response
object
required

Populated only when done && state === "SUCCEEDED". Discriminated by type.

error
object | null
required

Populated when state is FAILED or CANCELLED.

last_error
object | null
required

Latest error from any failed step. Populated even mid-flight; cleared when the step succeeds on retry.

started_at
integer
required

Unix timestamp (seconds)

Required range: x >= 0
completed_at
integer | null
required

Unix timestamp (seconds)

Required range: x >= 0
steps
object[]