---
title: "Deploy cluster"
method: POST
path: "/v1/clusters"
tags: ["Clusters"]
---

# Deploy cluster

`POST /v1/clusters`

Deploy a new cluster.

Before deploying add at least one SSH key to enable access to your cluster.

Cluster types can be listed using the `GET /v1/cluster-types` endpoint. Image types can be listed using the `GET /v1/images/cluster` endpoint.

## Headers

- `user-agent` string, required
- `cf-connecting-ip` string, required

## Request body

- DeployClusterPublicDto
  - `cluster_type` string, required — Cluster instance type. Can be listed using the `GET /v1/cluster-types` endpoint.
  - `image` string, required — OS image specification for the cluster. For a list of supported images, check `GET /v1/images/cluster` endpoint, `"image_type"` property.
  - `ssh_key_ids` union — SSH key IDs to attach to the cluster. Required if image is an OS image type.
    - string, uuid
    - string[]
  - `startup_script_id` string — Startup script ID to run on cluster initialization
  - `hostname` string, required
  - `description` string, required
  - `tags` TagDto[] — Key-value tags for the new cluster. Maximum 10. Omit `value` for a freeform tag. Keys are lowercased.
    - `key` string, required
    - `value` string — Omit for a freeform tag with no value
  - `location_code` string, required — Location code for the cluster and its shared volume
  - `contract` 'PAY_AS_YOU_GO' | 'LONG_TERM' — Contract type. For clusters, only PAY_AS_YOU_GO currently supported.
  - `extension_settings` 'auto_renew' | 'pay_as_you_go' | 'end_contract' — Extension settings for long-term contracts. Takes priority over auto_rental_extension and turn_to_pay_as_you_go.
  - `auto_rental_extension` boolean — Deprecated: use extension_settings instead. Enable automatic rental extension for long-term contracts.
  - `turn_to_pay_as_you_go` boolean — Deprecated: use extension_settings instead. Automatically convert to pay-as-you-go after the long-term period ends.
  - `shared_volume` SharedVolumeDto, required
    - `name` string, required — Name of the shared cluster volume
    - `size` number, required — Size of the shared cluster volume in GB
  - `existing_volumes` ExistingSharedVolumeDto[] — Existing shared volumes to attach to the cluster. Should be in the same location as the cluster. Must be previously created and attached to the cluster.
    - `id` string, required — Existing shared volume ID

## Response `202`

Cluster deployed

- DeployClusterResponsePublicApiDto
  - `id` string, required

---

[API](https://skmtc.net/datacrunch/apis/verda-cloud-public-api.md) · [All operations](https://skmtc.net/datacrunch/apis/verda-cloud-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/datacrunch/verda-cloud-public-api/revisions/0d66c7340876/schema)
