September 24, 2020

KEHR API

API построен по принципу REST API
Тип принимаемых и отправляемых данных JSON. Используйте Content-type: application/json
Для изменения состояния объекта используется 4 метода:
• GET — Получение информации об объекте
• POST — Создание нового объекта
• PUT — Обновление информации об объекте
• DELETE — Удаление объекта

--Авторизация--


Для авторизации при каждом запросе должен быть использован header

"X-Api-Key" c API ключом, который можно получить или изменить в разделе Инструменты.

--Ограничения--


150 запросов в течении 60 секунд с одного API ключа.

--Точка входа--


https://cp.kehr.io/api

--Доступные методы--

/domains


GET - Выводит все доступные домены.
Пример ответа:
[
{
"id": 1,
"domain": "test.com",
"add_time": "2220-01-15", "subscriptions_id": 1,
"in_use": 1, "is_alive": 1,
"vip": 1,
"vk": 2,
"uniq": 14
},
{
"id": 4,
"domain": "test.ru",
"add_time": "2120-04-12", "subscriptions_id" 0,
"in_use": 0, "is_alive: 1,
"vip": 1,
"vk": 1,
"uniq": 0
}
]

Описание параметров:

id - Уникальный идентификатор домена в системе.

domain - Имя домена.

add_time - Время добавления в систему.

subscriptions_id - Текущий id тарифа к которому привязан домен. 0 - если не привязан.

in_use - Используется ли на данный момент домен. 0 - Нет, 1 - Да

is_alive - Активна ли привязка домена. 0 - Нет, 1 - Да

vip - Источник домена. 0 - Личный домен. 1 - Dmarket

vk - Статус бана в VK. 0 - Не проверялся. 1 - Не в бане. 2 - В бане.

uniq - Количество уникальных переходов по домену.


POST - Добавление доменов в панель управления.
Обязательные параметры:
domains - Массив содержащий список доменов.
Пример значения: ["superdomen.tech", "mydomen.tech"]
Ответ:
{
"success": [
"superdomen.tech",
"mydomen.tech"
]
}
success содержит список всех успешно добавленных доменов.
Может содержать массив rcn с доменами заблокированными Роскомнадзором. Доменам из этого массива следует сразу же сменить DNS.

/domains/<id>


GET - Выводит данные домена с указанным ID.
Пример ответа:
{
"id": 1,
"domain": "test.com",
"add_time": "2220-01-15", "subscriptions_id": 1,
"in_use": 1, "is_alive": 1,
"vip": 1,
"vk": 2,
"uniq": 14
}

PUT - Изменение подписки у домена
Обязательные параметры:
subscriptions_id - Integer, ID подписки к которой будет привязан домен. 0 для отвязки от всех услуг.
Ответ:
Вернет итоговую информацию об измененном домене.

DELETE - Удаление домена с аккаунта
Ответ:
Статус 204

/templates
GET - Выводит все доступные шаблоны.
Пример ответа:
[
{
"id": 150205,
"link": "google.com",
"title": "Test Title",
"description": "Test Description",
"image": "http://goodimg.com/1.jpg",
"delay": "1",
"comment": "asdasd"
}
]
POST - Добавление нового шаблона.
Параметры:
link - String, целевая ссылка куда будут направляться пользователи.
title - String, Заглавие
description - String, Описание
image - String, ссылка на картинку.
delay - Integer, задержка в секундах.
comment - String, комментарий к шаблону для личных нужд.

/templates/<id>


GET - Выводит данные шаблона с указанным ID.
Пример ответа:
{
"id": 150205,
"link": "google.com",
"title": "Test Title",
"description": "Test Description",
"image": "http://goodimg.com/1.jpg",
"delay": "1",
"comment": "asdasd"
}
PUT - Изменение полей шаблона.
Параметры:
link - String, целевая ссылка куда будут направляться пользователи.
title - String, Заглавие
description - String, Описание
image - String, ссылка на картинку.
delay - Integer, задержка в секундах.
comment - String, комментарий к шаблону для личных нужд.

DELETE - Удаление шаблона.
Ответ:
Статус 204


/subs


GET - Выводит все активные подписки.
Пример ответа:
[
{
"id": 1,
"createtime": "2010-02-16 15:28:02", "expiretime": "2080-02-26 16:59:00",
"status": 1,
"autopay": 0,
"description": "my desc",
"redirectSettings": {
"type": "302",
"randomdivs": 1,
"randomtitle": 1,
"otvod": "{\"links\":[],\"custom\":false}",
"bot_tto2": 1,
"gettotolt": 0,
"antibot": 1,
"vk_ban":ban": 0 } }, { "id": 2, "create "2019-04-26 13:25:05",
"expire_time": time": "2025-04-26 13:25:05", "status": 1, "autopay": 1, "description": "ddd", "redirectSettings": { "type": "META", "randomdivs": 1, "randomtitle": 1, "otvod": "false", "bot 1,
302": 1, "get: 0,result": 0, "antibot": 1, "vk }
}
]

/subs/<id>


GET - Выводит данные подписки с указанным ID.
Пример ответа:
{
"id": 1,
"createtime": "2010-02-16 15:28:02", "expiretime": "2080-02-26 16:59:00",
"status": 1,
"autopay": 0,
"description": "my desc",
"redirectSettings": {
"type": "302",
"randomdivs": 1,
"randomtitle": 1,
"otvod": "{\"links\":[],\"custom\":false}",
"bot_tto2": 1,
"gettotolt": 0,
"antibot": 1,
"vk_ban": 0
}
},

/subs/<id>/rs


PUT - Изменение настроек редиректа
Параметры:
type - String, один из следующих типов META, JS, IFRAME, SUBMIT, 302.
randomdivs - Integer, случайное содержимое страницы. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).
randomtitle - Integer, случайный тайтл. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).
otvod - 3 варианта.
false - Для отключения отвода ботов на трастовые ссылки.
{"links":[],"custom":false} - Для отвода ботов на трастовые сайты системы.
{"links":["test.ru","yandex.ru"],"custom":true} - Для отвода на свои ссылки.
bot_to_302 - Integer, подмена превью. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).
get_to_result - Integer, передача GET параметров на целевую ссылку. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).
antibot - Integer, антибот. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).
vk_ban - Integer, считать ботами всех если домен забанен VK. Доступные варианты 0 (ВЫКЛ) и 1 (ВКЛ).

/subs/<id>/links (только для Multi тарифов)


GET - Выводит все ссылки подписки.
Пример ответа:
[
{
"link": "z.test.com/3ac1",
"templateid": 150205 }, { "link": "u.test.com/7397", "templateid": 150205
},
{
"link": "e.test.com/4e2b",
"template_iid": 150205 }, { "link": "f.test.com/9244", "template": 150205
},
{
"link": "j.test.com/621f",
"template_id": 150205
}
]

POST - Добавление ссылок основанных на прикрепленных к подписке доменах.
Обязательные параметры:
data - JSON объект.
links - Массив со списком ссылок.
template_id - Integer, ID шаблона.
Пример:
{
"links":["http://q.test.com/28", "http://q.test.com/28111"],
"template_id": 250205
}

DELETE - Удаление ссылки
Ответ:
Статус 204

/subs/<id>/rules


GET - Выводит все правила TDS подписки.
Пример ответа:
[
{
"id": 4323,
"priority": 1,
"templateid": 250205, "settings": { "type": 0, "data": "{\"countries\":\"RU,UA\",\"is\":\"1\"}" } }, { "id": 4310, "priority": 2, "templateid": 0,
"settings": {
"type": 5,
"data": "{\"unic\":true,\"is\":\"0\"}"
}
}
]

POST - Добавление правила TDS.
Обязательные параметры:
template_id - Integer, ID шаблона. 0 для Считать ботами.
priority - Integer, приоритет.
type_id - Integer, тип правила. 0 - Страны, 1 - Города, 2 - OS, 3 - Тип устройства, 4 - Браузеры, 5 - Уникальные, 6 - Сети, 7 - Рефереры.
is - Integer, условие. 0 - Не, 1 - Только.
data - Массив со списком. Например: [ "RU", "UA", "KZ" ]

DELETE - Удаление правила TDS.
Ответ:
Статус 204

/subs/<id>/generator


GET - Генерирует ссылки на основе доменов в подписке.
Обязательные параметры:
sub_lenght - Integer, длина субдоменов (поддоменов) link_lenght - Integer, длина линков (после /)
amount - Integer, количество ссылок
unic - Integer, только уникальное сочетания
shuffle - Integer, перемешать
Необязательные параметры:
int - Integer, использовать цифры в субдоменах (поддоменах)
punycode - Integer, преобразование Punycode

Пример ответа:
[
"http://v.test.com/cc5e4d6d2eb",
"http://j.test.com/109ea711331",
"http://i.test.com/5af4b22d572",
"http://t.test.com/751b9dd0f6d",
"http://l.test.com/8e209d23a16",
"http://w.test.com/ee02bb19523",
"http://e.test.com/c65db2575d7",
"http://o.test.com/722ba2035eb",
"http://d.test.com/37a9e6ff622",
"http://r.test.com/f4b3ee47169",
"http://p.test.com/ffe1642c147"
]

/user-agents/get-random

GET - Выводит случайные User Agents с заданными параметрами. Доступен только при активной подписке!
Параметры:
count - Integer, необходимое количество UA
type - String, необходимый тип UA. Доступно mobile, computer.

Все параметры необязательны. При отсутствии count будет выдан один UA, при отсутствии или неверном значении type, будет выдан полностью случайный UA.

Пример ответа:
[
"Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBAV/260.0.0.43.115;FBBV/201641494;FBDV/iPhone10,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/2028465"
]

/user-agents/get-last

GET - Выводит новейшие User Agents из базы данных, с заданными параметрами. Доступен только при активной подписке!
Параметры:
count - Integer, необходимое количество UA
type - String, необходимый тип UA. Доступно mobile, computer.

os - String, нужная ОС. Доступно android, ios, windows, linux, macos. Обязательно передавать вместе с параметром type.

Все параметры необязательны. При отсутствии count будет выдан один UA, при отсутствии или неверном значении type, будет выдан полностью случайный UA.

Пример ответа:
[
"Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBAV/260.0.0.43.115;FBBV/201641494;FBDV/iPhone10,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/2028465"
]

--Возможные ошибки--

Запрашиваемый или изменяемый объект не найден. Подробности в message
{
"name": "Not Found",
"message": "Object not found: 1",
"code": 0,
"status": 404
}

Переданные данные не могут быть обработаны из за несоответствия типов или нехватки параметров. Подробности в message
{
"name": "Unprocessable entity",
"message": "One or few required params not set",
"code": 0,
"status": 422
}

Возникает при попытке управлять ссылками в подписках не Complex типа.
{
"name": "Forbidden",
"message": "Not valid subscription type",
"code": 0,
"status": 403
}