# Client API: Cloud Compute

> Cloud Compute VM instances (power, console, backups, and details).

Source: https://www.coritan.com/docs/api/reference/client/cloud-compute/

Cloud Compute VM instances (power, console, backups, and details). Paths remain under `/api/v1/client/vps`.

Base URL: `https://api.coritan.com/api/v1`. Paths below are complete.

To try these requests in the browser, open the [interactive Client API reference](https://api.coritan.com/docs).

## Operations

| Method | Path | Summary |
| --- | --- | --- |
| GET | [`/api/v1/client/vps`](#op-get-api-v1-client-vps) | List all VPS instances owned by the current user |
| GET | [`/api/v1/client/vps/templates`](#op-get-api-v1-client-vps-templates) | OS templates ready for order/rebuild: enabled and ready on at least one active node |
| GET | [`/api/v1/client/vps/{uuid}`](#op-get-api-v1-client-vps-uuid) | Get VPS instance details including template metadata |
| GET | [`/api/v1/client/vps/{uuid}/backups`](#op-get-api-v1-client-vps-uuid-backups) | List backups for this instance |
| POST | [`/api/v1/client/vps/{uuid}/backups`](#op-post-api-v1-client-vps-uuid-backups) | Create a new backup of this instance |
| DELETE | [`/api/v1/client/vps/{uuid}/backups/{backup_id}`](#op-delete-api-v1-client-vps-uuid-backups-backup-id) | Delete a backup |
| POST | [`/api/v1/client/vps/{uuid}/backups/{backup_id}/restore`](#op-post-api-v1-client-vps-uuid-backups-backup-id-restore) | Restore from a backup |
| GET | [`/api/v1/client/vps/{uuid}/bandwidth`](#op-get-api-v1-client-vps-uuid-bandwidth) | Get current billing period bandwidth usage vs plan traffic allotment (TB) |
| POST | [`/api/v1/client/vps/{uuid}/cloud-init/regenerate`](#op-post-api-v1-client-vps-uuid-cloud-init-regenerate) | Regenerate cloud init |
| GET | [`/api/v1/client/vps/{uuid}/config`](#op-get-api-v1-client-vps-uuid-config) | Get instance config |
| GET | [`/api/v1/client/vps/{uuid}/console`](#op-get-api-v1-client-vps-uuid-console) | Mint a VNC console session (WebSocket path + RFB password) |
| GET | [`/api/v1/client/vps/{uuid}/credentials`](#op-get-api-v1-client-vps-uuid-credentials) | Username + whether a password is stored (no plaintext) |
| GET | [`/api/v1/client/vps/{uuid}/graphs`](#op-get-api-v1-client-vps-uuid-graphs) | Get RRD graph data from Proxmox |
| GET | [`/api/v1/client/vps/{uuid}/guest`](#op-get-api-v1-client-vps-uuid-guest) | Get guest info |
| PATCH | [`/api/v1/client/vps/{uuid}/hostname`](#op-patch-api-v1-client-vps-uuid-hostname) | Patch hostname |
| GET | [`/api/v1/client/vps/{uuid}/ips`](#op-get-api-v1-client-vps-uuid-ips) | Get instance IPs |
| POST | [`/api/v1/client/vps/{uuid}/name`](#op-post-api-v1-client-vps-uuid-name) | Name instance |
| POST | [`/api/v1/client/vps/{uuid}/power`](#op-post-api-v1-client-vps-uuid-power) | Execute a power action on the VPS |
| GET | [`/api/v1/client/vps/{uuid}/ptr`](#op-get-api-v1-client-vps-uuid-ptr) | Reverse DNS of every address attached to the instance |
| PATCH | [`/api/v1/client/vps/{uuid}/ptr`](#op-patch-api-v1-client-vps-uuid-ptr) | Set the reverse DNS of one attached address (the primary by default) |
| POST | [`/api/v1/client/vps/{uuid}/rebuild`](#op-post-api-v1-client-vps-uuid-rebuild) | Rebuild the VPS with a new OS template |
| POST | [`/api/v1/client/vps/{uuid}/rescue/enter`](#op-post-api-v1-client-vps-uuid-rescue-enter) | Rescue enter |
| POST | [`/api/v1/client/vps/{uuid}/rescue/exit`](#op-post-api-v1-client-vps-uuid-rescue-exit) | Rescue exit |
| GET | [`/api/v1/client/vps/{uuid}/rescue/media`](#op-get-api-v1-client-vps-uuid-rescue-media) | Rescue media |
| POST | [`/api/v1/client/vps/{uuid}/reset-password`](#op-post-api-v1-client-vps-uuid-reset-password) | Reset the root/admin password |
| POST | [`/api/v1/client/vps/{uuid}/resize-preview`](#op-post-api-v1-client-vps-uuid-resize-preview) | Capacity/mode preview for a plan change resize (billing via /services change-plan) |
| GET | [`/api/v1/client/vps/{uuid}/snapshots`](#op-get-api-v1-client-vps-uuid-snapshots) | List snapshots |
| POST | [`/api/v1/client/vps/{uuid}/snapshots`](#op-post-api-v1-client-vps-uuid-snapshots) | Create snapshot |
| DELETE | [`/api/v1/client/vps/{uuid}/snapshots/{snapshot_id}`](#op-delete-api-v1-client-vps-uuid-snapshots-snapshot-id) | Delete snapshot |
| POST | [`/api/v1/client/vps/{uuid}/snapshots/{snapshot_id}/rollback`](#op-post-api-v1-client-vps-uuid-snapshots-snapshot-id-rollback) | Rollback snapshot |
| PUT | [`/api/v1/client/vps/{uuid}/ssh-keys`](#op-put-api-v1-client-vps-uuid-ssh-keys) | Put SSH keys |
| GET | [`/api/v1/client/vps/{uuid}/status`](#op-get-api-v1-client-vps-uuid-status) | Get real-time VM status from Proxmox (enriched) |
| GET | [`/api/v1/client/vps/{uuid}/tasks`](#op-get-api-v1-client-vps-uuid-tasks) | Get instance tasks |

### List all VPS instances owned by the current user {#op-get-api-v1-client-vps}

`GET /api/v1/client/vps`

List all VPS instances owned by the current user.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `tag` | query | string or null | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### OS templates ready for order/rebuild: enabled and ready on at least one active node {#op-get-api-v1-client-vps-templates}

`GET /api/v1/client/vps/templates`

OS templates ready for order/rebuild: enabled and ready on at least one active node.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |

### Get VPS instance details including template metadata {#op-get-api-v1-client-vps-uuid}

`GET /api/v1/client/vps/{uuid}`

Get VPS instance details including template metadata.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### List backups for this instance {#op-get-api-v1-client-vps-uuid-backups}

`GET /api/v1/client/vps/{uuid}/backups`

List backups for this instance.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Create a new backup of this instance {#op-post-api-v1-client-vps-uuid-backups}

`POST /api/v1/client/vps/{uuid}/backups`

Create a new backup of this instance.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json`

| Field | Type | Required |
| --- | --- | --- |
| `note` | string or null | no |
| `mode` | string | no |
| `compress` | string | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Delete a backup {#op-delete-api-v1-client-vps-uuid-backups-backup-id}

`DELETE /api/v1/client/vps/{uuid}/backups/{backup_id}`

Delete a backup.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `backup_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Restore from a backup {#op-post-api-v1-client-vps-uuid-backups-backup-id-restore}

`POST /api/v1/client/vps/{uuid}/backups/{backup_id}/restore`

Restore from a backup. This will restart the VPS.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `backup_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get current billing period bandwidth usage vs plan traffic allotment (TB) {#op-get-api-v1-client-vps-uuid-bandwidth}

`GET /api/v1/client/vps/{uuid}/bandwidth`

Get current billing period bandwidth usage vs plan traffic allotment (TB).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Regenerate cloud init {#op-post-api-v1-client-vps-uuid-cloud-init-regenerate}

`POST /api/v1/client/vps/{uuid}/cloud-init/regenerate`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get instance config {#op-get-api-v1-client-vps-uuid-config}

`GET /api/v1/client/vps/{uuid}/config`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Mint a VNC console session (WebSocket path + RFB password) {#op-get-api-v1-client-vps-uuid-console}

`GET /api/v1/client/vps/{uuid}/console`

Mint a VNC console session (WebSocket path + RFB password).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Username + whether a password is stored (no plaintext) {#op-get-api-v1-client-vps-uuid-credentials}

`GET /api/v1/client/vps/{uuid}/credentials`

Username + whether a password is stored (no plaintext).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get RRD graph data from Proxmox {#op-get-api-v1-client-vps-uuid-graphs}

`GET /api/v1/client/vps/{uuid}/graphs`

Get RRD graph data from Proxmox.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `uuid` | path | string | yes |  |
| `timeframe` | query | string | no | Default: `hour`. |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get guest info {#op-get-api-v1-client-vps-uuid-guest}

`GET /api/v1/client/vps/{uuid}/guest`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Patch hostname {#op-patch-api-v1-client-vps-uuid-hostname}

`PATCH /api/v1/client/vps/{uuid}/hostname`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `hostname` | string | yes |
| `reboot` | boolean | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get instance IPs {#op-get-api-v1-client-vps-uuid-ips}

`GET /api/v1/client/vps/{uuid}/ips`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Name instance {#op-post-api-v1-client-vps-uuid-name}

`POST /api/v1/client/vps/{uuid}/name`

Give the instance a name in a zone the customer holds: A and AAAA
records for its addresses, optionally the same name as reverse DNS and as
the guest hostname.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `hostname` | string | yes |
| `set_ptr` | boolean | no |
| `set_hostname` | boolean | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Execute a power action on the VPS {#op-post-api-v1-client-vps-uuid-power}

`POST /api/v1/client/vps/{uuid}/power`

Execute a power action on the VPS.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `action` | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Reverse DNS of every address attached to the instance {#op-get-api-v1-client-vps-uuid-ptr}

`GET /api/v1/client/vps/{uuid}/ptr`

Reverse DNS of every address attached to the instance.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Set the reverse DNS of one attached address (the primary by default) {#op-patch-api-v1-client-vps-uuid-ptr}

`PATCH /api/v1/client/vps/{uuid}/ptr`

Set the reverse DNS of one attached address (the primary by default).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `hostname` | string | yes |
| `address` | string or null | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Rebuild the VPS with a new OS template {#op-post-api-v1-client-vps-uuid-rebuild}

`POST /api/v1/client/vps/{uuid}/rebuild`

Rebuild the VPS with a new OS template. This destroys all data.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `template_id` | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Rescue enter {#op-post-api-v1-client-vps-uuid-rescue-enter}

`POST /api/v1/client/vps/{uuid}/rescue/enter`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `iso_volid` | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Rescue exit {#op-post-api-v1-client-vps-uuid-rescue-exit}

`POST /api/v1/client/vps/{uuid}/rescue/exit`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Rescue media {#op-get-api-v1-client-vps-uuid-rescue-media}

`GET /api/v1/client/vps/{uuid}/rescue/media`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Reset the root/admin password {#op-post-api-v1-client-vps-uuid-reset-password}

`POST /api/v1/client/vps/{uuid}/reset-password`

Reset the root/admin password. Requires QEMU guest agent.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Capacity/mode preview for a plan change resize (billing via /services change-plan) {#op-post-api-v1-client-vps-uuid-resize-preview}

`POST /api/v1/client/vps/{uuid}/resize-preview`

Capacity/mode preview for a plan change resize (billing via /services change-plan).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `cpu_cores` | integer or null | no |
| `memory_mb` | integer or null | no |
| `disk_gb` | integer or null | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### List snapshots {#op-get-api-v1-client-vps-uuid-snapshots}

`GET /api/v1/client/vps/{uuid}/snapshots`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Create snapshot {#op-post-api-v1-client-vps-uuid-snapshots}

`POST /api/v1/client/vps/{uuid}/snapshots`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string | yes |
| `description` | string or null | no |
| `vmstate` | boolean | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Delete snapshot {#op-delete-api-v1-client-vps-uuid-snapshots-snapshot-id}

`DELETE /api/v1/client/vps/{uuid}/snapshots/{snapshot_id}`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `snapshot_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Rollback snapshot {#op-post-api-v1-client-vps-uuid-snapshots-snapshot-id-rollback}

`POST /api/v1/client/vps/{uuid}/snapshots/{snapshot_id}/rollback`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `snapshot_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Put SSH keys {#op-put-api-v1-client-vps-uuid-ssh-keys}

`PUT /api/v1/client/vps/{uuid}/ssh-keys`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `ssh_keys` | string | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get real-time VM status from Proxmox (enriched) {#op-get-api-v1-client-vps-uuid-status}

`GET /api/v1/client/vps/{uuid}/status`

Get real-time VM status from Proxmox (enriched).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Get instance tasks {#op-get-api-v1-client-vps-uuid-tasks}

`GET /api/v1/client/vps/{uuid}/tasks`

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `uuid` | path | string | yes |  |
| `limit` | query | integer | no | Default: `50`. |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |
