Indexer les erreurs d'API

Ce document identifie certains des codes et messages d'erreur renvoyés par les API Google. Plus précisément, les erreurs répertoriées ici peuvent être rencontrées dans le domaine global ou par défaut des API Google. De nombreuses API définissent également leurs propres domaines, qui identifient les erreurs spécifiques à l'API qui ne se produisent pas dans le domaine global. Pour ces erreurs, la valeur de la propriété domain dans la réponse JSON est une valeur spécifique à l'API, telle que youtube.parameter.

Cette page répertorie les erreurs en fonction de leurs codes d'état HTTP, tels que définis dans le document RFC 7231.

L'exemple de réponse JSON ci-dessous vous montre comment une erreur globale est communiquée :

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidParameter",
    "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]",
    "locationType": "parameter",
    "location": "chart"
   }
  ],
  "code": 400,
  "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]"
 }
}

Erreurs

  1. MOVED_PERMANENTLY (301)
  2. SEE_OTHER (303)
  3. NOT_MODIFIED (304)
  4. TEMPORARY_REDIRECT (307)
  5. BAD_REQUEST (400)
  6. UNAUTHORIZED (401)
  7. PAYMENT_REQUIRED (402)
  8. FORBIDDEN (403)
  9. NOT_FOUND (404)
  10. METHOD_NOT_ALLOWED (405)
  11. CONFLICT (409)
  12. GONE (410)
  13. PRECONDITION_FAILED (412)
  14. REQUEST_ENTITY_TOO_LARGE (413)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416)
  16. EXPECTATION_FAILED (417)
  17. PRECONDITION_REQUIRED (428)
  18. TOO_MANY_REQUESTS (429)
  19. INTERNAL_SERVER_ERROR (500)
  20. NOT_IMPLEMENTED (501)
  21. SERVICE_UNAVAILABLE (503)

MOVED_PERMANENTLY (301)

Code d'erreur Description
movedPermanently Cette requête, ainsi que les futures requêtes associées à la même opération, doivent être envoyées à l'URL spécifiée dans l'en-tête Location de cette réponse, et non à l'URL à laquelle cette requête a été envoyée.

SEE_OTHER (303)

Code d'erreur Description
seeOther Votre requête a bien été traitée. Pour obtenir votre réponse, envoyez une demande GET à l'URL spécifiée dans l'en-tête Location.
mediaDownloadRedirect Votre requête a bien été traitée. Pour obtenir votre réponse, envoyez une demande GET à l'URL spécifiée dans l'en-tête Location.

NOT_MODIFIED (304)

Code d'erreur Description
notModified La condition définie dans un en-tête If-None-Match n'a pas été satisfaite. Cette réponse indique que le document demandé n'a pas été modifié et qu'une réponse en cache doit être récupérée. Vérifiez la valeur de l'en-tête de requête HTTP If-None-Match.

TEMPORARY_REDIRECT (307)

Code d'erreur Description
temporaryRedirect Pour que votre demande soit traitée, renvoyez-la à l'URL spécifiée dans l'en-tête Location de cette réponse.

BAD_REQUEST (400)

Code d'erreur Description
badRequest La requête d'API n'est pas valide ou est mal formulée. Le serveur d'API n'a donc pas compris la requête.
badBinaryDomainRequest La requête de domaine binaire n'est pas valide.
badContent Le type de contenu des données de requête ou le type de contenu d'une partie d'une requête en plusieurs parties n'est pas accepté.
badLockedDomainRequest La requête de domaine verrouillé n'est pas valide.
corsRequestWithXOrigin La requête CORS contient un en-tête XD3 X-Origin, ce qui indique une requête incorrecte.
endpointConstraintMismatch La requête a échoué, car elle ne correspondait pas à l'API spécifiée. Vérifiez que la valeur du chemin d'URL est correcte.
invalid La requête a échoué, car elle contenait une valeur non valide. La valeur peut être une valeur de paramètre, d'en-tête ou de propriété.
invalidAltValue La valeur du paramètre alt spécifie un format de sortie inconnu.
invalidHeader La requête a échoué, car elle contenait un en-tête non valide.
invalidParameter La requête a échoué, car elle contenait un paramètre ou une valeur de paramètre non valide. Consultez la documentation relative à l'API pour déterminer les paramètres valides pour votre requête.
invalidQuery Cette requête n'est pas valide. Consultez la documentation relative à l'API pour déterminer les paramètres compatibles avec votre requête et pour savoir si elle contient une combinaison de paramètres ou une valeur de paramètre non valide. Vérifiez la valeur du paramètre de requête q.
keyExpired La clé API fournie dans la requête a expiré. Le serveur d'API ne peut donc pas vérifier la limite de quota pour l'application qui envoie la requête. Accédez à la Google Developers Console pour en savoir plus ou pour obtenir une nouvelle clé.
keyInvalid La clé API fournie dans la requête n'est pas valide. Le serveur d'API ne peut donc pas vérifier la limite de quota pour l'application qui envoie la requête. Accédez à la Google Developers Console pour en savoir plus ou pour obtenir une clé.
lockedDomainCreationFailure Le jeton OAuth a été reçu dans la chaîne de requête, ce que cette API n'accepte que pour les formats de réponse JSON et XML. Essayez plutôt d'envoyer le jeton OAuth dans l'en-tête Authorization, le cas échéant.
notDownload Seules les requêtes de téléchargement multimédia peuvent être envoyées aux chemins d'URL /download/*. Renvoyez la requête au même chemin, mais en omettant le préfixe /download.
notUpload La requête a échoué, car il ne s'agissait pas d'une requête d'importation. Or, vous ne pouvez envoyer que des requêtes d'importation aux URI /upload/*. Essayez de renvoyer la requête au même chemin, mais en omettant le préfixe /upload.
parseError Le serveur d'API ne parvient pas à analyser le corps de la requête.
required Certaines informations requises par la requête d'API sont manquantes. Il peut s'agir de paramètres ou de propriétés de ressource.
tooManyParts La requête en plusieurs parties a échoué, car elle contenait trop de parties.
unknownApi L'API que la requête appelle n'est pas reconnue.
unsupportedMediaProtocol Le client utilise un protocole multimédia non compatible.
unsupportedOutputFormat La valeur du paramètre alt spécifie un format de sortie non compatible avec ce service. Vérifiez la valeur du paramètre de requête alt.
wrongUrlForUpload La requête est une requête d'importation, mais elle a échoué, car elle n'a pas été envoyée à l'URI approprié. Les demandes d'importation doivent être envoyées aux URI contenant le préfixe /upload/*. Essayez de renvoyer la requête au même chemin, mais en ajoutant le préfixe /upload.

UNAUTHORIZED (401)

Code d'erreur Description
unauthorized L'utilisateur n'est pas autorisé à créer la requête.
authError Les identifiants d'autorisation fournis pour la requête ne sont pas valides. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
expired La session est arrivée à expiration. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
lockedDomainExpired La requête a échoué, car un domaine verrouillé qui était auparavant valide a expiré.
required L'utilisateur doit être connecté pour envoyer cette requête d'API. Vérifiez la valeur de l'en-tête de la requête HTTP Authorization.

PAYMENT_REQUIRED (402)

Code d'erreur Description
dailyLimitExceeded402 Un seuil budgétaire quotidien défini par le développeur a été atteint.
quotaExceeded402 L'opération demandée nécessite plus de ressources que le quota ne le permet. Un paiement est nécessaire pour pouvoir terminer l'opération.
user402 L'opération demandée nécessite un paiement de la part de l'utilisateur authentifié.

FORBIDDEN (403)

Code d'erreur Description
forbidden L'opération demandée est interdite et ne peut pas être traitée.
accessNotConfigured Votre projet n'est pas configuré pour accéder à cette API. Veuillez activer l'API pour votre projet à partir de la Google Developers Console.
accessNotConfigured Le projet a été bloqué en raison d'un abus. Consultez la page http://support.google.com/code/go/developer_compliance pour en savoir plus.
accessNotConfigured Le projet est en phase d'être supprimé.
accountDeleted Le compte utilisateur associé aux identifiants de la requête a été supprimé. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
accountDisabled Le compte utilisateur associé aux identifiants de la requête a été désactivé. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
accountUnverified L'adresse e-mail de l'utilisateur envoyant la requête n'a pas été validée. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
concurrentLimitExceeded La requête a échoué, car une limite d'utilisation simultanée a été atteinte.
dailyLimitExceeded Une limite de quota quotidienne relative à l'API a été atteinte.
dailyLimitExceeded La limite de quota quotidienne a été atteinte, et le projet a été bloqué en raison d'un abus. Consultez le formulaire d'assistance relatif à la conformité des API Google afin de tenter de résoudre le problème.
dailyLimitExceededUnreg La requête a échoué, car une limite quotidienne liée à l'utilisation d'une API non authentifiée a été atteinte. Pour continuer à utiliser l'API, vous devez vous inscrire via la Google Developers Console.
downloadServiceForbidden L'API n'est pas compatible avec un service de téléchargement.
insufficientAudience La requête ne peut pas être traitée pour cette audience.
insufficientAuthorizedParty La requête ne peut pas être traitée pour cette application.
insufficientPermissions L'utilisateur authentifié ne dispose pas des autorisations nécessaires pour exécuter cette requête.
limitExceeded La requête ne peut pas être traitée en raison de limites d'accès ou de débit.
lockedDomainForbidden Cette API n'est pas compatible avec les domaines verrouillés.
quotaExceeded L'opération demandée nécessite plus de ressources que le quota ne le permet.
rateLimitExceeded Trop de requêtes ont été envoyées au cours d'une période donnée.
rateLimitExceededUnreg Une limite de débit a été dépassée. Vous devez enregistrer votre application pour pouvoir continuer à appeler l'API. Veuillez vous inscrire via la Google Developers Console.
responseTooLarge La ressource demandée est trop volumineuse pour être renvoyée.
servingLimitExceeded La limite de débit globale spécifiée pour l'API a déjà été atteinte.
sslRequired Une connexion SSL est requise pour effectuer cette opération.
unknownAuth Le serveur d'API ne reconnaît pas le schéma d'autorisation utilisé pour la requête. Vérifiez la valeur de l'en-tête de requête HTTP Authorization.
userRateLimitExceeded La requête a échoué, car une limite de débit par utilisateur a été atteinte.
userRateLimitExceededUnreg La requête a échoué, car une limite de débit par utilisateur a été atteinte, et le développeur du client n'a pas été identifié dans la requête. Veuillez créer un projet pour votre application à l'aide de la Google Developers Console (https://console.developers.google.com).
variableTermExpiredDailyExceeded La requête a échoué, car un quota à échéance variable a expiré et une limite quotidienne a été atteinte.
variableTermLimitExceeded La requête a échoué, car une limite de quota à échéance variable a été atteinte.

NOT_FOUND (404)

Code d'erreur Description
notFound L'opération demandée a échoué, car une ressource associée à la requête est introuvable.
notFound Une ressource associée à la requête est introuvable. Si vous n'avez pas utilisé cette API au cours des deux dernières semaines, veuillez redéployer l'application App Engine et retenter votre appel.
unsupportedProtocol Le protocole utilisé dans la requête n'est pas compatible.

METHOD_NOT_ALLOWED (405)

Code d'erreur Description
httpMethodNotAllowed La méthode HTTP associée à la requête n'est pas compatible.

CONFLICT (409)

Code d'erreur Description
conflict La requête d'API ne peut pas être traitée en raison d'un conflit entre l'opération demandée et un élément existant. Par exemple, une requête essayant de dupliquer un élément entraîne un conflit (bien que les doublons soient généralement identifiés par une erreur plus spécifique).
duplicate L'opération demandée a échoué, car elle visait à créer une ressource qui existait déjà.

GONE (410)

Code d'erreur Description
deleted La requête a échoué, car la ressource lui étant associée a été supprimée.

PRECONDITION_FAILED (412)

Code d'erreur Description
conditionNotMet La condition définie dans l'en-tête de requête HTTP If-Match ou If-None-Match n'a pas été satisfaite. Consultez la section ETag de la spécification HTTP pour en savoir plus. Vérifiez la valeur de l'en-tête de requête HTTP If-Match.

REQUEST_ENTITY_TOO_LARGE (413)

Code d'erreur Description
backendRequestTooLarge La requête est trop volumineuse.
batchSizeTooLarge La requête par lot contient un trop grand nombre d'éléments.
uploadTooLarge La demande a échoué, car les données envoyées dans la demande sont trop volumineuses.

REQUESTED_RANGE_NOT_SATISFIABLE (416)

Code d'erreur Description
requestedRangeNotSatisfiable La requête a spécifié une plage qui ne peut pas être satisfaite.

EXPECTATION_FAILED (417)

Code d'erreur Description
expectationFailed Le serveur n'est pas en mesure de satisfaire une attente du client.

PRECONDITION_REQUIRED (428)

Code d'erreur Description
preconditionRequired La requête nécessite une condition préalable qui n'a pas été fournie. Pour que cette demande aboutisse, vous devez fournir un en-tête If-Match ou If-None-Match avec la requête.

TOO_MANY_REQUESTS (429)

Code d'erreur Description
rateLimitExceeded Trop de requêtes ont été envoyées au cours d'une période donnée.

INTERNAL_SERVER_ERROR (500)

Code d'erreur Description
internalError La requête a échoué en raison d'une erreur interne.

NOT_IMPLEMENTED (501)

Code d'erreur Description
notImplemented L'opération demandée n'a pas été mise en œuvre.
unsupportedMethod La requête a échoué, car elle cherchait à exécuter une méthode ou une opération inconnue.

SERVICE_UNAVAILABLE (503)

Code d'erreur Description
backendError Une erreur de backend s'est produite.
backendNotConnected La requête a échoué en raison d'une erreur de connexion.
notReady Le serveur d'API n'est pas prêt à accepter des requêtes.

Indexer les erreurs spécifiques aux API

Dans tous les cas ci-dessous, la requête a été refusée, et Google n'explore pas l'URL. Cela s'applique également aux principaux messages d'erreur.

BAD_REQUEST (400)

Message d'erreur Description
Missing attribute. 'url' attribute is required. L'utilisateur n'a pas défini l'URL dans sa requête.
Invalid attribute. 'url' is not in standard URL format L'utilisateur a défini une URL qui ne ressemble pas à une URL (par exemple, "abcd").
Unknown type. 'type' attribute is required and must be 'URL_REMOVED' or 'URL_UPDATED'. L'utilisateur n'a pas défini le type de notification.
Invalid value at 'url_notification.type' (TYPE_ENUM) L'utilisateur a défini un type de notification autre que URL_REMOVED ou URL_UPDATED.

FORBIDDEN (403)

Message d'erreur Description
Permission denied. Failed to verify the URL ownership. L'utilisateur n'a pas terminé le processus de validation de la propriété ou tente de mettre à jour une URL qui ne lui appartient pas.

TOO_MANY_REQUESTS (429)

Message d'erreur Description
Insufficient tokens for quota 'indexing.googleapis.com/default_requests' L'utilisateur dépasse son quota d'API d'indexation.