# Selectel API: Получить IAM-токен сервисного пользователя

Сценарий из mcp-everything. Актуально на 2026-10-24.

Первый шаг автоматизации Selectel: токен для API проектов, DNS и облачных ресурсов.

1. Создай сервисного пользователя в панели управления с нужными ролями — для рабочих интеграций документация рекомендует именно их.
2. Получи токен: POST /identity/v3/auth/tokens на cloud.api.selcloud.ru с методом password — имя сервисного пользователя, ID аккаунта как domain и пароль. scope = domain даёт токен аккаунта, scope = project — токен проекта.
3. Токен приходит в заголовке ответа X-Subject-Token с кодом 201 и живёт 24 часа. Передавай его в заголовке X-Auth-Token.

```bash
TOKEN=$(curl -si -X POST https://cloud.api.selcloud.ru/identity/v3/auth/tokens \
  -H 'Content-Type: application/json' \
  -d '{"auth": {
        "identity": {"methods": ["password"], "password": {"user": {
          "name": "<сервисный пользователь>", "domain": {"name": "<ID аккаунта>"}, "password": "<пароль>"}}},
        "scope": {"domain": {"name": "<ID аккаунта>"}}}}' \
  | grep -i '^x-subject-token' | cut -d' ' -f2 | tr -d '\r')
```

## Базовые URL

- Боевой: `https://api.selectel.ru`
- Identity (токены): `https://cloud.api.selcloud.ru`
- Адреса по сервисам: `https://api.selectel.ru/vpc/resell/v2`

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

Тип: Другое

- IAM-токен аккаунта (`iam_token_account_scoped`) или проекта (`iam_token_project_scoped`) — заголовок `X-Auth-Token`, живёт 24 часа. Получается запросом `POST https://cloud.api.selcloud.ru/identity/v3/auth/tokens` (метод `password`: имя сервисного пользователя, ID аккаунта как домен, пароль; `scope` — `domain` или `project`). Токен возвращается в заголовке ответа `X-Subject-Token`, код `201`.
- Статический токен (`static_token`) — заголовок `X-Token`, без срока действия, только для пользователей панели; не работает с OpenStack API. Нужен для отчётов биллинга, тикетов, учёта IP.

Для рабочих интеграций документация рекомендует сервисных пользователей.

## Методы сценария

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

Вызывается на `https://cloud.api.selcloud.ru`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Content-Type` | header | string | да | application/json |
| `auth.identity.methods` | body | array | да | ["password"] |
| `auth.identity.password.user.name` | body | string | да | Имя сервисного пользователя |
| `auth.identity.password.user.domain.name` | body | string | да | ID аккаунта |
| `auth.identity.password.user.password` | body | string | да | Пароль |
| `auth.scope` | body | object | да | domain (токен аккаунта) или project с именем проекта |

## Нюансы

- Облачные серверы, сети и диски создаются через OpenStack API; Resell API управляет проектами, квотами, публичными IP, подсетями и трафиком.
- Методы `/v2/keypairs` и лицензий в Resell API устарели и будут удалены — для SSH-ключей используйте Nova API.
- Имена зон и записей DNS — полные, с точкой в конце.
- Для пулов в Центральной Азии и Кении используются хосты `*.servercore.com`.
- У каждого API есть OpenAPI-спецификация в JSON на странице документации (например, `https://docs.selectel.ru/api/dns-actual.json`).

## Другие сценарии

- [Управлять DNS-записями домена](https://mcp-everything.ru/integrations/selectel/scenarios/upravlyat-dns-zapisyami-domena.md)
- [Следить за балансом и прогнозом расходов](https://mcp-everything.ru/integrations/selectel/scenarios/sledit-za-balansom-i-prognozom-rashodov.md)
- [Создать облачный проект и выделить публичные IP](https://mcp-everything.ru/integrations/selectel/scenarios/sozdat-oblachnyy-proekt-i-vydelit.md)

---

Если этого недостаточно — официальная документация: https://docs.selectel.ru/api/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/selectel.md
