# Errori comuni

Nota bene: la pagina è stata suddivisa per la distribuzione degli errori per 30 giorni. Dove non misuriamo nulla, lo si scrive.

<Aside type="note">
Non scriviamo i codici di errore nei log degli accessi, solo gli stati HTTP. Pertanto, ecco le frequenze degli errori, ma non il ranking dei codici come `INVALID_FIELD`. Non li abbiamo inventati.
</Aside>

## Errori di percorso

I 4xx più frequenti nel log sono `404`, e quasi tutti non sono vostri: sono gli scanner che esplorano `.env`, `.git/config`, `wordpress/`, `wp-content/…`. Gli errori di percorso degli integratori sono diversi e sono descritti con esempi qui: [Errori di chiamata che vediamo più spesso](/api-conventions/#errori-di-chiamata-che-vediamo-mai-spesso). In breve: `/api/…` al posto di `/v1/…`, `/swagger.json` al posto di `/v1/openapi.json`.

## `402`: il piano tariffario non include l'endpoint

385 risposte per 30 giorni. La distribuzione mostra dove si ferma più spesso il piano tariffario gratuito:

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

Nel corpo della risposta viene `current_plan` e `upgrade_to`. Non è un errore di richiesta: il corpo è corretto, la chiave è valida, ma il piano tariffario non include questo endpoint.

## `429`: due limiti diversi

6 791 risposte per 30 giorni, di cui 3 769 senza chiave e 3 022 con chiave. Sono due meccanismi diversi e non è necessario confonderli:

- **senza chiave** il limite viene contato per IP, 30 richieste all'ora. Il più grande blocco nel nostro log non è nemmeno gli integratori, ma l'audit sintetico di Chrome-Lighthouse con 15 indirizzi;
- **con chiave** il limite è il RPM del tuo piano tariffario. Nella risposta c'è `Retry-After` in secondi, e è questo che bisogna attendere, e non fare un retry immediato.

## `400`: quasi sempre il corpo della richiesta di carta

700 risposte per 30 giorni, e sono concentrate sugli endpoint che accettano data, ora e coordinate: `chart` (111), `horoscope/daily` (19), `transits` (18), `synastry` (15), `rectification` (15).

La più costosa tra queste errori non è nemmeno quella che restituisce `400`, ma quella che una volta restituiva `200`: le scritture brevi dei campi. Le regole e l'esempio di risposta: [Formati dei campi](/agent-setup/field-formats/).

## `401` e `403`

`401` è la chiave mancante o non valida; il messaggio cita entrambi i tipi, `aw_` e `pk_`. `403` è l'origine: il chiave browser `pk_` viene rifiutato se la richiesta arriva senza origine o da un dominio diverso, e la chiave con area di endpoint risponde `ENDPOINT_NOT_IN_SCOPE` e elenca il suo elenco in `details`.

La tabella completa dei codici: [Errori](/errors/).
