KEHR API
API построен по принципу REST API
Тип принимаемых и отправляемых данных JSON. Используйте Content-type: application/json
Для изменения состояния объекта используется 4 метода:
•	GET — Получение информации об объекте
•	POST — Создание нового объекта
•	PUT — Обновление информации об объекте
•	DELETE — Удаление объекта
--Авторизация--
Для авторизации при каждом запросе должен быть использован header 
"X-Api-Key" c API ключом, который можно получить или изменить в разделе Инструменты.
--Ограничения--
150 запросов в течении 60 секунд с одного 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 - Уникальный идентификатор домена в системе.
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
}