eq.php¶
Модуль управления оборудованием (eq.php): API для развертывания серверов, управления питанием, IPMI, резервными копиями, поиска и получения детальной информации о конфигурации оборудования.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
abort_reinstall | отмена переустановки | Прерывает процесс переустановки операционной системы, удаляет временные теги (reinstall_start, autodeploy_start, autodeploy_timeout), сбрасывает сетевые интерфейсы и закрывает связанные тикеты в Kayako. |
add_ipmi_admin | добавление IPMI администратора | Создает учетную запись пользователя IPMI. Если у клиента есть тег admin_ipmi, можно задать кастомный логин и пароль. |
add_ipmi_user | добавление пользователя IPMI | Создает нового пользователя для управления через интерфейс IPMI на сервере |
announceip | объявление IP-адреса | Выполняет процедуру объявления (announcement) IP-адреса в сети для обеспечения доступности трафика. |
backup_get_schedule | получение расписания бэкапов | Возвращает список доступных графиков или расписание для конкретного сервера |
backup_list | получение списка бэкапов | Возвращает список доступных резервных копий для оборудования |
backup_save_schedule | сохранение расписания бэкапов | Сохраняет настройки расписания для резервного копирования оборудования в очередь задач. |
boot_dev | запрос на загрузку с носителя | Запрашивает перезагрузку сервера для загрузки с указанного носителя (PXE или диск). Требует наличия прав доступа и может требовать блокировки оборудования. |
check_backup_lock | проверка блокировки бэкапа | Проверяет наличие активной блокировки на выполнение операции резервного копирования для конкретного ресурса. |
clear_pxe | очистка PXE конфигурации | Очищает PXE-конфигурацию для конкретного хоста. Операция выполняется асинхронно через очередь. |
create_backup | создание резервной копии | Инициирует процесс создания резервной копии для указанного оборудования. Операция выполняется асинхронно через очередь. |
create_pxe | запрос на переустановку ОС через PXE | Инициирует процесс переустановки операционной системы на сервере с использованием конфигурации PXE. Поддерживает выбор OS, настройку диска, SSH-ключей и кастомных скриптов. |
delete_backup | удаление бэкапа | Инициирует процесс удаления резервной копии сервера через очередь задач |
deploy | развертывание сервера | Запускает процесс развертывания конкретного сервера по его ID или выбирает доступный сервер из указанного пресета в определенной локации. |
get_ipmi | получение IPMI интерфейсов сервера | Возвращает список доступных IPMI интерфейсов сервера, включая модель и IP-адреса. |
get_traffic | получение данных о трафике | Возвращает информацию о потреблении трафика для указанных параметров |
getserversforannounce | получение серверов для анонса | Возвращает список серверов, доступных для анонса на основе заданных параметров фильтрации и исключений по оборудованию. |
groups | получение групп | Возвращает список групп пресетов, привязанных к конкретному серверу. |
hard_off | принудительное выключение сервера | Отправляет запрос на принудительное (жесткое) выключение сервера через IPMI или API гипервизора. Операция асинхронная. |
history | история | Возвращает историю событий сервера. |
list | получение списка оборудования | Возвращает список доступного оборудования с учетом фильтрации по параметрам |
off | выключение сервера | Отправляет запрос на корректное выключение сервера по его ID |
on | включение сервера | Отправляет запрос на включение сервера. Если сервер находится в режиме административного ограничения, ограничение снимается. |
order_instance | заказ инстанса (новый или переустановка) | Запуск процесса развертывания нового сервера по пресету или выполнение переустановки существующего сервера с выбором ОС и дополнительного ПО. |
reboot | перезагрузка сервера | Отправляет запрос на перезагрузку сервера по его ID. Операция асинхронная. |
reinstall | запуск переустановки сервера | Инициирует процесс переустановки операционной системы на сервере. Создает ключ операции и ставит задачу в очередь. |
remove_ipmi_user | удаление пользователя IPMI | Удаляет лишних пользователей IPMI на указанном сервере. Операция выполняется асинхронно через очередь. |
request_backup_link | запрос ссылки на бэкап | Инициирует процесс создания ссылки для скачивания резервной копии данных |
restore_backup | восстановление из бэкапа | Запускает процесс восстановления сервера из выбранного резервного копирования через очередь задач |
search | поиск оборудования | Возвращает список серверов, отфильтрованных по заданным критериям (группа, локация, IP, статус и др.) с дополнительными метаданными о биллинге и тегах. |
sensors | получение данных сенсоров | Возвращает текущие показания датчиков (сенсоров) для указанного сервера |
show | получение данных сервера | Возвращает полные технические данные о сервере: конфигурацию оборудования, операционную систему, сетевые интерфейсы, IP-адреса, IPMI и связанные теги. |
status | получение статуса | Возвращает текущий статус сервера по его ID. Операция асинхронная. |
suspend | приостановка или разблокировка сервера | Выполняет запрос на приостановку (suspend) или снятие блокировки (unsuspend) VPS/сервера. Если действие — suspend, сервер будет заблокирован; если unsuspend — разблокирован. |
unified_server_search | единый поиск серверов | Единый поиск серверов по запросу. |
unit_reset | выполнение команды IPMI reset | Отправляет запрос на перезагрузку устройства через интерфейс IPMI. Операция асинхронная. |
unsuspend | разблокировка сервера | Запрашивает разблокировку (unsuspend) VPS или выделенного сервера. Если операция выполняется успешно, возвращается callback для отслеживания задачи в очереди. |
update_servers | обновление списка серверов клиента | Синхронизирует список серверов пользователя на основе данных WHMCS, учитывая активные услуги, статус оплаты и права доступа. Возвращает актуальный перечень ID серверов, ключи развертывания (deploy keys) и данные о состоянии оборудования. |
eq/abort_reinstall¶
Прерывает процесс переустановки операционной системы, удаляет временные теги (reinstall_start, autodeploy_start, autodeploy_timeout), сбрасывает сетевые интерфейсы и закрывает связанные тикеты в Kayako.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: abort_reinstall |
| id | ✅ | int | ID сервера для отмены переустановки |
| token | ❌ | string | Токен авторизации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "$module/abort_reinstall: invalid server id" }
```
eq/add_ipmi_admin¶
Создает учетную запись пользователя IPMI. Если у клиента есть тег admin_ipmi, можно задать кастомный логин и пароль.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_ipmi_admin |
| id | ✅ | integer | ID сервера |
| admin_user | ❌ | string | Имя пользователя IPMI (если применимо) |
| admin_pass | ❌ | string | Пароль пользователя IPMI |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Add IPMI user request failed" }
```
eq/add_ipmi_user¶
Создает нового пользователя для управления через интерфейс IPMI на сервере
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_ipmi_user |
| token | ✅ | string | Токен авторизации |
| params[server_id] | ✅ | integer | ID сервера |
| params[username] | ✅ | string | Имя пользователя IPMI |
| params[password] | ✅ | string | Пароль пользователя IPMI |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка при создании пользователя IPMI" }
```
eq/announceip¶
Выполняет процедуру объявления (announcement) IP-адреса в сети для обеспечения доступности трафика.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| params[ip] | ✅ | string | IP-адрес для объявления |
| id | ✅ | int | Параметр id (обнаружен в коде) |
| subnet | ✅ | string | Параметр subnet (обнаружен в коде) |
| server | ✅ | string | Параметр server (обнаружен в коде) |
| subnetaddr | ✅ | string | Параметр subnetaddr (обнаружен в коде) |
| subnetaddrmask | ✅ | string | Параметр subnetaddrmask (обнаружен в коде) |
| asn | ✅ | string | Параметр asn (обнаружен в коде) |
| ownasn | ✅ | string | Параметр ownasn (обнаружен в коде) |
| annonce | ✅ | string | Параметр annonce (обнаружен в коде) |
| return | ✅ | string | Параметр return (обнаружен в коде) |
| route | ✅ | string | Параметр route (обнаружен в коде) |
| cmnt | ✅ | string | Параметр cmnt (обнаружин в коде) |
| checkboxes | ✅ | string | Параметр checkboxes (обнаружен в коде) |
| ASRegistered | ✅ | string | Параметр ASRegistered (обнаружен в коде) |
| RKPIValid | ✅ | string | Параметр RKPIValid (обнаружен в коде) |
| SubNetNotSpamhaus | ✅ | string | Параметр SubNetNotSpamhaus (обнаружен в коде) |
| DataIsCorrect | ✅ | string | Параметр DataIsCorrect (обнаружен в коде) |
| whmcs_id | ✅ | int | Параметр whmcs_id (обнаружен в коде) |
| whmcs_location | ✅ | string | Параметр whmcs_location (обнаружен в коде) |
| ✅ | string | Параметр email (обнаружен в коде) | |
| subaccount | ✅ | string | Параметр subaccount (обнаружен в коде) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
curl -s "https://invapi.hostkey.ru/eq.php" -X POST \
--data "action=announceip" \
--data "params[ip]=VALUE" \
--data "id=VALUE" \
--data "subnet=VALUE" \
--data "server=VALUE" \
--data "subnetaddr=VALUE" \
--data "subnetaddrmask=VALUE" \
--data "asn=VALUE" \
--data "ownasn=VALUE" \
--data "annonce=VALUE" \
--data "return=VALUE" \
--data "route=VALUE" \
--data "cmnt=VALUE" \
--data "checkboxes=VALUE" \
--data "ASRegistered=VALUE" \
--data "RKPIValid=VALUE" \
--data "SubNetNotSpamhaus=VALUE" \
--data "DataIsCorrect=VALUE" \
--data "whmcs_id=VALUE" \
--data "whmcs_location=VALUE" \
--data "email=VALUE" \
--data "subaccount=VALUE" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка выполнения операции объявления IP" }
```
eq/backup_get_schedule¶
Возвращает список доступных графиков или расписание для конкретного сервера
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: backup_get_schedule |
| eq_id | ✅ | int | ID оборудования (сервера) для получения его персонального расписания |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Ошибка получения расписания" }
```
eq/backup_list¶
Возвращает список доступных резервных копий для оборудования
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: backup_list |
| eq_id | ✅ | int | ID оборудования |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "backup_list",
"data": [
{
"id": 1024,
"name": "daily_backup_2023-10-27",
"status": "active",
"size": 5120,
"created_at": "2023-10-27T14:30:00Z"
},
{
"id": 1025,
"name": "weekly_backup_2023-10-20",
"status": "error",
"size": 10240,
"created_at": "2023-10-20T10:00:00Z"
}
]
}
Примеры ошибок
``` { "code": -1, "message": "Ошибка при получении списка бэкапов" }
```
eq/backup_save_schedule¶
Сохраняет настройки расписания для резервного копирования оборудования в очередь задач.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: backup_save_schedule |
| params[eq_id] | ✅ | int | ID оборудования (в коде используется $eq_id) |
| backup_schedule | ✅ | object | {'timezone': 'string (название таймзоны)', 'days': 'array |
| token | ✅ | string | Авторизационный токен |
Пример запроса
curl -s "https://invapi.hostkey.ru/eq.php" -X POST \
--data "action=backup_save_schedule" \
--data "params[eq_id]=123" \
--data "backup_schedule[timezone]=Europe/Moscow" \
--data "backup_schedule[days][0]=1" \
--data "backup_schedule[days][1]=3" \
--data "backup_schedule[time]=03:00" \
--data "token=HOSTKEY_TOKEN"
Примеры ошибок
``` { "code": -1, "message": "Ошибка при постановке задачи в очередь" }
```
eq/boot_dev¶
Запрашивает перезагрузку сервера для загрузки с указанного носителя (PXE или диск). Требует наличия прав доступа и может требовать блокировки оборудования.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: boot_dev |
| id | ✅ | int | ID сервера |
| media | ✅ | string | Тип загрузочного носителя (например, pxe) |
| boot_mode | ❌ | string | Режим загрузки: auto, uefi или legacy. Если auto, определяется автоматически на основе HW config. |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Bootable media change request failed: error_details" }
```
eq/check_backup_lock¶
Проверяет наличие активной блокировки на выполнение операции резервного копирования для конкретного ресурса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: check_backup_lock |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | integer | ID ресурса (сервера/виртуальной машины) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Access denied" }
```
eq/check_pin¶
Проверяет PIN-код для операций.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: check_pin |
| token | ✅ | string | Токен авторизации |
| pin | ✅ | string | PIN-код для проверки |
Пример запроса
eq/clear_pxe¶
Очищает PXE-конфигурацию для конкретного хоста. Операция выполняется асинхронно через очередь.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: clear_pxe |
| id | ✅ | integer | ID оборудования (хоста) |
| hostname | ❌ | string | Имя хоста |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Failed to submit clear PXE config request" }
```
eq/console¶
Инициирует сессию удаленного доступа к консоли сервера. Возвращает ключ для подключения.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Console request failed" }
```
eq/create_backup¶
Инициирует процесс создания резервной копии для указанного оборудования. Операция выполняется асинхронно через очередь.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_backup |
| token | ✅ | string | Токен авторизации пользователя |
| params[id] | ✅ | int | ID оборудования для создания бэкапа |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка при постановке задачи в очередь" }
```
eq/create_pxe¶
Инициирует процесс переустановки операционной системы на сервере с использованием конфигурации PXE. Поддерживает выбор OS, настройку диска, SSH-ключей и кастомных скриптов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_pxe |
| id | ✅ | int | ID сервера |
| root_pass | ✅ | string | Пароль root |
| hostname | ✅ | string | Имя хоста |
| os_id | ✅ | int | ID операционной системы |
| ssh_key | ❌ | string | SSH ключ для автоматической настройки |
| post_install_script | ❌ | string | Скрипт после установки |
| post_install_callback | ❌ | string | URL для обратного вызова после завершения |
| reinstall_key | ❌ | string | Ключ переустановки |
| ❌ | string | Email пользователя | |
| os_name | ❌ | string | Алиас имени ОС |
| disk_mirror | ❌ | string | Зеркало диска |
| activate_windows | ❌ | int | Активация Windows (1 - да, 0 - нет) |
| activation_key | ❌ | string | Ключ активации |
| uefi | ❌ | int | Режим загрузки: 0 - Legacy, 1 - UEFI, -1 - по умолчанию |
| attendedInstall | ❌ | string | Атрибут автоматической установки |
| root_size | ❌ | int | Размер корневого раздела |
| deploy_ticket | ❌ | string | Тикет на развертывание (для админов) |
| ignore_duplicated_install | ❌ | int | Игнорировать дубликаты установки |
| no_lvm | ❌ | int | Не использовать LVM |
| custom_domain | ❌ | string | Кастомный домен |
| manual_choice_dsk | ❌ | int | Ручной выбор диска (если > 0) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/create_pxe: invalid server id" }
```
eq/delete_backup¶
Инициирует процесс удаления резервной копии сервера через очередь задач
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_backup |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | integer | ID резервной копии для удаления |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка удаления бэкапа" }
```
eq/deploy¶
Запускает процесс развертывания конкретного сервера по его ID или выбирает доступный сервер из указанного пресета в определенной локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ❌ | int | ID конкретного сервера для развертывания. Если 0, выбирается сервер из пресета. |
| preset | ✅ | string | Название пресета (используется, если id = 0) |
| location | ❌ | int | ID локации для поиска сервера в пресете. Обязательно при использовании preset. |
| hostname | ❌ | string | Желаемое имя хоста |
| os_id | ❌ | int | ID операционной системы для установки |
| own_os | ❌ | int | Флаг использования собственной ОС (1 - да, 0 - нет) |
| root_pass | ❌ | string | Пароль root пользователя |
| ssh_key | ❌ | string | SSH ключ для доступа |
| post_install_script | ❌ | string | Скрипт после установки |
| post_install_callback | ❌ | string | URL для callback-уведомления после завершения установки |
| service_id | ❌ | int | ID услуги в биллинге (для аренды по prebill) |
| traffic_plan | ❌ | int | ID тарифного плана трафика |
| root_size | ❌ | int | Размер корневого диска (по умолчанию 1) |
| ipv4_amount | ❌ | int | Количество IPv4 адресов (по умолчанию 1) |
| uefi | ❌ | int | Режим загрузки UEFI (0, 1 или -1 для авто) |
| attendedInstall | ❌ | int | Флаг автоматической установки |
| jenkins_task | ❌ | int | ID задачи Jenkins для автоматизации |
| deploy_ticket | ❌ | string | ID тикета в Kayako (если нужно привязать к существующему) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/deploy: no servers avalaible for preset example at 1" }
```
eq/get_ipmi¶
Возвращает список доступных IPMI интерфейсов сервера, включая модель и IP-адреса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_ipmi |
| id | ✅ | int | ID сервера |
| token | ✅ | string | Авторизационный токен |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/get_ipmi: invalid server id" }
```
eq/get_traffic¶
Возвращает информацию о потреблении трафика для указанных параметров
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_traffic |
| id | ✅ | integer | ID сервера для получения данных о трафике |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "eq_get_traffic: invalid server id" }
```
eq/get_upgrade_key¶
Возвращает ключ для выполнения операции обновления системы или конфигурации оборудования
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_upgrade_key |
| invoice_id | ✅ | int | Параметр invoice_id (обнаружен в коде) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка получения ключа обновления" }
```
eq/getserversforannounce¶
Возвращает список серверов, доступных для анонса на основе заданных параметров фильтрации и исключений по оборудованию.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: getserversforannounce |
| params[tags][] | ❌ | array<string> | Принимает несколько значений: tag[]=val1&tag[]=val2. Список тегов для фильтрации. |
| params[hardware] | ❌ | object | Конфигурация оборудования (hwconfig) для проверки исключений ОС. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "getserversforannounce",
"data": [
{
"id": 1024,
"name": "srv-prod-01",
"status": "active",
"tags": [
{
"eq_id": 5,
"name": "high-cpu"
},
{
"eq_id": 12,
"name": "ssd-nvme"
}
]
},
{
"id": 1025,
"name": "srv-prod-02",
"status": "active",
"tags": [
{
"eq_id": 8,
"name": "high-ram"
}
]
}
]
}
Примеры ошибок
``` { "code": -1, "message": "Ошибка при получении списка серверов" }
```
eq/groups¶
Возвращает список групп пресетов, привязанных к конкретному серверу.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: groups |
| id | ✅ | integer | ID сервера |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "EQ/groups: invalid server id" }
```
eq/hard_off¶
Отправляет запрос на принудительное (жесткое) выключение сервера через IPMI или API гипервизора. Операция асинхронная.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Имя действия (hard_off) |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | ID сервера для выключения |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Stop request failed" }
```
eq/history¶
Возвращает историю событий сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| id | ✅ | int | ID сервера |
| token | ✅ | string | Токен авторизации |
| type | ❌ | array<string> | Фильтр по типам событий |
| date_from | ❌ | string | Дата начала периода (YYYY-MM-DD) |
| date_to | ❌ | string | Дата конца периода (YYYY-MM-DD) |
Пример запроса
Пример успешного ответа
eq/list¶
Возвращает список доступного оборудования с учетом фильтрации по параметрам
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list |
| - | - | - | Других параметров нет |
Пример успешного ответа
{
"result": "OK",
"action": "list",
"data": [
{
"id": 1024,
"name": "Server-Node-01",
"status": "active",
"location": "NL",
"ip": "192.168.1.1",
"tags": [
{
"id": 5,
"name": "high-performance"
}
]
},
{
"id": 1025,
"name": "Storage-Unit-02",
"status": "pending",
"location": "DE",
"ip": "192.168.1.2",
"tags": []
}
]
}
Примеры ошибок
``` { "code": -1, "message": "Ошибка при получении списка оборудования" }
```
eq/off¶
Отправляет запрос на корректное выключение сервера по его ID
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | int | ID сервера для выполнения команды |
| token | ❌ | string | Токен авторизации |
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Stop request failed" }
```
eq/on¶
Отправляет запрос на включение сервера. Если сервер находится в режиме административного ограничения, ограничение снимается.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие (on) |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/on: invalid server id" }
```
eq/order_instance¶
Запуск процесса развертывания нового сервера по пресету или выполнение переустановки существующего сервера с выбором ОС и дополнительного ПО.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Имя действия (order_instance) |
| token | ❌ | string | Токен авторизации |
| id | ❌ | integer | ID существующего сервера (для переустановки) |
| preset | ❌ | string | Имя или ID пресета для нового заказа |
| os_id | ❌ | integer | ID операционной системы |
| os_template | ❌ | string | Шаблон ОС для развертывания |
| root_pass | ✅ | string | Пароль root (не должен содержать @ или #) |
| ssh_key | ❌ | string | SSH публичный ключ |
| post_install_script | ❌ | string | Скрипт после установки (должен начинаться с #!/path/to/interpreter) |
| post_install_callback | ❌ | string | URL для callback-уведомления |
| hostname | ❌ | string | Имя хоста |
| custom_domain | ❌ | string | Пользовательский домен |
| soft_id | ❌ | integer | ID дополнительного ПО |
| ipv4_amount | ❌ | integer | Количество IPv4 адресов (1, 2, 4, 6, 8) |
| disk_mirror | ❌ | string | Уровень зеркалирования дисков |
| root_size | ❌ | integer | Размер корневого раздела |
| vlan | ❌ | string | ID приватного VLAN |
| deploy_period | ❌ | string | Период оплаты (hourly, monthly, quarterly, semi-annually, annually) |
| traffic_plan | ❌ | integer | ID тарифного плана трафика |
| promocode | ❌ | string | Промокод на скидку |
| service_id | ✅ | integer | ID услуги для prebill/admin mode |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/order_instance: invalid instance name" }
```
eq/ovirt_novnc¶
Запрашивает доступ к консоли oVirt через протокол noVNC для указанного сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: ovirt_novnc |
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "oVirt noVNC console request failed" }
```
eq/reboot¶
Отправляет запрос на перезагрузку сервера по его ID. Операция асинхронная.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reboot |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Reboot request failed" }
```
eq/reinstall¶
Инициирует процесс переустановки операционной системы на сервере. Создает ключ операции и ставит задачу в очередь.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | int | ID сервера для переустановки |
| token | ❌ | string | Токен авторизации |
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/reinstall: invalid server id" }
```
eq/remove_ipmi_user¶
Удаляет лишних пользователей IPMI на указанном сервере. Операция выполняется асинхронно через очередь.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: remove_ipmi_user |
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: invalid server id" }
```
eq/request_backup_link¶
Инициирует процесс создания ссылки для скачивания резервной копии данных
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_backup_link |
| - | - | - | Других параметров нет |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка при создании запроса на бэкап" }
```
eq/restore_backup¶
Запускает процесс восстановления сервера из выбранного резервного копирования через очередь задач
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: restore_backup |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | integer | ID сервера или бэкапа для восстановления |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка запуска процесса восстановления" }
```
eq/search¶
Возвращает список серверов, отфильтрованных по заданным критериям (группа, локация, IP, статус и др.) с дополнительными метаданными о биллинге и тегах.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| group | ❌ | array<string> | Принимает несколько значений: group[]=1CPU&group[]=2CPU |
| dc | ❌ | array<int> | ID дата-центра. Принимает несколько значений: dc[]=1&dc[]=2 |
| location | ❌ | array<string> | Код локации (например, RU, NL). Принимает несколько значений: location[]=RU&location[]=NL |
| rack | ❌ | array<string> | ID стойки. Принимает несколько значений: rack[]=561&rack[]=564 |
| status | ❌ | array<string> | Статус сервера (rented, prepare_full и др.). Принимает несколько значений: status[]=rent&status[]=power_off |
| owner | ❌ | array<string> | Владелец (Hostkey, colo и др.). Принимает несколько значений: owner[]=Hostkey&owner[]=colo |
| component | ❌ | array<int> | ID аппаратных компонентов. Принимает несколько значений: component[]=345&component[]=241 |
| type | ❌ | array<string> | Тип оборудования (server, switch и др.). Принимает несколько значений: type[]=server&type[]=switch |
| ip | ❌ | array<string> | IP-адрес. Принимает несколько значений: ip[]=11.22.33.44&ip[]=55.66.77.88 |
| mac | ❌ | array<string> | MAC-адрес. Принимает несколько значений: mac[]=00:1A:2B&mac[]=3C:4D:5E |
| account_id | ❌ | array<int> | ID аккаунта биллинга. Принимает несколько значений: account_id[]=10&account_id[]=20 |
| billing | ❌ | array<string> | Язык/тип биллинга (en, ru). Принимает несколько значений: billing[]=en&billing[]=ru |
| ❌ | array<string> | Email пользователя. Принимает несколько значений: email[]=test@example.com&email[]=user@domain.tld | |
| name_client | ❌ | array<string> | Имя клиента. Принимает несколько значений: name_client[]=Ivan&name_client[]=Petr |
| full | ❌ | array<string> | Флаг полного отображения данных (для администраторов) |
| kvm | ❌ | array<string> | Наличие KVM. Принимает несколько значений: kvm[]=1&kvm[]=0 |
| serialNumber | ❌ | array<string> | Серийный номер. Принимает несколько значений: serialNumber[]=SN123&serialNumber[]=SN456 |
| id | ❌ | array<int> | ID сервера. Принимает несколько значений: id[]=1&id[]=2 |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"servers": [
{
"id": 105,
"name": "Server-01",
"status": "rented",
"owner": "Hostkey",
"location": "NL",
"ipmi_model": "Dell iDRAC 9",
"mounted_iso": "ubuntu-22.04.iso",
"is_prebill": true,
"prebill_service_id": 5501,
"prebill_rate": 49.99,
"prebill_rate_total": {
"EUR": 58.99,
"RUB": 5200
},
"prebill_period": "monthly",
"project_ids": [1, 5],
"is_owner": "Colocation"
}
]
}
Примеры ошибок
``` { "code": -1, "message": "Access denied" }
```
eq/sensors¶
Возвращает текущие показания датчиков (сенсоров) для указанного сервера
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: sensors |
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/sensors: invalid server id" }
```
eq/set_pin¶
Устанавливает PIN-код для операций.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: set_pin |
| token | ✅ | string | Токен авторизации |
| new_pin | ✅ | string | Новый PIN-код (4-10 символов) |
| old_pin | ❌ | string | Старый PIN-код |
| no_pin_req | ❌ | string | Флаг пропуска проверки PIN (true/false) |
Пример запроса
Пример успешного ответа
eq/show¶
Возвращает полные технические данные о сервере: конфигурацию оборудования, операционную систему, сетевые интерфейсы, IP-адреса, IPMI и связанные теги.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | integer | ID сервера для получения данных |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"server_data": {
"id": 123,
"status": "active",
"type": "Server",
"owner": "admin@hostkey.ru",
"hwconfig": "config_string",
"is_prebill": true,
"prebill_service_id": 456,
"prebill_rate": 50.0,
"prebill_rate_total": {
"EUR": 50.0,
"RUB": 4500.0
},
"prebill_period": "monthly",
"days_left": "15",
"due_date": "2024-12-31",
"project_ids": [
1,
2
],
"is_owner": "Colocation",
"type_billing": "prebill",
"name_client": "Client Name",
"last_backup": {
"date": "2024-12-01T10:00:00Z",
"size": "50GB"
},
"server_contacts": "contact_id_123",
"sla_level": "high",
"rhr_client": 0,
"rhr_internal": 0,
"rhr_order": 0
},
"hardware": {
"config": "cpu: 4, ram: 16GB",
"components": [
{
"name": "Disk",
"size": "500GB",
"priceRU": 1000
}
]
},
"groups": {
"groups": [
1,
2
]
},
"licenses": [
{
"id": 789,
"name": "Windows License on IP 1.2.3.4",
"amount": 1,
"date_buy": ""
}
],
"reinstall": "",
"location": {
"rack_id": 10,
"rack_position": 5,
"rack_name": "Rack-A",
"dc_name": "DataCenter-1",
"dc_location": 1,
"location_id": 1
},
"OS": {
"os_id": 2,
"component_id": 5
},
"IP": [
{
"IP": "1.2.3.4",
"tags": []
}
],
"interfaces": [
{
"id": 10,
"type": "Ethernet",
"mac": "AA:BB:CC:DD:EE:FF",
"upstream_id": 5,
"IsMain": true,
"IsVirt": false,
"Status": "active",
"switch_owner": "",
"switch_model": "Cisco",
"port_of_virt_node": 0,
"tags": []
}
],
"IPMI": {
"model": "Dell iDRAC",
"interfaces": [],
"user": "admin",
"password": "password",
"white_ip": "192.168.1.50",
"ip_acl": "",
"rule_id": ""
},
"tags": [
{
"tag": "next_duedate",
"value": "2024-12-31"
}
],
"preset": "Standard VPS",
"commitment": "usage_limit_val",
"emergency": {
"active": false,
"node_id": 5,
"started_at": "2024-12-01T12:00:00Z"
}
}
Примеры ошибок
``` { "code": -1, "message": "Nothing found for 123" }
```
eq/status¶
Возвращает текущий статус сервера по его ID. Операция асинхронная.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: status |
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "EQ/status: invalid server id" }
```
eq/status_check¶
Проверяет текущий статус оборудования по заданным параметрам
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | int | ID оборудования |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Server not found" }
```
eq/suspend¶
Выполняет запрос на приостановку (suspend) или снятие блокировки (unsuspend) VPS/сервера. Если действие — suspend, сервер будет заблокирован; если unsuspend — разблокирован.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие: suspend или unsuspend |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Suspend request failed" }
```
eq/traffic_add¶
Добавляет запись о расходе или лимите трафика для оборудования
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: traffic_add |
| params[server_id] | ✅ | int | ID сервера |
| params[amount] | ✅ | number | Количество трафика |
| params[unit] | ❌ | string | Единица измерения (например, GB) |
| new_limit | ✅ | string | Параметр new_limit (обнаружен в коде) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка при добавлении трафика" }
```
eq/unified_server_search¶
Единый поиск серверов по запросу.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unified_server_search |
| token | ✅ | string | Токен авторизации |
| query | ✅ | string | Запрос поиска (строка или числовой ID) |
Пример запроса
Пример успешного ответа
eq/unit_reset¶
Отправляет запрос на перезагрузку устройства через интерфейс IPMI. Операция асинхронная.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unit_reset |
| id | ✅ | int | ID сервера для выполнения перезагрузки |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "IPMI unit reset request failed: error_details" }
```
eq/unsuspend¶
Запрашивает разблокировку (unsuspend) VPS или выделенного сервера. Если операция выполняется успешно, возвращается callback для отслеживания задачи в очереди.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unsuspend |
| id | ✅ | int | ID сервера |
| token | ❌ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Unsuspend request failed" }
```
eq/update_servers¶
Синхронизирует список серверов пользователя на основе данных WHMCS, учитывая активные услуги, статус оплаты и права доступа. Возвращает актуальный перечень ID серверов, ключи развертывания (deploy keys) и данные о состоянии оборудования.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_servers |
| token | ❌ | string | Токен авторизации |
| ip | ❌ | string | IP адрес пользователя |
| load_servers_only | ❌ | boolean | Если true, возвращает только ID серверов (исключая IP rent) |
Пример успешного ответа
{
"result": "OK",
"action": "update_servers",
"servers": [
1024,
1025,
1026
],
"billing_servers": [
{
"id": 550,
"config": "",
"status": "Pending payment",
"regdate": "2024-05-01",
"name": "Service Name",
"recurring": "29.99",
"nextduedate": "2024-06-01",
"billingcycle": "Monthly"
}
],
"deploy_keys": {
"product_id_1": "7bc29eb23fb1b879b21fce509597f07c"
},
"prebill_deploy_keys": [
"key_val_1",
"key_val_2"
],
"prebill_pending": [],
"servers_emergency": {
"1024": {
"active": true,
"node_id": 5,
"started_at": "2024-05-10T12:00:00Z"
}
}
}
Примеры ошибок
``` { "code": -1, "message": "Failed to retrive servers list, billing error: Service not found" }
```