Resultados de Requests
Cada request a la API de FourA se clasifica en exactamente un resultado. El resultado se calcula una vez al momento de la request y se registra en su API key. Su dashboard, feed de actividad y facturación leen el mismo campo.
Solo success es facturable.
Los siete resultados
| Resultado | Capa | Qué significa |
|---|---|---|
success |
n/a | Se entregó una response válida. Cuenta para su cuota facturable. |
application_error |
target | El target devolvió HTTP 200, pero el cuerpo contenía un campo de error. |
application_fail |
target | El target devolvió un estado no-2xx que sus reglas de validate no aceptaron, o no hubo ninguna response. |
client_error |
caller | Su request fue rechazada antes de salir de FourA. Parámetros incorrectos, valor de proxy malformado, URL protegida contra SSRF. |
rate_limit |
FourA | Se alcanzó su límite de RPM o de concurrencia. |
service_error |
FourA | El backend devolvió un 5xx, o su cuerpo no era un JSON válido. |
service_fail |
FourA | Fallo de red: timeout, conexión rechazada, error de DNS, desconexión del cliente. |
La columna de capa le indica quién es el responsable:
- Los resultados de target se refieren al sitio al que llamó. Su request llegó correctamente a FourA, y FourA llegó correctamente al target. El propio target devolvió un error.
- Los resultados de caller significan que su request nunca tuvo oportunidad de procesarse. Corrija la estructura de la request.
- Los resultados de FourA son responsabilidad nuestra. Reintente y consulte la página de estado si persisten.
Un sitio target que devuelve 403 es application_fail, no client_error. Su llamada estaba bien estructurada. El sitio simplemente la denegó.
El estado success depende de validate
Sin validate, la API marca una request como success solo cuando el target devuelve HTTP 200.
Con validate, el éxito sigue las reglas que usted declaró. Si le indica a la API que tanto 200 como 403 son aceptables para una request determinada, un 403 se devuelve como success. El cuerpo aún le llega sin cambios.
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] }
}
}'
En esta llamada, una response 403 cuenta como success y se factura como una request. Una response 500 cuenta como application_fail y no se factura.
La misma lógica se aplica a validate.headers and validate.data. Cualquier response que el motor acepte según sus reglas se devuelve como success, independientemente del estado HTTP.
Implicaciones de facturación
| Resultado | Facturable | Cuenta para la cuota |
|---|---|---|
success |
Sí | Sí |
application_error |
No | No |
application_fail |
No | No |
client_error |
No | No |
rate_limit |
No | No |
service_error |
No | No |
service_fail |
No | No |
Solo se facturan las requests que entregaron los datos solicitados. Los fallos del lado de FourA, del lado del target o de su propio lado son todos gratuitos.
Lectura de resultados en el Dashboard
Cada request que realiza su API key aparece en el feed de Actividad con su etiqueta de resultado. Las páginas de Métricas y Vista general agregan el mismo campo para los gráficos de dona y las líneas de tiempo.
Al filtrar la Actividad por resultado, también puede enfocarse en un solo producto (Single, Proxy, Browser) para ver si un tipo de fallo es específico de un endpoint.
Heurística de reintentos
Una política de reintentos inicial basada en los resultados:
| Resultado | ¿Seguro reintentar? | Cuándo |
|---|---|---|
success |
n/a | Ya tiene la response. |
application_error |
A veces | Lea el cuerpo de error del target. Algunos son transitorios, la mayoría no. |
application_fail |
A veces | Si el target le está aplicando un rate limit, reduzca la velocidad. Si lo está bloqueando, cambie al endpoint Proxy o Browser. |
client_error |
No | La request volverá a fallar de la misma manera. Corrija la entrada. |
rate_limit |
Sí | Respete el retryAfter del cuerpo de la response. |
service_error |
Sí | Backoff exponencial corto. |
service_fail |
Sí | Igual que service_error. |
Relacionado
- Errores de la API: Responses de error a nivel HTTP
- Rate Limits: Qué activa
rate_limit - Métricas: Dónde ver el desglose de los resultados
- Registro de actividad: Historial de resultados por request