Введение

Коды ответов API

Parser API обрабатывает запросы на парсинг асинхронно. При создании задачи сразу возвращается её id, а затем по этому id вы запрашиваете результат, пока задача не завершится. Кредиты списываются только за успешные задачи — если задача завершилась с ошибкой, кредиты возвращаются на баланс.

HTTP-коды ответов

У каждого ответа API есть HTTP-код. 200 означает, что запрос принят. Любой другой код означает, что запрос не принят: задача не создана или не найдена.

КодОписаниеЧто делать
200Запрос принят. Статус задачи смотрите в поле status — см. Статусы задачи—
400Неверное тело запроса или параметрыИсправьте запрос и отправьте его снова
401API-ключ не передан, неверный или отключёнПроверьте заголовок Authorization: Bearer YOUR_API_KEY и ключ в личном кабинете
402Недостаточно кредитов или срок их действия истёкПополните баланс или продлите тариф
403У API-ключа нет доступа к этому парсеруРазрешите парсер для этого ключа в личном кабинете
404Парсер или задача с таким id не найденыПроверьте адрес эндпоинта и id задачи
409Задачу не удалось создать из-за конфликтующего запросаОтправьте запрос ещё раз
429Слишком много запросов или исчерпан дневной либо месячный лимит ключаДождитесь времени из заголовка X-RateLimit-Reset и повторите запрос
500Ошибка на нашей сторонеПовторите запрос позже
503Сервис временно перегруженПовторите запрос через число секунд из заголовка Retry-After

Тело ответа при ошибке

Если запрос не принят, в теле ответа приходит поле error с кратким описанием:

{
  "error": "Insufficient credits"
}

Для кода 400 в ответе есть также поле details со списком отклонённых полей запроса:

{
  "error": "Validation failed",
  "details": {
    "url": ["Invalid URL"]
  }
}

В некоторых ошибках есть также поле code. Если у ключа нет доступа к парсеру, код 403 возвращает API_KEY_SCOPE_DENIED и недостающее разрешение:

{
  "error": "this key has no access to scope \"url\"",
  "code": "API_KEY_SCOPE_DENIED",
  "scope": "url"
}

При перегрузке сервис возвращает 503 с "code": "SERVICE_BUSY".

Статусы задачи

Эндпоинт результата (GET /api/parsing/v1/result/{parser}/{requestId}) возвращает статус задачи в поле status. Статусы одинаковые для всех парсеров.

СтатусОписание
queuedЗадача создана и ждёт в очереди. Этот же статус возвращает запрос на создание задачи
parsingЗадача выполняется
readyЗадача завершена. Успешно ли — видно в data, см. ниже
cancelledЗадача отменена в личном кабинете

Пока статус queued или parsing, повторите запрос через несколько секунд. ready и cancelled — окончательные статусы.

Если результат задачи не получен за 3 часа, она завершается как неудачная: статус становится ready, data.success равно false, а data.error — "Parsing request timed out after three hours". Кредиты за неё возвращаются на баланс.

Как понять, что задача выполнена успешно

ready означает, что задача завершена, но не обязательно успешно. Как выглядит неудачная задача, зависит от парсера:

ПарсерЗадача не удалась, еслиГде результаты
URL Парсерdata.success равно false, причина — в data.errordata
Google SERP, Yandex SERPесть поле data.errordata
Google News, Google Trends, MSN, Opera News, Galaxy Store Reviewsdata.success равно false, причина — в data.errordata.data

У URL Парсера в data.error приходит короткий код ошибки, например SYSTEM_ERR или NOT_ENOUGH_HTML_ERR, а в data.errorFull — подробности, если они есть. В неудачной задаче всё равно может быть загруженное содержимое страницы в content. У остальных парсеров в неудачной задаче нет data.data.

URL Парсер — задача не удалась:

{
  "status": "ready",
  "requestId": "5cfce409-1a30-4181-88eb-75b995499cd0",
  "data": {
    "url": "https://nonexistent-domain.example",
    "time": "0.77",
    "content": "",
    "success": false,
    "error": "SYSTEM_ERR",
    "errorFull": "unknown error: net::ERR_NAME_NOT_RESOLVED"
  },
  "respondedAt": "2026-01-01T00:00:03.240Z"
}

Google SERP, Yandex SERP — задача завершилась по тайм-ауту. В остальных неудачных задачах SERP есть только data.error, без data.success:

{
  "status": "ready",
  "requestId": "abaf4ac3-d9e7-43f2-a414-e7d2ca9ff635",
  "data": {
    "success": false,
    "error": "Parsing request timed out after three hours"
  },
  "respondedAt": "2026-01-01T00:00:03.240Z"
}

Google News, Google Trends, MSN, Opera News, Galaxy Store Reviews — задача не удалась:

{
  "status": "ready",
  "requestId": "8f2d1c6e-4b7a-4e3f-9a51-2c0d7e6b9f14",
  "data": {
    "success": false,
    "error": "[msn] HTTP 400"
  },
  "respondedAt": "2026-01-01T00:00:03.240Z"
}

Если запрос не прошёл

Дальнейшие шаги