VDS Host
Реселлерам VPS-серверы Конфигуратор VPS Выделенные API О нас Блог Контакты Войти
codeReseller API v1

Документация API

Управляйте каждой операцией VDS из панели программно. Базовый путь /api/reseller/v1 — все запросы подписываются HMAC.

Обзор

Reseller API предоставляет создание серверов, управление питанием, доступ к консоли, установку ОС, форматирование, фаервол, резервное копирование и операции с доп. IP через REST. Все ответы в формате JSON.

# Taban yol
BASE https://api.vdshost.com/api/reseller/v1

# Tüm istekler şu başlıkları taşır
X-Api-Key: rk_live_xxxxxxxx
X-Timestamp: 1719230400
X-Signature: hmac_sha256(...)

Аутентификация (HMAC)

Каждый запрос подписывается парой api_key и api_secret. Подпись формируется на стороне клиента; серверная прослойка reseller.api проверяет подпись HMAC, белый список IP и лимит запросов. Метка времени защищает от атак повторного воспроизведения.

# İmza şeması (istemci tarafı)
payload = method + "\n" + path + "\n" + timestamp + "\n" + body
signature = hmac_sha256(api_secret, payload)

# Örnek (curl)
curl -X POST https://api.vdshost.com/api/reseller/v1/vm \
  -H "X-Api-Key: KEY" \
  -H "X-Timestamp: TS" \
  -H "X-Signature: SIG" \
  -d '{"product_id":42,"os":"ubuntu-22.04"}'
info Белый список IP: ваш API-ключ принимает вызовы только с IP-адресов, заданных в панели. Ключи управляются в таблице reseller_api_keys, все вызовы логируются в reseller_api_logs.

Коды ошибок

КодЗначение
200 / 201 / 202Успех / создано / в очереди
400Неверное тело запроса
401Подпись неверна или отсутствует
403IP не в белом списке / нет прав
409Обнаружен повтор (повтор timestamp)
429Превышен лимит запросов

Аккаунт и продукты

GET/api/reseller/v1/account

Возвращает активный баланс, текущий уровень скидки (TIER) и статус аккаунта.

# Yanıt
{
  "balance": 3250.00,
  "tier": "Gold",
  "discount": 28,
  "currency": "USD"
}
GET/api/reseller/v1/products

Перечисляет готовые к продаже продукты VDS и удельные цены индивидуальных конфигураций.

# Yanıt
[
  { "id": 42, "name": "VDS M", "cpu": 4, "ram": 8, "disk": 100, "price": 14.00 }
]

Жизненный цикл сервера

GET/api/reseller/v1/vm

Перечисляет все экземпляры VDS на аккаунте с их статусом.

[
  { "id": "vm_8f3a21", "status": "running", "ip": "185.x.x.x" }
]
GET/api/reseller/v1/vm/{id}

Возвращает ресурсы, сеть, статус и статистику ресурсов одного сервера.

{
  "id": "vm_8f3a21",
  "status": "running",
  "cpu": 4, "ram": 8, "disk": 100,
  "usage": { "cpu": 12.4, "bw": 820.5 }
}
POST/api/reseller/v1/vm

Развёртывает новый VDS. Отправьте product_id для готового продукта или cpu/ram/disk для индивидуальной конфигурации. Цена рассчитывается со скидкой по балансу.

# İstek
{
  "cpu": 4, "ram": 8, "disk": 160,
  "os": "ubuntu-22.04", "hostname": "web-01"
}

# Yanıt 201
{ "id": "vm_8f3a21", "status": "provisioning" }
POST/api/reseller/v1/vm/{id}/resize

Обновляет ресурсы CPU, RAM или диска существующего сервера.

# İstek
{ "cpu": 8, "ram": 16 }
# → 202 Accepted
POST/api/reseller/v1/vm/{id}/reinstall

Форматирует и переустанавливает сервер с выбранной ОС.

# İstek
{ "os": "debian-12" }
# → 202 Accepted
POST/api/reseller/v1/vm/{id}/terminate

Безвозвратно завершает сервер и освобождает его ресурсы.

# → 200 OK
{ "id": "vm_8f3a21", "status": "terminated" }

Питание и доступ

POST/api/reseller/v1/vm/{id}/power

Запуск, остановка, перезагрузка или принудительная остановка. action: start · stop · reboot · force_stop.

# İstek
{ "action": "reboot" }
# → 200 OK
GET/api/reseller/v1/vm/{id}/credentials

Безопасно возвращает имя пользователя и начальный пароль сервера.

{ "username": "root", "password": "••••••••" }
POST/api/reseller/v1/vm/{id}/password

Сбрасывает пароль root/администратора сервера.

# → 200 OK
{ "password": "yeni-parola" }
POST/api/reseller/v1/vm/{id}/console

Генерирует одноразовую ссылку на консоль NoVNC/KVM, доступную из браузера.

# → 200 OK
{ "console_url": "https://console.vdshost.com/...", "expires_in": 120 }

Бэкап и безопасность

Бэкапы

GET/api/reseller/v1/vm/{id}/backups

Перечисляет существующие бэкапы сервера.

[ { "backup_id": "bk_19c", "created_at": "2026-06-24T10:00:00Z" } ]
POST/api/reseller/v1/vm/{id}/backups

Делает мгновенный бэкап.

# → 201 Created
{ "backup_id": "bk_19c" }
POST/api/reseller/v1/vm/{id}/backups/restore

Восстанавливает указанный бэкап.

# İstek
{ "backup_id": "bk_19c" }
# → 202 Accepted
DELETE/api/reseller/v1/vm/{id}/backups

Удаляет указанный бэкап.

# İstek
{ "backup_id": "bk_19c" }
# → 200 OK

Фаервол

GET/api/reseller/v1/vm/{id}/firewall

Возвращает правила фаервола, заданные на сервере.

[ { "id": 1, "port": 22, "proto": "tcp", "action": "allow" } ]
POST/api/reseller/v1/vm/{id}/firewall

Добавляет новое правило фаервола.

# İstek
{ "port": 443, "proto": "tcp", "action": "allow" }
DELETE/api/reseller/v1/vm/{id}/firewall/{rule}

Удаляет указанное правило фаервола.

# → 200 OK

Интеграции

extensionWHMCS ModülüБесплатно

Устанавливается как серверный модуль. В админ-панели вы добавляете upstream-сервер и задаёте сопоставление ServerConnection: hostname = домен VDS Host, username = api_key (маскируется), password = api_secret (маскируется). Ваш продукт сопоставляется через upstream_product_id, а ОС — через os_map. Заказ, развёртывание, питание, форматирование и завершение идут автоматически от начала до конца.

# ServerConnection eşlemesi
hostname = api.vdshost.com
username = {api_key}  # maskeli
password = {api_secret} # maskeli
module_config = { "upstream_product_id": 42, "os_map": {...} }
extensionWiseCP ModülüÜcretsiz

Серверный модуль WiseCP использует ту же upstream-логику, что и WHMCS. С помощью UpstreamServerModule + UpstreamApiClient он вызывает базовый путь /api/reseller/v1. Сопоставление продукта и ОС задаётся в конфигурации модуля; весь жизненный цикл VDS управляется из интерфейса WiseCP.

# UpstreamApiClient çağrıları
client.post('vm', body)     # oluştur
client.post('vm/{id}/power'# güç
client.post('vm/{id}/reinstall')
client.get('vm/{id}/backups')