# Selectel API: Создать облачный проект и выделить публичные IP

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

Отдельный проект под клиента или окружение — с квотами и внешними адресами.

1. Создай проект: POST /vpc/resell/v2/projects с project.name. Список проектов — GET /vpc/resell/v2/projects, проект с квотами — GET /vpc/resell/v2/projects/{project_id}.
2. Выдели публичные IP: POST /vpc/resell/v2/floatingips/projects/{project_id} с floatingips — количеством (quantity) и регионом (region).
3. Сами серверы, диски и сети в проекте создаются через OpenStack API с токеном проекта.

```bash
PROJECT=$(curl -s -X POST https://api.selectel.ru/vpc/resell/v2/projects \
  -H "X-Auth-Token: $TOKEN" -H 'Content-Type: application/json' \
  -d '{"project": {"name": "client-1042"}}' | jq -r .project.id)

curl -X POST "https://api.selectel.ru/vpc/resell/v2/floatingips/projects/$PROJECT" \
  -H "X-Auth-Token: $TOKEN" -H 'Content-Type: application/json' \
  -d '{"floatingips": [{"quantity": 1, "region": "ru-9"}]}'
```

## Базовые 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.

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

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

### GET /vpc/resell/v2/projects — Список проектов

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `X-Auth-Token` | header | string | да | IAM-токен аккаунта |
| `all` | query | boolean | нет | Все проекты аккаунта (нужна роль iam.admin) |

### POST /vpc/resell/v2/projects — Создание проекта

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `project.name` | body | string | да | Имя, 1–64 символа |
| `project.description` | body | string | нет | Описание, до 255 символов |
| `project.skip_quotas_init` | body | boolean | нет | Не инициализировать квоты |

### GET /vpc/resell/v2/projects/{project_id} — Проект и его квоты

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `project_id` | path | string | да | ID проекта |
| `exclude_quotas` | query | boolean | нет | Не возвращать квоты (по умолчанию false) |

### POST /vpc/resell/v2/floatingips/projects/{project_id} — Добавление публичных IP в проект

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `project_id` | path | string | да | ID проекта |
| `floatingips[].quantity` | body | integer | да | Количество |
| `floatingips[].region` | body | string | да | Регион (пул) |
| `floatingips[].ips` | body | string | нет | Конкретные адреса |

## Нюансы

- Облачные серверы, сети и диски создаются через 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`).

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

- [Получить IAM-токен сервисного пользователя](https://mcp-everything.ru/integrations/selectel/scenarios/poluchit-iam-token-servisnogo.md)
- [Управлять 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)

---

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