MENU navbar-image

Introduction

CloudCompute REST API for GPU offers, instances, and SSH keys.

Authenticate with your API key (`Authorization: Bearer cc-…`) from the **API access** page in the dashboard.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Create a key at /api-access in the dashboard. The raw token is shown once at creation.

Compute API

Launch managed application GPU instances (e.g. ComfyUI) via API.

Launch application instance

requires authentication

Creates a GPU instance provisioned for the given application slug. Use auto_select: true to pick the best matching offer from live inventory without supplying ask_id.

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/applications/comfyui-sdxl/launch" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ask_id\": 12345,
    \"auto_select\": true,
    \"price_hour\": 5000,
    \"model_preset_id\": \"default\",
    \"ssh_key_ids\": [
        1
    ],
    \"user_setup_script\": \"architecto\",
    \"name\": \"architecto\",
    \"label\": \"architecto\",
    \"disk_gb\": 16,
    \"offer_disk_space\": 4326.41688,
    \"offer_filters\": {
        \"strict_tier_only\": false,
        \"no_tier_fallback\": true,
        \"reliability_min\": 8,
        \"geolocation\": \"v\",
        \"disk_space\": 1,
        \"disk_bw_min\": 5,
        \"gpu_ram\": 19,
        \"inet_down\": 17,
        \"inet_up\": 5,
        \"direct_port_count\": 8,
        \"cuda_max_good\": 14,
        \"datacenter\": false,
        \"reliable_only\": true,
        \"free_traffic_only\": false,
        \"geolocation_in\": [
            \"wa\"
        ]
    }
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/applications/comfyui-sdxl/launch"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ask_id": 12345,
    "auto_select": true,
    "price_hour": 5000,
    "model_preset_id": "default",
    "ssh_key_ids": [
        1
    ],
    "user_setup_script": "architecto",
    "name": "architecto",
    "label": "architecto",
    "disk_gb": 16,
    "offer_disk_space": 4326.41688,
    "offer_filters": {
        "strict_tier_only": false,
        "no_tier_fallback": true,
        "reliability_min": 8,
        "geolocation": "v",
        "disk_space": 1,
        "disk_bw_min": 5,
        "gpu_ram": 19,
        "inet_down": 17,
        "inet_up": 5,
        "direct_port_count": 8,
        "cuda_max_good": 14,
        "datacenter": false,
        "reliable_only": true,
        "free_traffic_only": false,
        "geolocation_in": [
            "wa"
        ]
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/applications/{slug}/launch

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

slug   string     

Application slug (e.g. comfyui-sdxl). Example: comfyui-sdxl

Body Parameters

ask_id   integer  optional    

optional Exact marketplace offer id. Required unless auto_select is true. A taken or ineligible offer returns 422; it is not replaced. Example: 12345

auto_select   boolean  optional    

optional When true, pick the best offer automatically. This is the only launch mode that may choose a different host. Example: true

price_hour   integer  optional    

optional Price ceiling in kopecks for failover. Example: 5000

model_preset_id   string  optional    

optional Model preset id when the app supports presets. Example: default

ssh_key_ids   integer[]  optional    

optional SSH key ids to attach. Defaults to all keys for the API key user.

user_setup_script   string  optional    

optional Shell script exported as CC_USER_SETUP_B64 on boot (apps with supports_user_script only). Example: architecto

name   string  optional    

optional Instance display name. Example: architecto

label   string  optional    

optional Instance label. Example: architecto

disk_gb   integer  optional    

optional Provisioned disk size in GB. Example: 16

offer_disk_space   number  optional    

optional Disk capacity in GB from the selected offer. Send this alongside disk_gb when selecting an offer. Example: 4326.41688

offer_filters   object  optional    

optional Minimum requirements for auto_select (e.g. datacenter, direct_port_count, reliability_min, geolocation).

strict_tier_only   boolean  optional    

optional When true, do not fall back to relaxed/basic tiers if strict search is empty. Example: false

no_tier_fallback   boolean  optional    

Example: true

reliability_min   integer  optional    

Значение поля value должно быть не меньше 10. Значение поля value не может быть больше 100. Example: 8

geolocation   string  optional    

Количество символов в поле value не может превышать 512. Example: v

disk_space   integer  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 100000. Example: 1

disk_bw_min   integer  optional    

Значение поля value должно быть не меньше 0. Значение поля value не может быть больше 50000. Example: 5

gpu_ram   integer  optional    

Значение поля value должно быть не меньше 1024. Значение поля value не может быть больше 2000000. Example: 19

inet_down   integer  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 100000. Example: 17

inet_up   integer  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 100000. Example: 5

direct_port_count   integer  optional    

Значение поля value должно быть не меньше 0. Значение поля value не может быть больше 1000. Example: 8

cuda_max_good   number  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 30. Example: 14

datacenter   boolean  optional    

Example: false

reliable_only   boolean  optional    

Example: true

free_traffic_only   boolean  optional    

Example: false

geolocation_in   string[]  optional    

Must contain only letters. Количество символов в поле value должно быть равным 2.

Endpoints

POST api/v1/chat/completions

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/chat/completions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/chat/completions"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/chat/completions

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/responses

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/responses" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/responses"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/responses

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/messages

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/messages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/messages"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/messages

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/models

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/models" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/models"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "type": "invalid_request_error",
        "code": 401
    }
}
 

Request      

GET api/v1/models

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/proxies/catalog

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/proxies/catalog" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/catalog"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/proxies/catalog

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/proxies/options

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/proxies/options" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"service\": \"architecto\",
    \"plan\": \"n\"
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/options"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "service": "architecto",
    "plan": "n"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/proxies/options

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

service   string     

Example: architecto

plan   string  optional    

Must match the regex /^[a-z0-9-]+$/D. Количество символов в поле value не может превышать 64. Example: n

POST api/v1/proxies/quotes

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/quotes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"service\": \"architecto\",
    \"configuration\": []
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/quotes"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "service": "architecto",
    "configuration": []
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/proxies/quotes

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

service   string     

Example: architecto

configuration   object     

GET api/v1/proxies/orders

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/proxies/orders

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/proxies/orders

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"quote_id\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\"
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "quote_id": "6ff8f7f6-1eb3-3525-be4a-3932c805afed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/proxies/orders

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

quote_id   string     

Значение поля value должно быть корректным UUID. Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

GET api/v1/proxies/orders/{orderId}

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/proxies/orders/{orderId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   string     

Example: 564

GET api/v1/proxies/orders/{orderId}/credentials

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders/564/credentials" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/proxies/orders/564/credentials"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/proxies/orders/{orderId}/credentials

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   string     

Example: 564

GET api/v1/offers

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/offers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/offers"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/offers

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/instances

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/instances" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/instances

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/instances

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/instances" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": 1,
    \"ask_id\": 16,
    \"auto_select\": false,
    \"strict_offer\": true,
    \"max_price_hour_minor\": 22,
    \"currency\": \"gzm\",
    \"expires_at\": \"2022-11-24\",
    \"offer_filters\": {
        \"preferred_gpu_name\": \"n\",
        \"preferred_num_gpus\": 67,
        \"max_price_rub\": 12
    },
    \"name\": \"m\",
    \"stats\": \"architecto\",
    \"template_image\": \"n\",
    \"template_id\": 16,
    \"template_hash_id\": \"n\",
    \"runtype\": \"architecto\",
    \"disk_gb\": 22,
    \"offer_disk_space\": 7,
    \"install_monitoring\": true,
    \"bootstrap_profile\": \"none\",
    \"onstart\": \"z\",
    \"ssh_key_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": 1,
    "ask_id": 16,
    "auto_select": false,
    "strict_offer": true,
    "max_price_hour_minor": 22,
    "currency": "gzm",
    "expires_at": "2022-11-24",
    "offer_filters": {
        "preferred_gpu_name": "n",
        "preferred_num_gpus": 67,
        "max_price_rub": 12
    },
    "name": "m",
    "stats": "architecto",
    "template_image": "n",
    "template_id": 16,
    "template_hash_id": "n",
    "runtype": "architecto",
    "disk_gb": 22,
    "offer_disk_space": 7,
    "install_monitoring": true,
    "bootstrap_profile": "none",
    "onstart": "z",
    "ssh_key_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/instances

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

type   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
ask_id   integer  optional    

This field is required when auto_select is not present. This field is required when auto_select is false. Example: 16

auto_select   boolean  optional    

Example: false

strict_offer   boolean  optional    

Example: true

max_price_hour_minor   integer  optional    

This field is required when currency is present. Значение поля value должно быть не меньше 1. Example: 22

currency   string  optional    

This field is required when max_price_hour_minor is present. Количество символов в поле value должно быть равным 3. Example: gzm

expires_at   string  optional    

Значение поля value не является датой. Значение поля value должно быть датой после now. Значение поля value должно быть датой до или равной 2026-11-01T08:18:51+00:00. Example: 2022-11-24

offer_filters   object  optional    
preferred_gpu_name   string  optional    

This field is required when auto_select is true. Количество символов в поле value не может превышать 128. Example: n

preferred_num_gpus   integer  optional    

This field is required when auto_select is true. Значение поля value должно быть не меньше 1. Example: 67

max_price_rub   number  optional    

Значение поля value должно быть не меньше 0. Example: 12

name   string  optional    

Количество символов в поле value не может превышать 255. Example: m

stats   string  optional    

Example: architecto

template_image   string  optional    

Must match the regex /^$|^([a-z0-9][a-z0-9.\/-]*)(?::[@a-zA-Z0-9][@a-zA-Z0-9.-]*|@sha256:[a-fA-F0-9]{64})?$/u. Количество символов в поле value не может превышать 255. Example: n

template_id   integer  optional    

Example: 16

template_hash_id   string  optional    

Количество символов в поле value не может превышать 64. Example: n

runtype   string  optional    

Example: architecto

disk_gb   integer  optional    

Значение поля value должно быть не меньше 8. Значение поля value не может быть больше 100000. Example: 22

offer_disk_space   number  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 100000. Example: 7

install_monitoring   boolean  optional    

Example: true

bootstrap_profile   string  optional    

Example: none

Must be one of:
  • full
  • access_only
  • worker
  • none
onstart   string  optional    

Количество символов в поле value не может превышать 50000. Example: z

ssh_key_ids   integer[]  optional    

Must match an existing stored value.

GET api/v1/usage

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/usage" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"after_id\": 27,
    \"limit\": 22,
    \"instance_id\": 67
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/usage"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "after_id": 27,
    "limit": 22,
    "instance_id": 67
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/usage

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

after_id   integer  optional    

Значение поля value должно быть не меньше 0. Example: 27

limit   integer  optional    

Значение поля value должно быть не меньше 1. Значение поля value не может быть больше 500. Example: 22

instance_id   integer  optional    

Значение поля value должно быть не меньше 1. Example: 67

GET api/v1/instances/{instanceId}

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/instances/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/instances/{instanceId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

instanceId   string     

Example: 564

POST api/v1/instances/{instanceId}/terminal-token

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564/terminal-token" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564/terminal-token"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/instances/{instanceId}/terminal-token

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

instanceId   string     

Example: 564

PATCH api/v1/instances/{instanceId}

requires authentication

Example request:
curl --request PATCH \
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"label\": \"b\",
    \"name\": \"n\",
    \"expires_at\": \"2022-11-24\"
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "label": "b",
    "name": "n",
    "expires_at": "2022-11-24"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/v1/instances/{instanceId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

instanceId   string     

Example: 564

Body Parameters

label   string  optional    

Количество символов в поле value не может превышать 100. Example: b

name   string  optional    

Количество символов в поле value не может превышать 255. Example: n

expires_at   string  optional    

Значение поля value не является датой. Значение поля value должно быть датой после now. Значение поля value должно быть датой до или равной 2026-11-01T08:18:51+00:00. Example: 2022-11-24

DELETE api/v1/instances/{instanceId}

requires authentication

Example request:
curl --request DELETE \
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/instances/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/instances/{instanceId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

instanceId   string     

Example: 564

GET api/v1/ssh-keys

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/ssh-keys

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/ssh-keys

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"public_key\": \"architecto\",
    \"name\": \"architecto\"
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "public_key": "architecto",
    "name": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/ssh-keys

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

public_key   string     

Example: architecto

name   string     

Example: architecto

DELETE api/v1/ssh-keys/{sshKeyId}

requires authentication

Example request:
curl --request DELETE \
    "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/ssh-keys/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/ssh-keys/{sshKeyId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

sshKeyId   string     

Example: 564

GET api/v1/vps/catalog

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/vps/catalog" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/catalog"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/vps/catalog

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/vps

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/vps" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/vps

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/vps

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/vps

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/vps/{vpsId}

requires authentication

Example request:
curl --request GET \
    --get "https://app.cloudcompute.ru/api/v1/api/v1/vps/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "error": {
        "message": "Invalid API key.",
        "code": "invalid_api_key"
    }
}
 

Request      

GET api/v1/vps/{vpsId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

DELETE api/v1/vps/{vpsId}

requires authentication

Example request:
curl --request DELETE \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/vps/{vpsId}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

POST api/v1/vps/{vpsId}/start

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/start" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/start"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/vps/{vpsId}/start

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

POST api/v1/vps/{vpsId}/stop

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/stop" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/stop"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/vps/{vpsId}/stop

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

POST api/v1/vps/{vpsId}/reboot

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/reboot" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/reboot"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/vps/{vpsId}/reboot

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

POST api/v1/vps/{vpsId}/ssh-keys

requires authentication

Example request:
curl --request POST \
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/ssh-keys" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ssh_key_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.cloudcompute.ru/api/v1/api/v1/vps/564/ssh-keys"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ssh_key_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/vps/{vpsId}/ssh-keys

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

vpsId   string     

Example: 564

Body Parameters

ssh_key_ids   integer[]  optional    

Must match an existing stored value.