MostlyQR

Erreurs

L’API REST utilise les codes de statut HTTP standard et retourne un corps d’erreur JSON :

json
{ "error": "unauthorized", "message": "Missing or invalid API key" }

# Codes de statut

Statut error Quand
400 invalid-argument Corps malformé ou champ obligatoire manquant.
401 unauthorized Clé API manquante, invalide ou révoquée (API key).
403 permission-denied Au-delà des droits de votre plan (une fonctionnalité que votre plan n’inclut pas).
404 not-found Aucun lien/campagne/job avec cet identifiant, ou non détenu par votre compte.
405 method_not_allowed Cette méthode HTTP n’est pas supportée sur ce chemin.
409 failed-precondition La ressource n’est pas dans un état permettant l’opération — par exemple, modifier un lien gelé, ou créer des codes sérialisés au-delà de votre allocation Enterprise (la limite figure dans le message).
429 rate_limited / resource-exhausted Limite de débit par clé atteinte (rate_limited — inclut un timestamp retry_at et des en-têtes de réponse X-RateLimit-*) ou quota du plan épuisé (resource-exhausted). Attendez et réessayez.
5xx internal Une erreur s’est produite de notre côté ; il est sûr de réessayer les lectures idempotentes.

Les erreurs au niveau du transport (authentification, routage, limitation de débit) utilisent des codes en snake_case ; les erreurs au niveau des ressources utilisent kebab-case (la convention Firebase callable). Toujours vérifier le statut HTTP, pas la chaîne error.

# Propriété

Chaque lecture et écriture est délimitée au compte auquel la clé API se résout. Demander un lien ou une campagne d’un autre compte retourne 404 (pas 403) — nous ne révélons pas son existence.

# Tâches asynchrones

Les tâches Batch et sérialisation acceptent la demande (200, queued), puis exposent les défaillances dans le statut du job (status: "failed" avec une raison), pas dans la réponse HTTP originale. Interrogez toujours le job.

# Vérification

Les points de terminaison vérification publics ne génèrent jamais d’erreur sur un numéro de série inconnu — ils retournent status: "unknown" (un code contrefait/non émis est une réponse significative, pas un 404).

# Suivant