Результаты запросов
Каждый запрос к API FourA классифицируется ровно одним результатом. Результат вычисляется один раз во время запроса и записывается на ваш API-ключ. Ваша панель управления, лента активности и биллинг читают одно и то же поле.
Только success подлежит оплате.
Семь результатов
| Результат | Уровень | Значение |
|---|---|---|
success |
n/a | Доставлен валидный ответ. Учитывается в вашей платной квоте. |
application_error |
target | Цель вернула HTTP 200, но тело содержало поле ошибки. |
application_fail |
target | Цель вернула не-2xx статус, который ваши правила validate не приняли, или вообще не вернула ответ. |
client_error |
caller | Ваш запрос был отклонен до того, как покинул FourA. Неверные параметры, некорректное значение proxy, URL защищен от SSRF. |
rate_limit |
FourA | Достигнут ваш лимит RPM или количества одновременных подключений. |
service_error |
FourA | Бэкенд вернул 5xx статус, или его тело не было валидным JSON. |
service_fail |
FourA | Сетевой сбой: таймаут, в соединении отказано, ошибка DNS, отключение клиента. |
Колонка уровня показывает ответственного:
- Результаты target касаются сайта, к которому вы обращались. Ваш запрос успешно достиг FourA, а FourA успешно достиг цели. Сама цель вернула ошибку.
- Результаты caller означают, что у вашего запроса не было шансов. Исправьте структуру запроса.
- Результаты FourA на нашей стороне. Повторите попытку и проверьте страницу статуса, если они сохраняются.
Целевой сайт, возвращающий 403, это application_fail, а не client_error. Ваш вызов был сформирован правильно. Сайт просто ответил отказом.
Успех учитывает validate
Без validate API помечает запрос как success только тогда, когда цель возвращает HTTP 200.
С validate успех следует объявленным вами правилам. Если вы сообщите API, что 200 и 403 приемлемы для данного запроса, 403 вернется как success. Тело по-прежнему дойдет до вас без изменений.
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "GET",
"url": "https://target.example/feed",
"validate": {
"status": { "accept": [200, 403] }
}
}'
В этом вызове ответ 403 считается как success и тарифицируется как один запрос. Ответ 500 считается как application_fail и не тарифицируется.
Та же логика применяется к validate.headers и validate.data. Любой ответ, который движок принимает согласно вашим правилам, возвращается как success независимо от статуса HTTP.
Влияние на биллинг
| Результат | Оплачивается | Учитывается в квоте |
|---|---|---|
success |
Да | Да |
application_error |
Нет | Нет |
application_fail |
Нет | Нет |
client_error |
Нет | Нет |
rate_limit |
Нет | Нет |
service_error |
Нет | Нет |
service_fail |
Нет | Нет |
Оплачиваются только запросы, которые доставили запрошенные вами данные. Ошибки на стороне FourA, на стороне цели или на вашей собственной стороне бесплатны.
Просмотр результатов в панели управления
Каждый запрос вашего API-ключа появляется в ленте Активности со своей меткой результата. Страницы Метрик и Обзора агрегируют то же поле для круговых диаграмм и графиков.
Когда вы фильтруете Активность по результату, вы также можете сосредоточиться на одном продукте (Single, Proxy, Browser), чтобы увидеть, является ли класс ошибки специфичным для одного endpoint.
Эвристика повторных попыток
Политика повторных попыток первого уровня, основанная на результатах:
| Результат | Безопасен для повтора? | Когда |
|---|---|---|
success |
n/a | У вас есть ответ. |
application_error |
Иногда | Прочитайте тело ошибки цели. Некоторые из них временные, большинство нет. |
application_fail |
Иногда | Если цель ограничивает вашу скорость, замедлитесь. Если она блокирует вас, переключитесь на endpoint Proxy или Browser. |
client_error |
Нет | Запрос снова завершится той же ошибкой. Исправьте ввод. |
rate_limit |
Да | Учитывайте retryAfter из тела ответа. |
service_error |
Да | Короткая экспоненциальная задержка. |
service_fail |
Да | Так же, как service_error. |
Связанные материалы
- Ошибки API: ответы с ошибками на уровне HTTP
- Лимиты запросов: что вызывает
rate_limit - Метрики: где вы видите результаты в разбивке
- Журнал активности: история результатов по каждому запросу