# Typische fouten

De pagina is samengesteld uit de verdeling van statussen in productie over 30 dagen. Waar we niets meten, staat dat gewoon zo.

<Aside type="note">
Foutcodes **schrijven** we niet in het requestlog, alleen HTTP-statussen. Daarom staan hieronder de frequenties van statussen, maar er is geen ranglijst van codes zoals `INVALID_FIELD`. We hebben die niet verzonnen.
</Aside>

## Padfouten

De meest voorkomende 4xx in het logboek is `404`, en bijna allemaal zijn ze niet van jou: het zijn scanners die `.env`, `.git/config`, `wordpress/`, `wp-content/…` doorzoeken. Echte padfouten bij integrators zijn andere, en die staan al beschreven met voorbeelden hier: [Foutieve oproepen die we het vaakst zien](/api-conventions/#помилкові-виклики-які-ми-бачимо-найчастіше). Kort gezegd: `/api/…` in plaats van `/v1/…`, dubbele `/v1/v1/…`, `/swagger.json` in plaats van `/v1/openapi.json`.

## `402`: tarief omvat endpoint niet

385 antwoorden over 30 dagen. De verdeling toont waar het gratis tarief het vaakst tegenaan loopt:

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

In de responsbody komen `current_plan` en `upgrade_to` terug. Dit is geen requestfout: de body is correct, de sleutel is geldig, maar het tarief omvat dit endpoint niet.

## `429`: twee verschillende limieten

6 791 antwoorden over 30 dagen, waarvan 3 769 zonder sleutel en 3 022 met sleutel. Dit zijn twee verschillende mechanismen, en je moet ze niet verwarren:

- **zonder sleutel** wordt de limiet per IP geteld, 30 verzoeken per uur. Het grootste blok in ons logboek zijn zelfs geen integrators, maar een synthetische Chrome-Lighthouse audit met 15 adressen;
- **met sleutel** is de limiet de RPM van jouw tarief. In de respons staat `Retry-After` in seconden, en die moet je afwachten, in plaats van meteen een retry te doen.

## `400`: bijna altijd body van kaartverzoek

700 antwoorden over 30 dagen, en ze zijn geconcentreerd op endpoints die datum, tijd en coördinaten accepteren: `chart` (111), `horoscope/daily` (19), `transits` (18), `synastry` (15), `rectification` (15).

De duurste van deze fouten is zelfs niet degene die `400` geeft, maar degene die ooit `200` gaf: korte veldnamen. De regels en een voorbeeldrespons: [Veldformaten](/agent-setup/field-formats/).

## `401` en `403`

`401` betekent een ontbrekende of onjuiste sleutel; het bericht noemt beide klassen, `aw_` en `pk_`. `403` heeft te maken met de origin: een browser‑sleutel `pk_` wordt afgewezen als het verzoek zonder origin komt of van een ander domein, en een sleutel met een endpoint‑scope geeft `ENDPOINT_NOT_IN_SCOPE` en somt zijn lijst op in `details`.

Volledige tabel met codes: [Fouten](/errors/).
