---
slug: "vk-cloud"
name: "VK Cloud REST API"
vendor: "VK"
industry: "cloud"
docsUrl: "https://cloud.vk.ru/docs/en/tools-for-using-services/api/rest-api"
version: 2
updatedAt: "2026-10-24"
---

# VK Cloud REST API

Отрасль: Облака и хостинг. Актуально на 2026-10-24.

REST API облачной платформы VK Cloud: сервисы облачных серверов построены на OpenStack (Nova — виртуальные машины, Cinder — диски и снапшоты, Glance — образы, Manila — файловые хранилища) и дополнены сервисом резервного копирования Karboii. Доступ к API включается в настройках проекта; запросы авторизуются токеном Keystone. В этом файле — получение токена и адреса сервисов; методы самих сервисов описаны в спецификациях OpenStack.

## Сценарии

### Получить токен и управлять серверами через OpenStack API

Автоматизировать облачную инфраструктуру VK Cloud: получить токен Keystone и вызывать API виртуальных машин, дисков и образов.

1. Включи доступ к API в настройках проекта VK Cloud (раздел «Доступ по API») и возьми значения OS_USER_DOMAIN_NAME, OS_USERNAME, OS_PROJECT_ID и OS_REGION_NAME.
2. Получи токен: POST /v3/auth/tokens на хосте infra.mail.ru:5000 с логином, паролем и проектом в теле. Токен приходит не в теле, а в заголовке ответа x-subject-token.
3. Передавай токен в заголовке X-Auth-Token в запросах к сервисам: Nova (виртуальные машины) — https://infra.mail.ru:8774/v2.1, Cinder (диски) — https://public.infra.mail.ru:8776/v3/<project_id>, Glance (образы) — https://infra.mail.ru:9292.
4. Методы самих сервисов — стандартные OpenStack API: например, список серверов — /servers/detail у Nova. Ориентируйся на спецификации OpenStack соответствующей версии.
5. Токен живёт ограниченное время — при ответе 401 получи новый.

```bash
TOKEN=$(curl -si -X POST https://infra.mail.ru:5000/v3/auth/tokens \
  -H 'Content-Type: application/json' \
  -d '{"auth": {
        "identity": {"methods": ["password"], "password": {"user": {
          "domain": {"name": "<OS_USER_DOMAIN_NAME>"}, "name": "<OS_USERNAME>", "password": "<OS_PASSWORD>"}}},
        "scope": {"project": {"id": "<OS_PROJECT_ID>", "region": "<OS_REGION_NAME>"}}}}' \
  | grep -i '^x-subject-token' | cut -d' ' -f2 | tr -d '\r')

# Список виртуальных машин (Nova)
curl https://infra.mail.ru:8774/v2.1/servers/detail -H "X-Auth-Token: $TOKEN"
```

## Базовые URL

- Keystone (токены): `https://infra.mail.ru:5000`
- Nova (виртуальные машины): `https://infra.mail.ru:8774/v2.1`
- Cinder (диски и снапшоты): `https://public.infra.mail.ru:8776/v3/<project_id>`
- Glance (образы ВМ): `https://infra.mail.ru:9292`
- Karboii (резервные копии ВМ и БД): `https://mcs.mail.ru/infra/karboii/v1`
- Manila (файловые хранилища): `https://public.infra.mail.ru:8786/v2/<project_id>`
- Адреса: `<project_id>`

## Авторизация

Тип: Другое

Токен Keystone получают запросом `POST /v3/auth/tokens` с логином и паролем пользователя; токен возвращается в заголовке ответа `x-subject-token`. Доступ к API должен быть включён в настройках проекта.

## Методы

### POST /v3/auth/tokens — Получение токена Keystone

Хост `infra.mail.ru:5000`, заголовок `Content-Type: application/json`.

Токен — в заголовке ответа `x-subject-token`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `auth.identity.methods` | body | array | да | ["password"] |
| `auth.identity.password.user.domain.name` | body | string | да | Домен пользователя (OS_USER_DOMAIN_NAME) |
| `auth.identity.password.user.name` | body | string | да | Имя пользователя (OS_USERNAME) |
| `auth.identity.password.user.password` | body | string | да | Пароль (OS_PASSWORD) |
| `auth.scope.project.id` | body | string | да | ID проекта (OS_PROJECT_ID) |
| `auth.scope.project.region` | body | string | да | Регион (OS_REGION_NAME) |

Пример запроса:

```
{
  "auth": {
    "identity": {
      "methods": ["password"],
      "password": {
        "user": {
          "domain": { "name": "<OS_USER_DOMAIN_NAME>" },
          "name": "<OS_USERNAME>",
          "password": "<OS_PASSWORD>"
        }
      }
    },
    "scope": {
      "project": {
        "id": "<OS_PROJECT_ID>",
        "region": "<OS_REGION_NAME>"
      }
    }
  }
}
```

## Нюансы

- Значения `OS_*` берутся из настроек проекта (раздел «Доступ по API»).
- Срок жизни токена виден в консоли при наведении на значок копирования; на открытой странице доступа по API токен перевыпускается автоматически раз в час.
- Есть отдельные OpenAPI-спецификации для Anycast IP, сервисных аккаунтов, CDN, Cloud Backup и Billing (баланс проекта).
- Для форматирования JSON-ответов в примерах документации используется утилита `jq`.

## Источники

- [REST API VK Cloud](https://cloud.vk.ru/docs/en/tools-for-using-services/api/rest-api)
- [Получение токена Keystone](https://cloud.vk.ru/docs/en/tools-for-using-services/api/rest-api/case-keystone-token)
- [Эндпоинты API](https://cloud.vk.ru/docs/en/tools-for-using-services/api/rest-api/endpoints)
- [Спецификации API](https://cloud.vk.ru/docs/en/tools-for-using-services/api/api-spec)

---

Если этого недостаточно — официальная документация: https://cloud.vk.ru/docs/en/tools-for-using-services/api/rest-api
JSON: https://mcp-everything.ru/api/integrations/vk-cloud. MCP: https://mcp-everything.ru/mcp
