Документация на метод "gruppirovka"
API для группировки запросов по ТОПу:
URL: https://tools.pixelplus.ru/api/gruppirovka
Описание:
Метод позволяет создать задачу для группировки запросов и получить сгруппированные запросы.
Для создания задачи необходимо сформировать POST-запрос и отправить его на URL метода с обязательными GET-параметром key и POST-параметром requests. Система поставит задачу в очередь выполнения и вернет идентификатор отчета: report_id. Для получения результата группировки необходимо отправить GET запрос с параметрами key и report_id.
Внимание! В зависимости от загруженности системы и количества запросов — группировка может занимать продолжительное время (до 30 минут / чаще укладывается в 3 минуты). Запрашивать результат следует не ранее, чем через 3 минуты после формирования задачи.
Принимает параметры:
GET:
- key — ключ доступа к API;
- report_id — номер отчета с группировкой;
POST:
- requests — массив запросов для проверки;
- lr — регион по Яндексу;
- method — метод группировки;
- degree_group — степень группировки;
- home_pages — подсчет количества главных страниц в выдаче;
- rel_url — вернуть релевантные страницы;
ДОПУСТИМЫЕ ЗНАЧАНИЯ ПАРАМЕТРОВ:
- requests — массив запросов от 2 до 2000 фраз;
- lr — код региона в Яндексе из списка, скажем, Москва — 213 (можно опустить, по умолчанию стоит регион 213);
- method — целое число от 0 до 3. Поддерживаются методы pixeltools — 3, hard — 2, middle — 1, soft — 0, подробней (можно опустить, по умолчанию выбран метод pixeltools — 3);
- degree_group — число от 1 до 10 (можно опустить, по умолчанию выбрано значение 3);
- home_pages — true или null (можно опустить, по умолчанию стоит true);
- rel_url — доменное имя сайта или null (можно опустить, по умолчанию стоит null)
Метод возвращает JSON с массивом:
В случае запроса на обработку: [{"report_id":"номер запроса"}]
В случае запроса обработки:
- [{"error":"In progress", "code":50}] - если задача стоит в очереди на выполнение
- [{"error":"In progress", "code":50, "progress":int, "time":"Y-m-d H:i:s"}] - если задача выполняется
- ["time":response_time, "cost":base_cost, "0": {"request":"Запрос1","group":"Имя группы1"}, "1":{"request":"Запрос2","group":"Имя группы2"}...], где time - время в которое инструмент завершил работу, cost - расчетная стоимость инструмента, может незначительно отличаться от фактической в меньшую сторону;
В случае неудачи:
- {"error":"Empty requests","code":-50} — если не заданы или неверно заданы запросы для проверки;
- {"error":"Not enough requests","code":-66} — если задано меньше 2-х запросов для проверки;
- {"error":"To much requests","code":-67} — если задано больше 2000 запросов для проверки;
- {"error":"Not enough daily limits","code":-68} — недостаточно дневных лимитов;
- {"error":"Not enough hourly limits","code":-80} — недостаточно часовых лимитов;
- {"error":"Not enough weekly limits","code":-81} — недостаточно недельных лимитов;
- {"error":"Not enough monthly limits","code":-82} — недостаточно месячных лимитов;
- {"error":"Not enough yearly limits","code":-83} — недостаточно годовых лимитов;
- {"error":"To many tasks from one user. Try again later.","code":-60} — превышен лимит одновременно поставленных задач для пользователя;
- {"error":"access denided","code":-1} — если не задан ключ доступа;
- {"error":"access denided","code":-2} — если неверно задан ключ доступа;
- {"error":"unknown method","code":-3} — если неверно задано название метода;
- {"error":"Processing error","code":-104} — инструмент завершился с фатальной ошибкой;
- {"error":"Limits run out","code":-105} — во время выполнения инструмента закончились лимиты;
- {"error":"The process was canceled by a user","code":-106} — задача отменена пользователем;
- {"error":"The process took more than 6 hours and was canceled","code":-107} — инструмент очень долго работал в фоне и мы автоматически завершили процесс;
- {"error":"Processing error":-125} — непредвиденная ошибка;
Пример формирования GET и POST запросов:
GET:
$url = 'http://tools.pixelplus.ru/api/gruppirovka?key=q1i84o90a1s2d3fg5g6hj7';
POST:
$post_array = http_build_query(array(
'requests' => array('Первый запрос', 'Второй запрос', 'Третий запрос'),
'lr' => 213,
'method' => 3,
'degree_group' => 3,
'home_pages' => true,
));