Интерфейс API работает по протоколу JSON‑RPC 2.0 через HTTP.
POST в формате application/json.Content-Type: application/json X-API-KEY: ваш_ключ_API
Тело запроса — объект с одним методом:
{
"jsonrpc": "2.0",
"method": "test",
"params": {
"foo": "bar",
"api_hash": "..."
},
"id": 1
}
Тело запроса — массив объектов:
[
{
"jsonrpc": "2.0",
"method": "test",
"params": { ... },
"id": 1
},
{
"jsonrpc": "2.0",
"method": "account",
"params": { ... },
"id": 2
}
]
Перед отправкой запроса необходимо сформировать хеш-подпись в параметрах:
params по алфавиту.JSON.stringify(sorted_params) + method + api_key
hmacSha256 от этой строки, используя api_salt как ключ.params.api_hash.Таким образом, финальный объект params будет выглядеть так:
{
"key1": "значение1",
"key2": "значение2",
"api_hash": "..."
}
Ниже — минимальная функция для отправки одного метода. Никакого лишнего кода (без UI, без лишних логов).
<script>
/**
* Отправляет один JSON‑RPC метод к API.
*
* @param {string} method - имя метода
* @param {Object} params - параметры
* @param {string} api_key - ключ API
* @param {string} api_salt - соль для хэша
* @param {Function} hmacSha256 - async функция HMAC‑SHA256
* @returns {Promise<any>} ответ от сервера
*/
async function sendApiMethod(
method,
params,
api_key,
api_salt,
hmacSha256
) {
// 1. Сортируем ключи параметров
const sortedParams = Object.keys(params || {})
.sort()
.reduce((acc, key) => {
acc[key] = params[key];
return acc;
}, {});
// 2. Вычисляем api_hash
sortedParams.api_hash = await hmacSha256(
JSON.stringify(sortedParams) + method + api_key,
api_salt
);
// 3. Формируем тело запроса
const body = {
jsonrpc: "2.0",
method: method,
params: sortedParams,
id: 1
};
// 4. Отправляем POST с X-API-KEY в заголовке
const response = await fetch("https://api_back.com/api/", {
method: "POST",
credentials: "include",
headers: {
"Content-Type": "application/json",
"X-API-KEY": api_key
},
body: JSON.stringify(body)
});
const result = await response.json();
return result;
}
</script>
const result = await sendApiMethod(
"account", // method
{ account_id: "123" }, // params
"ваш_api_key", // api_key
"ваш_api_salt", // api_salt
hmacSha256 // функция хэша
);
Тестовый метод, проверяет доступность API и корректность работы хеша. Данный метод не существует.
Генерация кода авторизации для входа в аккаунт по email.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
email |
string | да | Электронный адрес аккаунта, для которого генерируется код. |
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
code_length |
int | да | Длина сгенерированного кода авторизации. |
| Код ошибки | Описание |
|---|---|
50201 |
Пользователь уже авторизован |
50202 |
Не задан параметр "email" |
50203 |
Неверное значение параметра "email" |
50204 |
Ошибка отправки кода авторизации на почту |
50205 |
Ошибка сохранения кода авторизации |
Запрос на вход в аккаунт по коду.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
code |
string | да | Код аккаунта для входа в аккаунт |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического применения кода |
| Код ошибки | Описание |
|---|---|
50101 |
Пользователь уже авторизован |
50102 |
Не задан параметр "code" |
50103 |
Неверное значение параметра "code" |
50104 |
Указанный код не найден |
50105 |
Ошибка вычисления идентификатора аккаунта |
50106 |
Аккаунт выключен |
50107 |
Ошибка генерации идентификатора сессии |
50108 |
Ошибка привязки идентификатора сессии к аккаунту |
50109 |
Аккаунт не найден |
Данные текущего аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
is_auth |
bool | Флаг авторизованности пользователя |
account |
array | Массив параметров аккаунта |
Запрос на выход из аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического выхода из аккаунта |
Удаление аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического удаления аккаунта |
Получение списка продуктов.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
Регистрация сервера и обновление его ключа.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
ip |
string | да | IP адрес сервера |
port |
int | да | Порт сервера |
key |
string | да | Ключ сервера |
country |
string | да | Код страны |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического регистрации/обработки ключей |
key_ttl |
int | Рекомендуемое время смены ключа, c. |
| Код ошибки | Описание |
|---|---|
60101 |
Не задан параметр "ip" |
60102 |
Не задан параметр "port" |
60103 |
Не задан параметр "key" |
60104 |
Не задан параметр "country" |
60105 |
Неверное значение параметра "ip" |
60106 |
Неверное значение параметра "port" |
60107 |
Неверное значение параметра "key" |
60108 |
Неверное значение параметра "country" |
60109 |
Ошибка регистрации сервера |
60110 |
Ошибка обновления ключа сервера |
Список записей постранично.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
table |
string | да | Тип списка |
limit |
int | да | Предел количество записей на страницу |
offset |
int | да | Смещение по списку записей |
sort |
array | нет | Массив полей для сортировки записей |
| Название | Тип | Описание |
|---|---|---|
total |
int | Количество всего записей |
columns |
array | Массив полей для вывода |
list |
array | Часть списка |
offset |
int | Смещение по списку |
limit |
int | Предел по количеству элементов списка |
| Код ошибки | Описание |
|---|---|
80101 |
Не задан параметр "table" |
80102 |
Неверное значение параметра "table" |
80103 |
Не задан параметр "limit" |
80104 |
Не задан параметр "offset" |
80105 |
Неверное значение параметра "limit" |
80106 |
Неверное значение параметра "offset" |
80107 |
Указано неверное направление сортировки |
80108 |
Указано недопустимое поле для сортировки |
Удаление записей по id.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
table |
string | да | Тип списка |
ids |
array | да | Массив идентификаторов для удаления |
| Название | Тип | Описание |
|---|---|---|
count_deleted |
int | Количество удаленных записей |
| Код ошибки | Описание |
|---|---|
80201 |
Не задан параметр "table" |
80202 |
Неверное значение параметра "table" |
80203 |
Не задан параметр "ids" |
80204 |
Неверное значение параметра "ids" |
Внесение изменений в записи по id.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
table |
string | да | Тип списка |
ids |
array | да | Массив идентификаторов для модификации |
columns |
array | да | Массив ассоциативный с новыми значениями полей |
| Название | Тип | Описание |
|---|---|---|
count_edit |
int | Количество отредактированных записей |
| Код ошибки | Описание |
|---|---|
80301 |
Не задан параметр "table" |
80302 |
Неверное значение параметра "table" |
80303 |
Не задан параметр "ids" |
80304 |
Неверное значение параметра "ids" |
80305 |
Неверное значение параметра "columns" |
Внесение записи в список.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
table |
string | да | Тип списка |
columns |
array | да | Массив имен полей |
data |
array | да | Массив данных (ассоциативный с новыми значениями полей) |
| Название | Тип | Описание |
|---|---|---|
count_create |
int | Количество созданных записей |
| Код ошибки | Описание |
|---|---|
80401 |
Не задан параметр "table" |
80402 |
Не задан параметр "columns" |
80403 |
Неверное значение параметра "columns" |
80404 |
Не задан параметр "data" |
80405 |
Неверное значение параметра "data" |
80406 |
Неверное значение параметра "table" |
80407 |
Неверное значение параметра "columns" |
80408 |
Неверное сигнатра параметра "data" |
Очистка кеша.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического удаления кеша |
Получение данных о списках данных.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
tables |
array | Массив таблиц и их структура |
values |
array | Массив значений для полей |
Статистика по таблицам.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
days_count |
int | нет | Период в днях для отображения статистики (по умолчанию 30) |
| Название | Тип | Описание |
|---|---|---|
accounts |
array | Массив статистики для таблицы аккаунтов |
devices |
array | Массив статистики для таблицы устройств |
orders |
array | Массив статистики для таблицы покупок |
servers |
array | Массив статистики для таблицы серверов |
Получение списка значений идентификаторов по поиску в поле.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
table |
string | да | Тип списка |
columns |
string | да | Имя колонки для поиска |
search_column |
string | да | Имя колонки для поиска |
search_value |
string | да | Искомое значение |
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
| Код ошибки | Описание |
|---|---|
80501 |
Не задан параметр "table" |
80502 |
Неверное значение параметра "table" |
80503 |
Не задан параметр "search_value" |
80504 |
Неверное значение параметра "search_value" |
80505 |
Не задан параметр "search_column" |
80506 |
Неверное значение параметра "search_column" |
80507 |
Не задан параметр "columns" |
80508 |
Неверное значение параметра "columns" |
Разворачивание ПО на сервере.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
ip |
string | да | IP-адрес |
user |
string | да | Пользователь |
password |
string | да | Пароль |
| Название | Тип | Описание |
|---|---|---|
| Структура результата не описана | array | Данные об операции |
Оплата n‑единиц товара.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
product_id |
int | да | Идентификатор товара |
product_count |
int | да | Количество единиц товара |
options |
array | да | Массив параметров |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического совершения операции |
| Код ошибки | Описание |
|---|---|
70201 |
Не задан параметр "product_id" |
70202 |
Неверное значение параметра "product_id" |
70203 |
Неверное значение параметра "count" |
70204 |
Неверное значение параметра "options" |
70205 |
Продукт не найден |
70206 |
Продукт недоступен |
70207 |
Продукт не для продажи |
70208 |
Продукт не действует |
70209 |
Продукт не применим |
70210 |
Недостаточно средств |
70211 |
Ошибка транзакции |
70212 |
Покупка недоступна |
70213 |
Недостаточно средств в аккаунте |
70214 |
Ошибка регистрации операции |
70215 |
Ошибка проведения операции |
Получение списка товаров.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
Привязка продукта к устройству.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
device_id |
int | да | Идентификатор устройства |
product_id |
int | да | Идентификатор товара |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического применения продукта к устройству |
| Код ошибки | Описание |
|---|---|
70301 |
Не задан параметр "device_id" |
70302 |
Неверное значение параметра "device_id" |
70303 |
Не задан параметр "product_id" |
70304 |
Неверное значение параметра "product_id" |
70305 |
Устройство не найдено |
70306 |
Устройство недоступно |
70307 |
Нет продукта |
70308 |
Превышен лимит устройств |
Получение списка устройств аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| Нет | |||
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
Применение кода устройства для привязки его в аккаунт.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
code |
string | да | Код устройства для привязки его в аккаунт |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического применения кода |
| Код ошибки | Описание |
|---|---|
70101 |
Не задан параметр "code" |
70102 |
Неверное значение параметра "code" |
70103 |
Указанный код не найден |
70104 |
Нет данных по коду |
Удаление устройства из аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
device_id |
string | да | Хеш устройства |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического удаления устройства из аккаунта |
| Код ошибки | Описание |
|---|---|
70401 |
Не задан параметр "device_id" |
70402 |
Неверное значение параметра "device_id" |
Регистрация устройства или обновление его IP и имени.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
device_hash |
string | да | Хеш устройства |
device_name |
string | да | Название устройства |
device_platform |
int | да | Платформа устройства |
| Название | Тип | Описание |
|---|---|---|
is_performed |
bool | Флаг фактического регистрации/обновления данных устройства |
token_app |
string | Временный ключ для доступа к данным приложения |
device_id |
int | Идентификатор устройства |
| Код ошибки | Описание |
|---|---|
90101 |
Не задан параметр "device_hash" |
90102 |
Не задан параметр "device_name" |
90103 |
Не задан параметр "device_platform" |
90104 |
Неверное значение параметра "device_hash" |
90105 |
Неверное значение параметра "device_name" |
90106 |
Неверное значение параметра "device_platform" |
90107 |
Ошибка сохранения данных устройства |
90108 |
Устройство не найдено |
Генерация кода устройства для привязки в аккаунте.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
token_app |
string | да | Временный ключ для доступа к данным приложения |
device_id |
int | да | Идентификатор устройства |
device_hash |
string | да | Хеш устройства |
| Название | Тип | Описание |
|---|---|---|
code_length |
int | Длина созданного кода |
| Код ошибки | Описание |
|---|---|
90201 |
Не задан параметр "token_app" |
90202 |
Неверное значение параметра "token_app" |
90203 |
Не задан параметр "device_hash" |
90204 |
Неверное значение параметра "device_hash" |
90205 |
Не задан параметр "device_id" |
90206 |
Неверное значение параметра "device_id" |
90207 |
Устройство не найдено |
90208 |
Неверное устройство |
90209 |
Устройство недоступно |
90210 |
Ошибка сохранения кода устройства |
Получение информации о используемом продукте устройства.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
token_app |
string | да | Временный ключ для доступа к данным приложения |
device_id |
int | да | Идентификатор устройства |
device_hash |
string | да | Хеш устройства |
| Название | Тип | Описание |
|---|---|---|
product_id |
int | Идентификатор товара |
product_name |
string | Название продукта |
product_description |
string | Описание продукта |
product_type |
int | Тип товара |
options |
array | Массив опций продукта |
is_can_execute |
bool | Флаг возможности приобрести/использовать товар |
is_active |
bool | Флаг действия продукта |
is_have |
bool | Флаг наличие продукта у устройства |
| Код ошибки | Описание |
|---|---|
90601 |
Не задан параметр "token_app" |
90602 |
Неверное значение параметра "token_app" |
90603 |
Не задан параметр "device_hash" |
90604 |
Неверное значение параметра "device_hash" |
90605 |
Не задан параметр "device_id" |
90606 |
Неверное значение параметра "device_id" |
90607 |
Устройство не найдено |
90608 |
Неверное устройство |
90609 |
Устройство недоступно |
Получение страницы уведомлений.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
page |
string | нет | Номер страницы |
token_app |
string | да | Временный ключ для доступа к данным приложения |
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
| Код ошибки | Описание |
|---|---|
90401 |
Не задан параметр "token_app" |
90402 |
Неверное значение параметра "token_app" |
Получение страницы витрины.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
page |
string | нет | Номер страницы |
token_app |
string | да | Временный ключ для доступа к данным приложения |
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
| Код ошибки | Описание |
|---|---|
90301 |
Не задан параметр "token_app" |
90302 |
Неверное значение параметра "token_app" |
Получение списка иконок.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
token_app |
string | да | Временный ключ для доступа к данным приложения |
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
| Код ошибки | Описание |
|---|---|
90501 |
Не задан параметр "token_app" |
90502 |
Неверное значение параметра "token_app" |
Получение списка серверов.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
token_app |
string | да | Временный ключ для доступа к данным приложения |
| Название | Тип | Описание |
|---|---|---|
columns |
array | Список столбцов |
columns_title |
array | Список заголовков столбцов |
list |
array | Данные записей списка |
page |
int | Номер страницы |
page_total |
int | Всего страниц |
| Код ошибки | Описание |
|---|---|
90801 |
Не задан параметр "token_app" |
90802 |
Неверное значение параметра "token_app" |
Получение параметров аккаунта.
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
token_app |
string | да | Временный ключ для доступа к данным приложения |
device_id |
int | да | Идентификатор устройства |
device_hash |
string | да | Хеш устройства |
| Название | Тип | Описание |
|---|---|---|
account |
array | Массив параметров аккаунта |
| Код ошибки | Описание |
|---|---|
90701 |
Не задан параметр "token_app" |
90702 |
Неверное значение параметра "token_app" |
90703 |
Не задан параметр "device_hash" |
90704 |
Неверное значение параметра "device_hash" |
90705 |
Не задан параметр "device_id" |
90706 |
Неверное значение параметра "device_id" |
90707 |
Устройство не найдено |
90708 |
Неверное устройство |
90709 |
Устройство недоступно |
90710 |
Аккаунт не найден |
90711 |
Аккаунт недоступен |
| Код ошибки | Описание |
|---|---|
40101 |
Не задан параметр "api_key" |
40102 |
Неверное значение параметра "api_key" |
40103 |
Значение параметра "api_key" не подходит |
40201 |
Не верный метод запроса |
40202 |
Не заданы данные запроса |
40203 |
Неверное сигнатура данных запроса |
40204 |
Неверное значение данных запроса |
40205 |
Вызываемый метод вне разрешенного диапазона |
40301 |
Не задан параметр "api_hash" |
40302 |
Неверное значение параметра "api_hash" |
40303 |
Данные запроса не найдены |
40304 |
Не задан параметр "method" запроса |
40305 |
Неверное значение параметра "method" запроса |
40306 |
Не задан параметр "params" запроса |
40307 |
Неверное значение параметра "params" запроса |
40308 |
Не задан параметр "id" запроса |
40309 |
Неверное значение параметра "id" запроса |
40310 |
Вызываемый метод недоступен |
40401 |
Необходима авторизация |
40402 |
Нет прав |
| Код ошибки | Описание |
|---|---|
30101 |
БД не поддерживается |
30201 |
Ошибка подключения |
30301 |
Нет подключения |
30302 |
Ошибка выполнения запроса |
30303 |
Ошибка создания схемы запроса |
30304 |
Ошибка рендринга схемы и исполнения запроса |
30401 |
Не заданы поля для обновления |
30402 |
Не заданы поля для проверки уникальности |
| Код ошибки | Описание |
|---|---|
20101 |
Модуль для работы с памятью недоступен |
| Код ошибки | Описание |
|---|---|
-1 |
Нет данных |
0 |
Нет ошибок |
10001 |
Ошибка запуска |