queries Поисковые запросы проекта
Группа queries работает с поисковыми запросами проекта: отдаёт их список с группами и частотой, добавляет новые фразы (в группу и с продвигаемым URL) и удаляет запросы. Список и добавление синхронные, удаление ставится в очередь и выполняется в фоне.
- Адрес
/projects/api/v1/queries/<метод>- Доступ
- свои проекты и проекты с выданным доступом
- Лимиты
- методы не тратят; частоты новых запросов собираются так же, как при добавлении в интерфейсе
Список запросов
/projects/api/v1/queries/get
Запросы проекта в порядке добавления, с группой и частотой в регионе частот проекта. Отдаётся массивом без обёртки status/result.
Запрос из нескольких групп даёт по строке на каждую группу, запрос без групп — одну строку с group_id: null. offset и limit считают именно строки, а не запросы.
Параметры query
-
tokenstring обязательныйКлюч API из настроек аккаунта — тот же, чтоkeyу методов инструментов. -
project_idint обязательныйID проекта. Виден в адресе страницы проекта и в ответе projects/get. -
offsetintСколько строк пропустить. -
limitintСколько строк отдать.0или без параметра — 50 000.
Ответ
-
[].idstringID запроса. -
[].querystringФраза. -
[].group_idstring|nullID группы;null, если запрос ни в одной группе. -
[].frequencystring|nullЧастота выбранного в проекте типа;null, если ещё не собрана. -
[].frequency_typestringТип частоты из настроек проекта:overall— базовая,quoted— «в кавычках»,exact— «!точная»,google_base— Google,custom_exact— своя точная.
Добавление запросов
/projects/api/v1/queries/set
Добавляет фразы в проект и при необходимости привязывает их к группе и продвигаемому URL. Фразы, которые в проекте уже есть, повторно не создаются, но группа и URL к ним применяются. После добавления новых запросов делается то же, что в интерфейсе: запускается сбор частот, сбрасываются кэши, в сводку проекта пишется событие.
- Без
groupиgroup_idновые запросы попадают в «Общую» (id1), а группы уже существующих не меняются. - С группой и
group_mode=replace(по умолчанию) у каждой переданной фразы снимаются все прежние группы.group_mode=addдобавляет группу к прежним.
Все параметры читаются только из query-строки, в том числе при POST. URL применяется ко всем переданным фразам, включая уже существующие: без url продвигаемый URL у них сбросится.
Параметры query
-
tokenstring обязательныйКлюч API из настроек аккаунта — тот же, чтоkeyу методов инструментов. -
project_idint обязательныйID проекта. Виден в адресе страницы проекта и в ответе projects/get. -
queriesstring обязательныйФразы через|. Чистятся от спецсимволов и лишних пробелов, регистр сохраняется. -
groupstringНазвание группы. Если в проекте такой нет — создаётся. «Общая» указывает на системную группу (id1). -
group_idintID группы из groups/get: своя группа проекта или «Общая». Приоритетнееgroup, новых групп не создаёт. -
group_modestringЧто делать с прежними группами фраз, когда группа задана. -
urlstringПродвигаемый URL для всех переданных фраз.
Ответ
При успехе — ID и текст последней фразы из списка, без обёртки status/result. Формат исторический, сохранён ради совместимости. ID остальных фраз — в queries/get.
-
idintID последней фразы. -
querystringПоследняя фраза после очистки.
Удаление запросов
/projects/api/v1/queries/delete
Ставит удаление запросов в очередь и сразу отвечает. Запросы удаляются в фоне вместе с историей позиций, безвозвратно. ID, которые не принадлежат проекту, молча отбрасываются — в count только запросы этого проекта.
project_id и queries_id читаются из JSON-тела, формы или query-строки (в форме и query — queries_id[]=…). token — только из query-строки.
Параметры query и JSON-тело
-
tokenstring обязательныйКлюч API из настроек аккаунта — тот же, чтоkeyу методов инструментов. -
project_idint обязательныйID проекта. Виден в адресе страницы проекта и в ответе projects/get. -
queries_idarray обязательныйМассив ID запросов из queries/get.
Ответ
-
result.statusstringВсегдаok. -
result.messagestringУдаление поставлено в очередь. -
result.countintСколько запросов будет удалено.
Ошибки
| Код | Сообщение | Когда |
|---|---|---|
50 |
access error |
Токен не передан, не найден, или у его владельца нет доступа к проекту. |
51 |
wrong project id |
delete: не передан project_id. |
52 |
Queries limit exceeded: max N per project |
set: новые фразы не помещаются в лимит запросов проекта. Ничего не добавлено. Ответ без обёртки: {"error": "Queries limit exceeded: max 1000 per project", "code": 52, "max": 1000, "total": 998}, где total — запросов в проекте сейчас. |
53 |
wrong queries ids |
delete: queries_id пуст, не массив или ни один ID не принадлежит проекту. |
53 |
Group is not available for this project |
set: group_id — чужая группа, группа URL или несуществующая. Ответ без обёртки: {"error": "…", "code": 53}. |
54 |
service unavailable |
delete: очередь недоступна, удаление не поставлено. Повторите позже. |
Лимит числа запросов
queries/set проверяет тот же лимит запросов в проекте, что интерфейс: на тарифе «Стажёр» свой потолок, на остальных — общий. Считаются только фразы, которых в проекте ещё нет. Если не помещаются, не добавляется ни одна.
Формат ответа
get и set отдают данные без обёртки status/result, delete — в обёртке. Ошибки set — тоже без обёртки, с полями error и code. HTTP-код всегда 200.
Группами запросов управляют методы groups: создание, удаление, перенос запросов между группами.