# Errores típicos

La página está compuesta por la distribución de estados en producción durante 30 días. Donde no medimos algo, así está escrito.

<Aside type="note">
Los códigos de error **no** los escribimos en el registro de solicitudes, solo los estados HTTP. Por eso abajo hay frecuencias de estados, pero no hay una clasificación de códigos como `INVALID_FIELD`. No nos inventamos uno.
</Aside>

## Errores de ruta

Los 4xx más frecuentes en el registro son `404`, y casi todos no son tuyos: son escáneres que recorren `.env`, `.git/config`, `wordpress/`, `wp-content/…`. Los verdaderos errores de ruta de los integradores son otros, y ya están descritos con ejemplos aquí: [Llamadas erróneas que vemos con más frecuencia](/api-conventions/#помилкові-виклики-які-ми-бачимо-найчастіше). En resumen: `/api/…` en lugar de `/v1/…`, `/v1/v1/…` duplicado, `/swagger.json` en lugar de `/v1/openapi.json`.

## `402`: el plan no incluye el endpoint

385 respuestas en 30 días. La distribución muestra a dónde se dirige con más frecuencia el plan gratuito:

| Endpoint | `402` en 30 días |
|---|---|
| `chart` | 114 |
| `transit-calendar` | 101 |
| `vedic/dashas/vimshottari/maha` | 48 |
| `ingresses` | 25 |
| `planetary-hours` | 24 |
| `vedic/panchang/full` | 24 |
| `eclipses` | 13 |

En el cuerpo de la respuesta llegan `current_plan` y `upgrade_to`. No es un error de solicitud: el cuerpo es correcto, la clave es válida, simplemente el plan no incluye este endpoint.

## `429`: dos límites diferentes

6 791 respuestas en 30 días, de las cuales 3 769 sin clave y 3 022 con clave. Son dos mecanismos diferentes, y no hay que confundirlos:

- **sin clave** el límite se cuenta por IP, 30 solicitudes por hora. El mayor bloque en nuestro registro no son siquiera integradores, sino auditorías sintéticas Chrome-Lighthouse de 15 direcciones;
- **con clave** el límite es el RPM de tu plan. En la respuesta hay `Retry-After` en segundos, y es ese valor el que debes esperar, no reintentar inmediatamente.

## `400`: casi siempre el cuerpo de la solicitud de tarjeta

700 respuestas en 30 días, y están concentradas en endpoints que aceptan fecha, hora y coordenadas: `chart` (111), `horoscope/daily` (19), `transits` (18), `synastry` (15), `rectification` (15).

El error más costoso de estos ni siquiera es el que devuelve `400`, sino el que alguna vez devolvió `200`: abreviaturas de campos. Reglas y ejemplo de respuesta: [Formatos de campos](/agent-setup/field-formats/).

## `401` y `403`

`401` es una clave ausente o incorrecta; el mensaje nombra ambas clases, `aw_` y `pk_`. `403` se refiere al origen: la clave de navegador `pk_` se rechaza si la solicitud llega sin origen o desde un dominio distinto, y la clave con ámbito de endpoints responde `ENDPOINT_NOT_IN_SCOPE` y enumera su lista en `details`.

Tabla completa de códigos: [Errores](/errors/).
