Erreurs
Tous les échecs ont la même structure et un code stable. Basez votre
logique sur le code - le message est rédigé pour des humains et peut être reformulé.
{ "error": { "code": "invalid_key", "message": "That API key does not exist." } }
Certaines erreurs comportent des champs supplémentaires en plus de ces deux-là :
parameter pour le paramètre incorrect, retry_after pour le
temps d’attente, limit et used pour un quota épuisé.
Tous les codes
| Statut | Code | Quand |
|---|---|---|
| 400 | missing_query | query était vide ou absent. |
| 400 | unknown_format | format ne fait pas partie des six. |
| 400 | unknown_column | columns désigne un champ qui n’existe pas. |
| 400 | format_not_available | Un format plat a été demandé là où la réponse n’est pas une liste de lignes. |
| 400 | per_page_too_large | per_page dépasse la limite de lignes de votre forfait. La limite figure dans l’erreur. |
| 400 | invalid_json | Le corps de la requête POST n’est pas un JSON valide. |
| 401 | missing_key | Pas d’en-tête Authorization: Bearer. |
| 401 | invalid_key | La clé ne correspond à aucun compte. |
| 403 | plan_required | Le compte n’a pas de forfait payant. |
| 404 | unknown_endpoint | Ce chemin n’existe pas. Les chemins connus sont listés dans l’erreur. |
| 405 | method_not_allowed | API en lecture seule. Utilisez GET, ou POST avec un corps JSON. |
| 429 | too_many_requests | Plus de dix requêtes par minute (API et MCP confondus). |
| 429 | quota_exceeded | Le quota de recherches du jour est épuisé. |
| 429 | snippet_quota_exceeded | Le quota d’extraits du jour est épuisé. La recherche sans extraits fonctionne toujours. |
Que faire dans chaque cas
- 400 - votre requête est incorrecte et la renvoyer n’y changera rien. Le champ
parameterindique le paramètre en cause. - 401, 403 - votre clé ou votre forfait. Inutile de réessayer tant que rien n’a changé.
- 429
too_many_requests- attendezretry_aftersecondes et renvoyez la requête. Rien n’a été consommé. - 429
quota_exceeded- le quota se renouvelle à minuit UTC ;retry_afterindique dans combien de temps. Réessayer plus tôt ne servira à rien. - 5xx - le problème vient de chez nous. Réessayez avec un délai croissant.
Erreurs et formats
Les erreurs sont renvoyées en JSON, ou en XML lorsque format=xml a été
demandé. Les formats plats n’ont pas de structure pour une erreur : une requête
en échec qui demandait du csv reçoit donc du JSON. Un client qui lit du
CSV doit par conséquent vérifier le code de statut plutôt que de supposer que
tout corps de réponse est une liste de lignes.
Lire les codes sans lire cette page
GET / liste tous les codes ci-dessus, avec leur signification, en JSON.
Aucune clé n’est nécessaire : un client peut ainsi être développé en tenant compte
de l’ensemble des codes sans que personne n’ouvre un navigateur.
curl https://api.publicwww.com/Suivant Exemples de code