# Timeweb Cloud API: Создать базу данных и S3-хранилище

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

Управляемая база и хранилище файлов для нового проекта — без ручной настройки в панели.

1. Создай кластер БД: POST /api/v1/databases с name, type (например, postgres16), preset_id, admin.login и admin.password, instance.name и availability_zone. Вместе с кластером создаётся и база.
2. Создай хранилище: POST /api/v1/storages/buckets с name, type (private или public) и preset_id.
3. Чтобы ресурсы были сгруппированы, создай проект заранее: POST /api/v1/projects — и передавай его project_id.
4. Следи за расходами: GET /api/v1/account/finances — balance, hourly_cost и monthly_cost.

```bash
curl -X POST https://api.timeweb.cloud/api/v1/databases \
  -H "Authorization: Bearer $TIMEWEB_CLOUD_TOKEN" -H 'Content-Type: application/json' \
  -d '{"name": "shop-db", "type": "postgres16", "preset_id": <ID тарифа БД>,
       "admin": {"login": "shop", "password": "<пароль>"}, "instance": {"name": "shop"}, "availability_zone": "msk-1"}'
```

## Базовые URL

- Боевой: `https://api.timeweb.cloud`

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

Тип: Bearer-токен

JWT-токен создаётся в панели управления в разделе «API и Terraform» и передаётся в каждом запросе:

```
Authorization: Bearer $TIMEWEB_CLOUD_TOKEN
```

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

### GET /api/v1/account/finances — Платёжная информация

В ответе `finances`: `balance`, `currency`, `discount_percent`, `hourly_cost`, `monthly_cost` и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Authorization` | header | string | да | Bearer <токен> |

### POST /api/v1/projects — Создание проекта

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `name` | body | string | да | Имя проекта, до 255 символов |
| `description` | body | string | нет | Описание, до 255 символов |
| `avatar_id` | body | string | нет | ID аватара |

### POST /api/v1/databases — Создание кластера БД

Вместе с кластером создаётся инстанс. Ответ — объект `db`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `name` | body | string | да | Название кластера |
| `type` | body | string | да | Тип: mysql, mysql8_4, postgres14…postgres18, valkey7, mongodb7, clickhouse и др. |
| `preset_id` | body | integer | нет | ID тарифа (нельзя вместе с configuration) |
| `configuration.configurator_id` | body | integer | нет | ID конфигуратора |
| `configuration.disk` | body | integer | нет | Диск, МБ |
| `configuration.cpu` | body | integer | нет | Ядра |
| `configuration.ram` | body | integer | нет | ОЗУ, МБ |
| `admin.login` | body | string | нет | Пользователь БД |
| `admin.password` | body | string | нет | Пароль |
| `instance.name` | body | string | нет | Название базы |
| `network.id` | body | string | нет | ID сети |
| `replication.count` | body | number | нет | Число реплик |
| `availability_zone` | body | string | нет | Зона доступности |
| `project_id` | body | integer | нет | ID проекта |

### POST /api/v1/storages/buckets — Создание S3-хранилища

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `name` | body | string | да | Название |
| `type` | body | string | да | private или public |
| `preset_id` | body | number | нет | ID тарифа (нельзя вместе с configurator) |
| `configurator.id` | body | number | нет | ID конфигуратора |
| `configurator.disk` | body | number | нет | Размер, МБ |
| `description` | body | string | нет | Комментарий |
| `project_id` | body | number | нет | ID проекта |

## Нюансы

- Тело `POST`, `PUT`, `PATCH` — `application/json`.
- Пагинация и поиск в коллекциях: `limit`, `offset`, `search`, `sort`.
- Ответы на `GET` содержат объект сущности по ключу, `meta.total` для коллекций и `response_id` (UUIDv4, приложите его в обращении в поддержку).
- Созданный ресурс может быть ещё «в состоянии запуска» — проверяйте поле `status`.
- Около 380 методов; кроме перечисленных — выделенные серверы, диски и бэкапы, образы, Kubernetes, балансировщики, VPC, плавающие IP, приложения, CDN, реестр контейнеров, ограничения доступа к аккаунту.

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

- [Создать облачный сервер из скрипта](https://mcp-everything.ru/integrations/timeweb-cloud/scenarios/sozdat-oblachnyy-server-iz-skripta.md)
- [Перезагрузить, выключить или изменить сервер](https://mcp-everything.ru/integrations/timeweb-cloud/scenarios/perezagruzit-vyklyuchit-ili-izmenit.md)
- [Добавить DNS-запись домена](https://mcp-everything.ru/integrations/timeweb-cloud/scenarios/dobavit-dns-zapis-domena.md)

---

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