# Erreurs courantes

<Aside type="note">
Nous **ne** révélons pas les codes d'erreur dans les journaux des requêtes, seulement les statuts HTTP. Par conséquent, les fréquences ci-dessous ne montrent pas les codes tels que `INVALID_FIELD`. Nous n'avons pas créé cela.
</Aside>

## Erreurs de route

Les 4xx les plus fréquents dans le journal sont `404`, et la plupart d'entre eux ne sont pas à vous : ce sont des scanners qui parcourrent `.env`, `.git/config`, `wordpress/`, `wp-content/…`. Les erreurs de route dans les intégrateurs sont différentes, et elles sont déjà décrites avec des exemples ici : [Appels erronés que nous voyons le plus souvent](/api-conventions/#appels-erronés-que-nous-voyons-le-plus-often). En résumé : `/api/…` au lieu de `/v1/…`, `/v1/v1/…` doublé, `/swagger.json` au lieu de `/v1/openapi.json`.

## `402`: le tarif ne comprend pas l'endpoint

385 réponses pour 30 jours. La répartition montre où l'on s'est le plus souvent heurté avec le tarif gratuit :

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

Dans le corps de la réponse, il y a `current_plan` et `upgrade_to`. C'est pas une erreur de requête : le corps est correct, la clé est valide, mais le tarif ne comprend pas cet endpoint.

## `429`: deux limites différentes

6 791 réponses pour 30 jours, dont 3 769 sans clé et 3 022 avec clé. C'est deux mécanismes différents, et il ne faut pas les mélanger :

- **sans clé** le limit est compté par IP, 30 requêtes par heure. Le plus grand bloc dans notre journal n'est même pas les intégrateurs, mais l'audit synthétique Chrome-Lighthouse avec 15 adresses ;
- **avec clé** le limit est votre RPM du tarif. Dans la réponse, il y a `Retry-After` en secondes, et il faut attendre cela, et pas faire un retry immédiatement.

## `400`: presque toujours le corps de la requête

700 réponses pour 30 jours, et elles sont concentrées sur les endpoints qui acceptent la date, l'heure et les coordonnées : `chart` (111), `horoscope/daily` (19), `transits` (18), `synastry` (15), `rectification` (15).

La plus chère de ces erreurs n'est même pas celle qui donne `400`, mais celle qui a donné `200` : les écritures courtes des champs. Les règles et l'exemple de réponse : [Formats des champs](/agent-setup/field-formats/).

## `401` et `403`

`401` c'est la clé manquante ou incorrecte ; le message nomme les deux classes, `aw_` et `pk_`. `403` c'est l'origine : la clé `pk_` du navigateur est rejetée si la requête est venue sans origine ou d'un domaine étranger, et la clé avec l'ensemble des endpoints répond à `ENDPOINT_NOT_IN_SCOPE` et liste son ensemble dans `details`.

La table complète des codes : [Erreurs](/errors/).
