API сервиса Xtool.ru
В АПИ 2.0 теперь доступно гораздо больше различных параметров и их детализация (Тиц, PR, Alexa, Linkpad, Liveinternet, Majesticseo, заспамленность, возраст, раскрученность в Яндексе и Гугле, АГС и тд).
Исходящие запросы: имеют структурированный вид; отправляются на сервер в формате json; метод отправки запроса POST; тип запроса PUT.
Входящие запросы: так же имеют полноценный структурированный вид; приходят в формате json.
Общая концепция апи запросов к апи серверу:
- Формирование массива данных запроса к серверу
- Отправка данных запроса на сервер http://api.xtool.ru и получение ответа
- Обработка ответов сервера
1) Варианты формирования массива данных запроса:
-
Получение информации о балансе пользователя
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'balance', // Тип запроса 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword') // Пароль пользователя ];
-
Получение информации о балансе пользователя для владельцев ПО
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'balance', // Тип запроса 'referrer' => ИдРеферера, // ИД владельца ПО 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword') // Пароль пользователя ];
-
Типовой запрос трастовости страницы
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'trust', // Тип запроса 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword'), // Пароль пользователя 'url' => 'http://xtool.ru/' // Урл для расчета траста ];
-
Типовой запрос трастовости страницы для владельцев ПО
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'trust', // Тип запроса 'referrer' => ИдРеферера, // ИД владельца ПО 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword'), // Пароль пользователя 'url' => 'http://xtool.ru/' // Урл для расчета траста ];
-
Дополнительные настройки в запросы трастовости страницы
Для всех видов запросов трастовости можно применить дополнительный параметр remove
Данный параметр: является не обязательным; имеет тип массив; в значениях указываются поля, которые не должны отображаться в результате.
Например, массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'trust', // Тип запроса 'referrer' => ИдРеферера, // ИД владельца ПО 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword'), // Пароль пользователя 'url' => 'http://xtool.ru/', // Урл для расчета траста 'remove' => ['xt_history', 'page:title'] // Дополнительный параметр ];
В данном примере результирующий ответ от сервера будет сформирован без значения xt_history и без вложенного в ячейку page значения title
-
Запрос на установку капчи
Массив данных запроса имеет вид (пример на php):$path = 'captcha.jpg'; // Полный путь к картинке $captcha_data = file_get_contents($path); // Получаем данные картинки $data = [ 'type' => 'captcha-set', // Тип запроса 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword'), // Пароль пользователя 'captcha_data' => base64_encode($captcha_data) // Данные картинки в base64 ];
-
Запрос на установку капчи с дополнительным параметром
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'captcha-set', // Тип запроса 'login' => 'UserEMail@site.ru', // Логин пользователя 'pass' => hash('sha512', 'UserPassword'), // Пароль пользователя 'captcha_data' => base64_encode($captcha_data), // Данные картинки в base64 'language' => 0 // Дополнительный параметр ];
-
Запрос на получение результата распознования капчи
Массив данных запроса имеет вид (пример на php):$data = [ 'type' => 'captcha-get', // Тип запроса 'captcha_id' => $captcha_id // ИД полученный запросом captcha-set ]; Данный запрос необходимо выполнять в цикле с задержкой 1-5 секунд
-
Описание полей для указанных видов запросов:
Поле Тип поля Описание type Строка Тип запроса баланса или траста. referrer Число ИД в системе xtool.ru владельца Программного Обеспечения. login Строка Логин пользователя в системе xtool.ru, для которого делается запрос. pass Строка Пароль пользователя в системе xtool.ru, для которого делается запрос в зашифрованном sha512 виде. url Строка Только для запроса траста. Урл хоста или страницы для которого будет произведена попытка получения трастовости.
Можно указывать как с http / https, c www / без www не имеет значения.remove Массив Только для запроса траста. Массив полей, которые необходимо убрать из результирующего ответа сервера.
Поля имеют тип строка и указываются через запятую.captcha_data Строка Только для установки капчи. Данные картинки в base64. language Число Только для установки капчи. 0 - автоматически, 1 - только кириллические буквы, 2 - только латинские буквы. captcha_id Строка ИД полученный в результате запроса captcha-set.
2) Отправка данных запроса на сервер http://api.xtool.ru и получение ответа
(пример на php):
$json = json_encode($data, JSON_FORCE_OBJECT); // Переводим массив данных запроса в json строку
$ch = curl_init('http://api.xtool.ru'); // Открываем curl запрос к апи сервиса
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // Параметры curl
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Параметры curl
curl_setopt($ch, CURLOPT_POST, true); // Параметры curl
curl_setopt($ch, CURLOPT_POSTFIELDS, $json); // Параметры curl
$response = curl_exec($ch); // Получаем кодированный json ответ
curl_close($ch); // Закрываем curl запрос
$response = json_decode($response, true); // Преобразуем строку json в результирующий массив $response
3) Обработка ответов от сервера
-
Пример результирующего массива при запросе баланса:
$response = [ [balance] => 1000 // Текущий баланс оплаченных баллов пользователя [ErrorCode] => 200 // Код ошибки ];
-
Пример результирующего массива при запросе траста:
$response = [ [trust] => [ [dateup] => 2015-10-28 [date_check] => 2015-10-28 17:11:41 [xt] => 7 [xt_change] => -1 [xt_history] => 8;2015-10-19#8;2015-10-09#8;2015-09-27#9;2015-09-18 [spammed] => 0 [nepot] => 0 [recommended_delay] => 0.1 [stability] => 0 [color] => 0 [links_market] => 0 [page] => [ [http] => http [www] => [title] => Траст сайта, seo проверка сайта, анализ тиц и pr [text_size] => 2817 [links_internal] => 33 [links_outbound] => 5 [links_outbound_cluster] => ] [yandex] => [ [iks] => 1000 [tic] => 800 [tic_glue] => [ags] => 0 [catalog] => [catalog_type] => 0 [date_modification] => 2015-09-10 [date_modification_max] => 2015-10-18 [index_pages_number] => 267619 [index_family] => 267619 [pages_speed_change] => 33.33 [progress_total] => 5542 [progress_low] => 1982 [progress_mid] => 3560 [progress_high] => 0 [sanctions] => 0 [metrika] => 19172950 [metrika_uniq] => 10666 [metrika_views] => 4361 ] [google] => [ [pr] => 4 [progress_total] => 619 [progress_low] => 619 [progress_mid] => 0 [progress_high] => 0 ] [whois] => [ [date_create] => 2009-01-27 ] [linkpad] => [ [date_indexing] => 2015-09-20 [index_pages_number] => 224 [domain_in] => 1889 [domain_out] => 38 [links_in] => 432404 [links_in_main] => 505 [links_out] => 192 [links_out_main] => 2 [anchors_in] => 3955 [anchors_out] => 36 [links_in_lvl_2] => 28153 [links_in_lvl_2_domain] => 1008 [links_in_lvl_3] => 213265 [links_in_lvl_3_domain] => 1010 [links_in_lvl_4] => 190481 [links_in_lvl_4_domain] => 658 [links_out_lvl_2] => 59 [links_out_lvl_3] => 116 [links_out_lvl_4] => 116 ] [majesticseo] => [ [index_pages_number] => 23680 [links_in] => 672080 [domain_in] => 1943 [domain_in_ip] => 88860 [citation_flow] => 42 [trust_flow] => 50 [subnets] => 1510 ] [megaindex] => [ [dr] => 60 [links_in] => 733276 [links_in_unique] => 7970 [anchors_in] => 1379 [words_in] => 11242 [words_in_unique] => 2427 [links_in_nofollow] => 442497 [links_in_noindex] => 101765 [ips_in] => 1034 [domains_in] => 6755 [links_out] => 17601 [links_out_unique] => 6718 [anchors_out] => 6718 [words_out] => 6635 [words_out_unique] => 6634 [links_out_nofollow] => 0 [links_out_noindex] => 0 [ips_out] => 1 [domains_out] => 12 ] [liveinternet] => [ [visits_in_day] => 3594 [views_in_day] => 26127 ] [alexa] => [ [rank] => 3594 [links_in] => ] [user] => [ [login] => UserEMail@site.ru [balance] => 999.85 [cost] => 0.15 ] ] [ErrorCode] => 200 // Код ошибки ]; Описание полей ячейки [trust]: [trust] => [ [dateup] // Дата последнего апдейта Поисковых Систем [date_check] // Дата обновления траста для запрашиваемого УРЛа [xt] // Текущее значение траста [xt_change] // Изменение траста xt по сравнению с предыдущей проверкой [xt_history] // История значений траста [spammed] // Заспамленность страницы [nepot] // Вероятность Непота (%) [recommended_delay] // Рекомендуемая задержка при обращении к сервису xtool.ru [stability] // Стабильность сервиса 0 - зеленый, 1 - белый, 2 - красный [color] // Цветовой индикатор санкций, 0 - норма [links_market] // Показатель бирживой деятельности [page] => [ [http] // Протокол http или https [www] // Зеркало www или без www [title] // Заголовок страницы [text_size] // Размер текста на странице (теги, скрипты и пр. не учитывается) [links_internal] // Количество внутренних ссылок исходящих со страницы [links_outbound] // Количество внешних ссылок исходящих со страницы [links_outbound_cluster] // Максимальное скопление внешних ссылок на странице (расположенных рядом) ] [yandex] => [ [tic] // Тиц сайта [tic_glue] // Склейка тиц, норма - пустое значение [ags] // Показывает наличие фильтра АГС, 0 - норма, варианты - 1, 30 ... [catalog] // Данные о Яндекс каталоге [catalog_type] // Тип каталога, 0 - нет в ЯК, 1 - есть, 2 - скрытый ЯК [date_modification] // Дата последнего обновления страницы согласно Яндексу [date_modification_max] // Максимальная дата последних изменений страниц сайта согласно Яндексу [index_pages_number] // Количество страниц в индексе Яндекса [pages_speed_change] // Скорость изменений страниц сайта согласно Яндексу (страниц в день) [progress_total] // Раскрученность в Яндексе общая [progress_low] // Раскрученность в Яндексе по НЧ запросам [progress_mid] // Раскрученность в Яндексе по СЧ запросам [progress_high] // Раскрученность в Яндексе по ВЧ запросам [sanctions] // Санкции яндекса: 0 - нет; 1 - агс; 2 - некачественные исходящие ссылки, непот, 3 - входящие ссылки, зона риска, 4 - минусинск ] [google] => [ [pr] // Pr сайта [progress_total] // Раскрученность в Google общая [progress_low] // Раскрученность в Google по НЧ запросам [progress_mid] // Раскрученность в Google по СЧ запросам [progress_high] // Раскрученность в Google по ВЧ запросам ] [whois] => [ [date_create] // Дата регистрации домена согласно WHOIS ] [linkpad] => [ [date_indexing] // Дата индексации [index_pages_number] // Количество страниц сайта известное сервису [domain_in] // Входящих доменов на сайт [domain_out] // Исходящих доменов с сайта [links_in] // Входящих ссылок на сайт [links_in_main] // Входящих ссылок на главную страницу сайта [links_out] // Количество ссылок с сайта [links_out_main] // Количество ссылок с главной страницы сайта [anchors_in] // Количество входящих анкоров [anchors_out] // Количество исходящих анкоров [links_in_lvl_2] // Количество ссылок на сайт со 2го уровня [links_in_lvl_2_domain] // Количество ссылок на сайт со 2го уровня (уникальных доменов) [links_in_lvl_3] // Количество ссылок на сайт со 3го уровня [links_in_lvl_3_domain] // Количество ссылок на сайт со 3го уровня (уникальных доменов) [links_in_lvl_4] // Количество ссылок на сайт со 4го уровня [links_in_lvl_4_domain] // Количество ссылок на сайт со 4го уровня (уникальных доменов) [links_out_lvl_2] // Количество ссылок с сайта 2го уровня [links_out_lvl_3] // Количество ссылок с сайта 3го уровня [links_out_lvl_4] // Количество ссылок с сайта 4го уровня ] [majesticseo] => [ [index_pages_number] // Количество страниц сайта известное сервису [links_in] // Входящих ссылок [domain_in] // Входящих доменов [domain_in_ip] // Количество уникальных IP входящих доменов [citation_flow] // Метрика количества ссылок [trust_flow] // Метрика качества ссылок [subnets] // Количество подсетей ] [liveinternet] => [ [visits_in_day] // Посещений в день (среднемесячное) [views_in_day] // Просмотров в день (среднемесячное) ] [alexa] => [ [rank] // Ранг [links_in] // Входящих ссылок ] [user] => [ [login] // Логин пользователя [balance] // Баланс пользователя [cost] // Стоимость запроса ] ]
-
Пример результирующего массива при запросе captcha-set на установку капчи:
$response = [ [balance] => 9999.95 // Обновленный баланс пользователя [cost] => 0.05 // Стоимость запроса [captcha_id] => 1111111111 // ИД установленного запроса капчи [ErrorCode] => 200 // Код ошибки ];
-
Пример результирующего массива при запросе captcha-get на получение результата распознования капчи:
$response = [ [captcha_id] => 1111111111 // ИД установленного запроса капчи [captcha_response] => ТекстНаКапче // Результата распознования капчи [ErrorCode] => 200 // Код ошибки ];
-
Пример результирующего массива при ошибке:
$response = [ [Error] => Описание ошибки // Текстовое описание ошибки [ErrorCode] => 400 // Код ошибки ];
-
Описание кодов ошибок ErrorCode:
Код ошибки Описание 307 Капча еще не распознана, повторите запрос через 1-5 секунд 400 Сервер временно не доступен по техническим причинам 401 Ошибка идентификации пользователя 402 Ошибка получения баланса пользователя или недостаточно средств на балансе пользователя 404 В запросе УРЛ задан не верно или прочие ошибочные действия пользователя 500 Внутренние ошибки сервера