На всех серверах Безлимитный трафик, защита от DDoS и IPMI включены. Без платы за подключение и контракта. Безлимитный трафик на всех серверах Смотреть цены

Справочник API · v1

REST API FlexDedi

Все действия панели управления доступны по HTTPS в формате JSON: заказ серверов, переустановка, перезапуск по питанию, настройка обратных DNS-записей, управление частными VLAN и SSH-ключами.

  • https://api.flexdedi.com/v1
  • Bearer-токен
  • JSON по HTTPS

Краткая справка

Базовый URL
https://api.flexdedi.com/v1
Аутентификация
Bearer-токен в заголовке Authorization
Формат
JSON по HTTPS, временные метки ISO 8601 в UTC
Версия
v1, несовместимые изменения — только в новой версии
На этой странице

Обзор

FlexDedi API — это REST API. Запросы и ответы передаются в формате JSON по HTTPS, временные метки указываются в формате ISO 8601 в UTC, а у каждого объекта есть строковый ID с префиксом, например srv_7f3a у сервера или key_2b81 у SSH-ключа. Текущая версия — v1; несовместимые изменения выходят только в новой версии и никогда не вносятся в действующую.

Аутентификация

Передавайте API-ключ как Bearer-токен в заголовке Authorization. Ключи бывают только для чтения или для чтения и записи; любой из них можно отозвать в любой момент. Не храните ключи в исходном коде и истории командной оболочки: считывайте их из переменной окружения или менеджера секретов.

bash
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.
401API-ключ не передан, недействителен или отозван.
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 и локации, где доступна каждая из них.

json
{
  "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. Заказ оплачивается так же, как заказ в панели управления.

ПолеТипОписание
planstringОбязательное. ID тарифа из GET /plans, например pro-32.
locationstringОбязательное. Код локации, в которой доступен тариф.
osstringОбязательное. ID образа из GET /os-images.
hostnamestringНеобязательное. Задаётся в установленной системе.
ssh_keysarrayНеобязательное. Имена или ID сохранённых SSH-ключей, которые будут установлены для root.
bash
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"]}'
202 Accepted
{
  "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. В ответе возвращается сервер с обновлённым статусом.

bash
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.

bash
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) отменяет сервер.

main.tf
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
}