En esta página
Referencia
Códigos de error
Los ocho códigos del contrato, incluido el 202 fetch_pending, y cuál consume cuota.
La tabla completa
| Código | code | Qué significa | ¿Consume cuota? |
|---|---|---|---|
| 400 | invalid_request | Parámetros mal formados, o la clave vino por query string, o credenciales de más de un canal. | No |
| 401 | missing_api_key | Falta la clave, está mal formada o fue revocada. | No |
| 403 | plan_required | Tu plan no incluye esta API. No es «te quedaste sin unidades». | No |
| 429 | rate_limited | Vas demasiado rápido. Retry-After en segundos. | No |
| 429 | quota_exceeded | Te quedaste sin unidades del período. | No |
| 202 | fetch_pending | Familia scrapeada: no había dato cacheado y disparamos el fetch. El body trae retry_handle y retry_after. | Sí, 1 unidad. El reintento con el handle no vuelve a cobrar. |
| 502 | upstream_error | La fuente falló o pasó su presupuesto de tiempo. | No |
| 503 | upstream_unavailable | Estamos sirviendo degradado. Es la rama que ve el plan Básico, que tiene 0 fetches upstream. | No |
El 202 y su reintento
Un 202 no es un error: es una respuesta válida del contrato y no cuenta como falla para el SLA. Cobra 1 unidad —el costo de HIT— y no las del MISS, porque cobrarte el MISS completo cuando todavía no recibiste el dato sería cobrarte nuestra latencia.
{ "code": "fetch_pending",
"message": "Estamos trayendo este dato. Reintentá con el mismo handle.",
"retry_handle": "fp_01K8Q7YQ3M4T2V9BXR6ZC1H5FD",
"retry_after": 6 }El handle vive 120 segundos. Si el fetch terminó, el reintento devuelve el dato con X-Cache: miss y cero unidades adicionales. Si venció, es un 404 handle_expired y volvés a empezar pagando 1 unidad.
Qué 400 se cobra
Un 400 rechazado por el validador del gateway no se cobra: nunca se abrió un socket. Un 400 devuelto por la API después de bajar y parsear tu archivo sí: consumió cómputo real. La regla está congelada en los Términos.