АПИ для партнёров

АПИ партнёров позволяет взаимодействовать с личным кабинетом KillBot:

  • создавать новые аккаунты на killbot.ru
  • создавать новые скрипты KillBot
  • запрашивать статистику по скрипту

1. Авторизация или создание аккаунта на killbot.ru

https://killbot.ru/api/login

Метод создает новый аккаунт пользователя или авторизирует существующего пользователя через JS.

  • Если метод вызывается на сервере, то его нужно использовать только для создания нового аккаунта.
  • Если метод вызывается средствами Javascript, то метод тут же авторизирует пользователя в браузере на сайте https://killbot.ru - то есть пользователю даже не придется вводить логин и пароль для входа.

Пример вызова метода на php:



$token = "KoRtY4V"; //API ключ партнера - авторизированные пользователи могут сгенерировать его на этой странице выше
$email = "p1@p1.ru"; //e-mail пользователя для входа на killbot.ru, если пользователь не существует, то аккаунт будет создан
$password = "123"; //пароль пользователя для входа на killbot.ru

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);

$url = "https://killbot.ru/api/login";
$json = file_get_contents($url, false, $context);

Пример ответа (содержание переменной $json):



{
"code":200, //код ответа 200 - успех
"message":"User with mail='p1@p1.ru' was signed in into killbot.ru", //строка с сообщением что было сделано внутри метода
"data": "RRsKotyVJH" //авторизационный токен X-Tokenauth для АПИ доступа к личному кабинету
}

 

Пример вызова метода на Javascript c авторизацией в браузере:


const url = 'https://killbot.ru/api/login'; 
const token = 'KoRty4V'; //API ключ партнера
const email = 'p1@p1.ru'; //e-mail пользователя для входа на killbot.ru
const password = '123'; //пароль пользователя для входа на killbot.ru
//если аккаунта с email не существует, то аккаунт будет создан 

fetch(url, {
  method: 'GET', 
  headers: {
    'X-Token': token,
    'X-Email': email,
    'X-Password': password
  },
  credentials: 'include' // Значит нужно сохранить куки для сайта killbot.ru, чтобы авторизоваться в браузере
})
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response failed: ' + response.statusText);
    }
    return response.json(); 
  })
  .then(data => {
    console.log('Authenticated successfully:', data);
	window.location.href = 'https://killbot.ru/script/list/table'; //страница редиректа после успешной авторизации на killbot.ru
  })
  .catch(error => {
    console.error('There was a problem with the fetch operation:', error);
  });

 

ВНИМАНИЕ!!!

Чтобы пользователь залогинился бы в браузере автоматически средствами JavaScript нужно чтобы у него были разрешены сторонние файлы cookie! - иначе куки для сайта killbot.ru не будут сохранены с вашего домена  (с которого вызывается авторизация) и авторизации на сайте killbot.ru не произойдет:

Разрешить сторонние файлы куки

1.1 Получение авторизационого токена для доступа в аккаунт пользователя

https://killbot.ru/api/create_tokenauth

По пользовательскому логину и паролю можно получить авторизационный токен, и все остальные запросы осуществлять именно с этим токеном.

Метод https://killbot.ru/api/create_tokenauth при каждом запросе создает новый авторизационный ключ. Текущий авторизационных ключ возвращается в методе https://killbot.ru/api/login.

Пример кода на php:


$token = "KoRty4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);
$url = "https://killbot.ru/api/create_tokenauth";
$json = file_get_contents($url, false, $context);

Пример ответа:



{
"code":200,
"message":"KillBot generates new TokenAuth for user with mail p1@p1.ru",
"data":"LlCgaiRe2" //авторизационный ключ X-Tokenauth для дальнейшего доступа в личный кабинет пользователя без логина и пароля
}

1.2 Варианты авторизации

Доступ к АПИ методам может осуществляться как черезпару логин-пароль, так и через авторизационный ключ.

Пример кода на php с доступом к методу по email и паролю от аккаунта на killbot.ru:


$token = "KoRty4V"; //Авторизационный токен партнера - можно получить на этой странице вверху
$email = "p1@p1.ru"; //маил аккаунта на killbot.ru
$password = "123"; //пароль от аккаунта на killbot.ru

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);
$url = "https://killbot.ru/api/get_scripts";
$json = file_get_contents($url, false, $context);

 

Пример авторизации через аторизационный токен на php:


$token = "p6CmXezQY";  //Авторизационный токен партнера - можно получить на этой странице вверху
$tokenAuth = "fl59xTF46V"; //Авторизационный токен в аккаунт пользователя - запрашивается методом https://killbot.ru/api/create_tokenauth
$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Tokenauth: ".$tokenAuth."\r\n" 
    )
);

$context = stream_context_create($options);
$url = "https://killbot.ru/api/get_scripts";
$json = file_get_contents($url, false, $context);

 

Для безопасности создавайте программно аккаунт пользователя через пару логи-пароль, передавайте доступ пользователю, а далее действуйте через авторизационный токен.

2. Создание скрипта KillBot

https://killbot.ru/api/create_script

Метод для создания скрипта килбот с настройками по умолчанию. Можно передать некоторые начальные параметры через GET запрос.

Параметры, которые можно передать через GET:

  • url - Домен сайта в https (обязательно)
  • name - имя скрипта что будет отображаться в списке скриптов на килботе (НЕ обязательно)
  • metrika - номер счетчика метрики  (НЕ обязательно)
  • integration_type - способ интеграции; (НЕ обязательно) (0-скрытая, 1-экран килбот, 2- днс интеграция)
  • utm - название параметра для передачи результата проверки на бота в url  (НЕ обязательно)

Пример кода на php:


$token = "KoRty4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);

$url = "https://killbot.ru/api/create_script?url=https://g-video.ru&metrika=123";
$json = file_get_contents($url, false, $context);

Пример ответа:


{
"code":200,
"message":"KillBot script was created",
"data":
{
  "counter_id":"1534",
  "url":"https:\/\/g-video.ru",
  "subscription_idx":"0",
  "utm":"",
  "settings":{"vkpixel":"","snapshot_bots":[],"snapshot_users":[429,498,538,49,30,33,45,54],"not_in_list":1,"disable_metrika_for_bot":0,"snapshot_not_loaded_is_bot":1,"show_captcha_for_bot":0,"test_mode":0,"bot_removed_killbot_code_is_bot":1,"yandex_metrika_init_allow":0,"kbjs_name":"gvou.js","kbcheck_name":"gou","dns_website_ip":"104.21.12.240","dns_whitelist_ips":"yandex.bot\ngoogle.bot\nbaidu.bot\nbing.bot\nfacebook.bot\nvk.bot\ninstagram.bot\ntwitter.bot\nlinkedin.bot\npinterest.bot\nviber.bot\nslack.bot\nskype.bot\ntelegram.bot\nwhatsapp.bot\nletsencrypt\n","dns_whitelist_ua":"","dns_certs_ok":0},
  "metrika":"123",
  "integration_type":"1",
  "subscription_name":null,
  "active":"0"
}
}

3. Получение JavaScript кода скрипта KillBot

https://killbot.ru/api/get_script_code

Метод для получения сырого JS кода скрипта килбот для установки на сайт.

Параметры, которые нужно передать через GET:

  • counter_id - Номер скрипта KillBot чей код нужно получить. (обязательно)

Пример кода на php:


$token = "KoRtyL5Y4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);

$url = "https://killbot.ru/api/get_script_code?counter_id=1534";

$json = file_get_contents($url, false, $context);

4. Получение списка скриптов пользователя.

https://killbot.ru/api/get_scripts

Параметры, которые можно передать через GET:

  • counter_id - Номер скрипта KillBot чьи настройки нужно получить. Если параметр не задан, то будут выведены данные по всем созданным скриптам. (НЕ обязательно)

$token = "KoRtyL5Y4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);

$url = "https://killbot.ru/api/get_scripts";

$json = file_get_contents($url, false, $context);

4. Обновление скрипта пользователя.

https://killbot.ru/api/update_script

Параметры, которые нужно передать через GET:

  • counter_id - Номер скрипта KillBot чьи настройки нужно получить. Если параметр не задан, то будут выведены данные по всем созданным скриптам. (обязательно)

5. Получение общего числа визитов сгруппированных по дням

https://killbot.ru/api/visits_by_day

Параметры, которые нужно передать через GET:

  • counter_id - Номер скрипта KillBot данные по визитам получить. (обязательно)

Пример кода на php:


$token = "KoRtyL5Y4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);
$url = "https://killbot.ru/api/visits_by_day?counter_id=443";
$json = file_get_contents($url, false, $context);

Пример ответа:


{"code":200,"message":"KillBot visits grouped by days for script = 443",
"data":[
{"day":"2025-01-24","requests":"86","bots":"59","users":"16"},
{"day":"2025-01-23","requests":"88","bots":"67","users":"18"},
{"day":"2025-01-22","requests":"138","bots":"114","users":"14"},
{"day":"2025-01-21","requests":"171","bots":"106","users":"50"},
{"day":"2025-01-20","requests":"152","bots":"117","users":"28"},
{"day":"2025-01-19","requests":"147","bots":"123","users":"19"},
{"day":"2025-01-18","requests":"148","bots":"126","users":"16"},
{"day":"2025-01-17","requests":"128","bots":"105","users":"17"},
{"day":"2025-01-16","requests":"164","bots":"144","users":"15"}]}

5. Получение общего числа визитов сгруппированных по дням

https://killbot.ru/api/visits_list

Параметры, которые нужно передать через GET:

  • counter_id - Номер скрипта KillBot данные по визитам получить. (обязательно)

Пример кода на php:


$token = "KoRtyL5Y4V";
$email = "p1@p1.ru";
$password = "123";

$options = array(
    'http' => array(
        'method' => "GET",
        'header' => 
            "X-Token: ".$token."\r\n" .
            "X-Email: ".$email."\r\n" .
            "X-Password: ".$password."\r\n"
    )
);
$context = stream_context_create($options);
$url = "https://killbot.ru/api/visits_list?counter_id=443";
$json = file_get_contents($url, false, $context);

Пример ответа:

{"code":200,"message":"KillBot visits for script = 443",
"data":[
{"idx":"83995254","counter_id":"443","user_id":"410272617","session":"498733459","snsht":null,"net_id":null,"browser_name":"Mobile Safari","os":"iOS","fraud":"-2","loaded":"0","solved":"0","ip":"94.25.171.154","referer":"yandex.ru","created":"2025-01-24 18:35:50"},
{"idx":"83985150","counter_id":"443","user_id":"143809843","session":"441863225","snsht":"278122488","net_id":"1182900895","browser_name":"Mobile Safari","os":"iOS","fraud":"1","loaded":"1","solved":"0","ip":"213.87.158.110","referer":"ya.ru","created":"2025-01-24 18:18:01"},
{"idx":"83983825","counter_id":"443","user_id":"693680307","session":"236589442","snsht":"278122488","net_id":"1182900895","browser_name":"Mobile Safari","os":"iOS","fraud":"1","loaded":"1","solved":"0","ip":"89.113.145.218","referer":"yandex.ru","created":"2025-01-24 18:15:32"},
{"idx":"83982559","counter_id":"443","user_id":"229603771","session":"877072802","snsht":"3102237555","net_id":"1182900895","browser_name":"Yandex Browser","os":"iOS","fraud":"1","loaded":"1","solved":"0","ip":"213.87.137.242","referer":"yandex.ru","created":"2025-01-24 18:13:16"},
{"idx":"83982526","counter_id":"443","user_id":"620317894","session":"464030675","snsht":"278122488","net_id":"1182900895","browser_name":"Mobile Safari","os":"iOS","fraud":"1","loaded":"1","solved":"0","ip":"94.25.171.233","referer":"ya.ru","created":"2025-01-24 18:13:11"}
]}