На этой странице
Обзор
FlexDedi API — это REST API. Запросы и ответы передаются в формате JSON по HTTPS, временные метки указываются в формате ISO 8601 в UTC, а у каждого объекта есть строковый ID с префиксом, например srv_7f3a у сервера или key_2b81 у SSH-ключа. Текущая версия — v1; несовместимые изменения выходят только в новой версии и никогда не вносятся в действующую.
Аутентификация
Передавайте API-ключ как Bearer-токен в заголовке Authorization. Ключи бывают только для чтения или для чтения и записи; любой из них можно отозвать в любой момент. Не храните ключи в исходном коде и истории командной оболочки: считывайте их из переменной окружения или менеджера секретов.
curl -s https://api.flexdedi.com/v1/servers \
-H "Authorization: Bearer $FLEXDEDI_TOKEN"Запросы и пагинация
Передавайте тело запроса в формате JSON с заголовком Content-Type: application/json. Методы, возвращающие списки, отдают массив data и объект meta; для пагинации используйте page и per_page (по умолчанию 25, максимум 100).
{
"data": [
{ "id": "srv_7f3a", "plan": "pro-32", "location": "fra", "status": "active" }
],
"meta": { "page": 1, "per_page": 25, "total": 1 }
}Ошибки
Ошибки возвращаются со стандартными кодами состояния HTTP и телом в формате JSON, где есть машиночитаемый code и понятное человеку message.
| Статус | Значение |
|---|---|
400 | Некорректный запрос, например невалидный JSON. |
401 | API-ключ не передан, недействителен или отозван. |
403 | Ключ только для чтения, или ресурс принадлежит другому аккаунту. |
404 | Ресурс не существует. |
409 | Сервер занят другой операцией, например переустановкой. |
422 | Ошибка валидации, например тариф недоступен в этой локации. |
429 | Слишком много запросов; повторите запрос через время, указанное в Retry-After. |
5xx | Сбой на нашей стороне; повторите запрос с нарастающей задержкой. |
{
"error": {
"code": "plan_unavailable",
"message": "Plan max-192 is not available in location nyc."
}
}Лимиты запросов
Каждый ответ содержит заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. При превышении лимита API отвечает кодом 429 с заголовком Retry-After, в котором указано время ожидания в секундах. Проверяйте статус длительных операций раз в 15–30 секунд, а не в плотном цикле.
Тарифы
GET/plans
Возвращает список конфигураций серверов, доступных для заказа: оборудование, скорость порта, месячная цена в USD и локации, где доступна каждая из них.
{
"data": [
{
"id": "pro-32",
"name": "Pro 32",
"cpu": "AMD EPYC 9355P",
"cores": 32,
"memory_gb": 384,
"storage": "2 × 3.84 TB NVMe Gen5",
"port": "25 Gbps",
"price_monthly_usd": 749,
"delivery": "minutes",
"locations": ["nyc", "iad", "dfw", "lax", "ams", "fra", "lon", "sin"]
}
]
}Локации
GET/locations
Возвращает список локаций дата-центров: код (nyc, iad, dfw, lax, ams, fra, lon, sin, tyo, syd), город, страну и доступные там тарифы.
Образы ОС
GET/os-images
Возвращает список образов для установки, например ubuntu-24.04, debian-13, almalinux-9, rocky-9, proxmox-9 и windows-2025. При заказе или переустановке указывайте id образа.
Серверы
GET/servers
Возвращает список ваших серверов. Фильтруйте по location, plan или status (provisioning, active, reinstalling, rescue, off).
POST/servers
Заказывает сервер и запускает его подготовку. В ответе возвращается новый сервер со статусом provisioning; опрашивайте его, пока статус не сменится на active. Заказ оплачивается так же, как заказ в панели управления.
| Поле | Тип | Описание |
|---|---|---|
plan | string | Обязательное. ID тарифа из GET /plans, например pro-32. |
location | string | Обязательное. Код локации, в которой доступен тариф. |
os | string | Обязательное. ID образа из GET /os-images. |
hostname | string | Необязательное. Задаётся в установленной системе. |
ssh_keys | array | Необязательное. Имена или ID сохранённых SSH-ключей, которые будут установлены для root. |
curl -s -X POST https://api.flexdedi.com/v1/servers \
-H "Authorization: Bearer $FLEXDEDI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"plan":"pro-32","location":"fra","os":"ubuntu-24.04","hostname":"db-1","ssh_keys":["ops-laptop"]}'{
"id": "srv_9c4d",
"plan": "pro-32",
"location": "fra",
"os": "ubuntu-24.04",
"hostname": "db-1",
"status": "provisioning",
"ipv4": null,
"ipv6": null,
"created_at": "2026-11-02T14:05:31Z"
}GET/servers/{id}
Возвращает один сервер: статус, тариф, локацию, IPv4-адрес, префикс IPv6 и имя хоста.
PATCH/servers/{id}
Изменяет метку или имя хоста, которые отображаются в панели. Имя хоста внутри работающей операционной системы при этом не меняется.
DELETE/servers/{id}
Отменяет сервер. Он остаётся активным до конца оплаченного периода, после чего его диски очищаются. Добавьте ?immediately=true, чтобы остановить и очистить его сразу; деньги за текущий период не возвращаются.
Питание и переустановка
POST/servers/{id}/actions/{action}
Выполняет действие с питанием через контроллер управления: reboot (перезагрузка через ACPI), reset (аппаратный сброс), power-on, power-off или power-cycle. В ответе возвращается сервер с обновлённым статусом.
curl -s -X POST https://api.flexdedi.com/v1/servers/srv_7f3a/actions/reboot \
-H "Authorization: Bearer $FLEXDEDI_TOKEN"POST/servers/{id}/actions/reinstall
Переустанавливает сервер с образом из os и, при необходимости, с параметрами hostname и ssh_keys. Все диски при этом стираются. Пока новая система не готова, статус — reinstalling.
curl -s -X POST https://api.flexdedi.com/v1/servers/srv_7f3a/actions/reinstall \
-H "Authorization: Bearer $FLEXDEDI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"os":"debian-13","hostname":"web-2","ssh_keys":["ops-laptop"]}'POST/servers/{id}/actions/rescue
Загружает сервер в систему восстановления по сети; установленная на диске система остаётся нетронутой. Отправьте {"enable": false}, чтобы выйти из режима восстановления (rescue) и снова загрузиться с дисков. Подробнее — в разделе «Переустановка и восстановление».
IP-адреса и обратные DNS-записи
GET/servers/{id}/ips
Возвращает IPv4-адреса и префикс IPv6, назначенные серверу, вместе с их обратными DNS-записями.
PUT/servers/{id}/ips/{ip}/rdns
Задаёт обратную DNS-запись (PTR) для адреса: {"ptr": "mail.example.com"}. Прямая запись должна указывать на тот же адрес — особенно для почтовых серверов.
Частные VLAN
GET/vlans
Возвращает список ваших частных сетей с локацией и VLAN ID. Частные сети соединяют серверы в одной локации; внутренний трафик не тарифицируется.
POST/vlans/{id}/servers
Подключает сервер из той же локации: {"server_id": "srv_7f3a"}. Затем настройте интерфейс VLAN в операционной системе, как описано в разделе «Частная сеть».
SSH-ключи
GET/ssh-keys
Возвращает список публичных ключей, сохранённых в вашем аккаунте.
POST/ssh-keys
Сохраняет публичный ключ: {"name": "ops-laptop", "public_key": "ssh-ed25519 AAAA…"}, чтобы при заказе или переустановке ссылаться на него по имени.
DELETE/ssh-keys/{id}
Удаляет сохранённый ключ. С серверов, на которые он уже установлен, ключ не удаляется.
Пропускная способность
GET/servers/{id}/bandwidth
Возвращает входящий и исходящий трафик за период, заданный параметрами from и to (ISO 8601), с шагом 5 минут. Трафик безлимитный: эти данные нужны для мониторинга, а не для биллинга.
Terraform
Провайдер Terraform использует тот же API-ключ и считывает его из переменной окружения FLEXDEDI_TOKEN. Ресурс flexdedi_server соответствует POST /servers; его удаление (destroy) отменяет сервер.
terraform {
required_providers {
flexdedi = { source = "flexdedi/flexdedi" }
}
}
resource "flexdedi_server" "web" {
plan = "core-16"
location = "ams"
os = "ubuntu-24.04"
hostname = "web-1"
ssh_keys = ["ops-laptop"]
}
output "web_ipv4" {
value = flexdedi_server.web.ipv4
}