Errori
Ogni errore ha la stessa struttura e un code stabile. Basa la logica
sul codice: il messaggio è scritto per le persone e potrebbe essere riformulato.
{ "error": { "code": "invalid_key", "message": "That API key does not exist." } }
Alcuni errori riportano campi aggiuntivi accanto a questi due: parameter
per il parametro errato, retry_after per quanto aspettare,
limit e used per una quota esaurita.
Tutti i codici
| Stato | Codice | Quando |
|---|---|---|
| 400 | missing_query | query era vuoto o assente. |
| 400 | unknown_format | format non è uno dei sei. |
| 400 | unknown_column | columns indica un campo che non esiste. |
| 400 | format_not_available | È stato chiesto un formato piatto dove la risposta non è fatta di righe. |
| 400 | per_page_too_large | per_page supera il limite di righe del tuo piano. Il limite è indicato nell'errore. |
| 400 | invalid_json | Il corpo della POST non è un JSON valido. |
| 401 | missing_key | Manca l'header Authorization: Bearer. |
| 401 | invalid_key | La chiave non corrisponde a nessun account. |
| 403 | plan_required | L'account non ha un piano a pagamento. |
| 404 | unknown_endpoint | Il percorso non esiste. Quelli validi sono elencati nell'errore. |
| 405 | method_not_allowed | API in sola lettura. Usa GET, oppure POST con un corpo JSON. |
| 429 | too_many_requests | Più di dieci richieste al minuto (API e MCP insieme). |
| 429 | quota_exceeded | La quota di ricerche del giorno è esaurita. |
| 429 | snippet_quota_exceeded | La quota di snippet del giorno è esaurita. Le ricerche senza snippet funzionano ancora. |
Cosa fare in ciascun caso
- 400 - la richiesta è sbagliata e ripeterla non serve. Il campo
parameterdice quale parametro. - 401, 403 - dipende dalla chiave o dal piano. Inutile riprovare finché qualcosa non cambia.
- 429
too_many_requests- attendiretry_aftersecondi e ripeti. Non è stato consumato nulla. - 429
quota_exceeded- la quota torna alla mezzanotte UTC successiva;retry_afterdice quanto manca. Riprovare prima non serve. - 5xx - è un problema nostro. Riprova con un intervallo crescente.
Errori e formati
Gli errori tornano in JSON, oppure in XML se è stato chiesto format=xml.
I formati piatti non hanno una struttura per gli errori, quindi una richiesta
fallita che chiedeva csv riceve JSON: un client che legge CSV
dovrebbe quindi controllare il codice di stato, invece di dare per scontato che
ogni corpo restituito siano righe.
Leggere i codici senza leggere questa pagina
GET / elenca tutti i codici qui sopra, con il loro significato, in
JSON. Non richiede chiave, quindi si può costruire un client sull'intero insieme
senza che nessuno apra un browser.
curl https://api.publicwww.com/Successivo Cluster