api_keys.php¶
Модуль управления API-ключами: создание, редактирование, удаление, просмотр истории и получение списков ключей для клиентов и серверов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add | создание API ключа | Создает новый API ключ для клиента или конкретного сервера. Требуется наличие активных серверов у клиента. |
delete | удаление API ключа | Удаляет указанный API ключ из системы. |
edit | редактирование API ключа | Изменяет параметры существующего API ключа (название, IP, статус, срок действия). |
history | получение истории API ключей | Возвращает историю действий с API ключами (создание, изменение, удаление). |
list | получение списка API ключей | Возвращает список всех API ключей текущего клиента. |
list_for_server | получение ключей для сервера | Возвращает список API ключей, привязанных к конкретному серверу. |
view | просмотр API ключа | Возвращает детальную информацию об одном API ключе. |
api_keys/add¶
Создает новый API ключ для клиента или конкретного сервера. Требуется наличие активных серверов у клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add |
| token | ✅ | string | Токен авторизации |
| params[name] | ✅ | string | Название API ключа |
| params[server_id] | ❌ | int | ID сервера, для которого создается ключ (если не указан, ключ для всех серверов) |
| params[ip] | ❌ | string | IP-адрес, с которого разрешено использование ключа |
| params[active] | ❌ | int | Статус активности ключа (1 - активен, 0 - неактивен) |
| params[login_notify_method] | ❌ | string | Метод уведомления о входе (none, email, webhook) |
| params[login_notify_address] | ❌ | string | Адрес для уведомления (email или URL в зависимости от метода) |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=add" \
--data "token=HOSTKEY_TOKEN" \
--data "params[name]=Production Key" \
--data "params[server_id]=10" \
--data "params[ip]=192.168.1.1" \
--data "params[active]=1" \
--data "params[login_notify_method]=email" \
--data "params[login_notify_address]=admin@example.com"
Пример успешного ответа
{
"result": "OK",
"module": "api_keys",
"action": "add",
"data": {
"id": 12345,
"name": "Production Key",
"token_view": "sk_live_abc123...",
"server_id": 10,
"ip": "192.168.1.1",
"active": 1,
"login_notify_method": "email",
"login_notify_address": "admin@example.com",
"customer_id": "cust_123",
"api_key": "a1b2c3d4e5f6g7h8-i9j0k1l2m3n4o5p6",
"created_at": "2024-01-15T10:30:00Z"
}
}
Примеры ошибок
{
"code": -1,
"message": "invalid argument name",
"details": {
"reason": "Параметр name пуст или некорректен"
}
}
api_keys/edit¶
Изменяет параметры существующего API ключа (название, IP, статус, срок действия).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: edit |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | int | ID редактируемого API ключа |
| params[name] | ✅ | string | Новое название API ключа |
| params[active] | ❌ | int | Новый статус активности (1/0). По умолчанию 1 |
| params[ip] | ❌ | string | Новый IP-адрес для ограничения доступа (или пустая строка для снятия ограничения) |
| params[login_notify_method] | ❌ | string | Метод уведомления о входе (none, email, webhook) |
| params[login_notify_address] | ❌ | string | Адрес для уведомлений (email или URL в зависимости от метода) |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=edit" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=VALUE" \
--data "params[name]=VALUE"
Пример успешного ответа
Примеры ошибок
api_keys/delete¶
Удаляет указанный API ключ из системы.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | int | ID удаляемого API ключа |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=delete" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=VALUE"
Пример успешного ответа
Примеры ошибок
{
"code": -1,
"message": "invalid argument id",
"description": "Некорректный ID (меньше 1 или не число)",
"details": {
"id": "invalid_value"
}
}
api_keys/history¶
Возвращает историю действий с API ключами (создание, изменение, удаление).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: history |
| token | ✅ | string | Токен авторизации |
| params[limit] | ❌ | int | (внутри params[]) Количество записей для возврата |
| params[offset] | ❌ | int | (внутри params[]) Смещение для пагинации |
| params[key_id] | ❌ | int | (внутри params[]) Фильтр по ID ключа |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=history" \
--data "token=HOSTKEY_TOKEN" \
--data "params[limit]=10" \
--data "params[offset]=0"
Пример успешного ответа
{
"result": "OK",
"module": "api_keys",
"action": "history",
"data": [
{
"id": 1,
"key_id": 12345,
"action": "created",
"user": "admin",
"timestamp": "2024-01-15T10:30:00Z",
"details": "Key created for server 10"
},
{
"id": 2,
"key_id": 12345,
"action": "edited",
"user": "admin",
"timestamp": "2024-01-16T14:20:00Z",
"details": "IP changed to 10.0.0.5"
}
]
}
Примеры ошибок
api_keys/list¶
Возвращает список всех API ключей текущего клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list |
| token | ✅ | string | Токен авторизации |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=list" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"module": "api_keys",
"action": "list",
"data": [
{
"id": 12345,
"name": "Production Key",
"token_view": "sk_live_abc123...",
"server_id": 10,
"ip": "192.168.1.1",
"active": 1,
"login_notify_method": "email",
"login_notify_address": "admin@example.com"
},
{
"id": 12346,
"name": "Staging Key",
"token_view": "sk_live_def456...",
"server_id": null,
"ip": null,
"active": 0,
"login_notify_method": null,
"login_notify_address": null
}
]
}
Примеры ошибок
api_keys/list_for_server¶
Возвращает список API ключей, привязанных к конкретному серверу.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list_for_server |
| token | ✅ | string | Токен авторизации |
| params[server_id] | ✅ | int | ID сервера для фильтрации ключей |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=list_for_server" \
--data "token=HOSTKEY_TOKEN" \
--data "params[server_id]=VALUE"
Пример успешного ответа
{
"result": "OK",
"module": "api_keys",
"action": "list_for_server",
"data": [
{
"id": 12345,
"name": "Server 10 Key",
"active": 1,
"ip": "192.168.1.1",
"server_id": 10,
"token_view": "sk_live_abc123...",
"login_notify_method": "email",
"login_notify_address": "admin@example.com"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "invalid argument server_id",
"details": {
"reason": "server_id must be greater than 0"
}
}
api_keys/view¶
Возвращает детальную информацию об одном API ключе.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: view |
| token | ✅ | string | Токен авторизации |
| params[id] | ✅ | int | ID API ключа для просмотра |
Пример запроса
curl -s "https://invapi.hostkey.ru/api_keys" -X POST \
--data "action=view" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=VALUE"
Пример успешного ответа
{
"result": "OK",
"module": "api_keys",
"action": "view",
"data": {
"id": 12345,
"name": "Production Key",
"token_view": "sk_live_abc123...",
"server_id": 10,
"ip": "192.168.1.1",
"expire": 1735689600,
"active": 1,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-16T14:20:00Z"
}
}