Skip to main content
Documentation API

Erreurs et nouvelles tentatives

Gérez les erreurs HTTP de l’API FreeAIOCR, l’idempotence, les nouvelles tentatives sûres et les paiements incertains.

Ces guides concernent les API texte et tableaux. Consultez chaque référence pour les entrées, formats et erreurs spécifiques.

Réponses d’erreur

Exemple de réponse d’erreur JSON :

{
  "request_id": "b2c8ec98-2a36-4f87-99d2-3d7839b92518",
  "error": {
    "code": "insufficient_balance",
    "message": "Recognition did not complete",
    "required_reservation_usd": "0.011288000"
  }
}

Codes d’état HTTP

HTTPerror.code
400invalid_request, invalid_idempotency_key, invalid_image
401unauthorized
402insufficient_balance
403account_unavailable
405invalid_request
409idempotency_conflict, request_in_progress
413image_too_large, input_limit_exceeded
415unsupported_media_type
422recognition_blocked
429rate_limit_exceeded, concurrency_limit_exceeded
502recognition_failed, output_truncated, empty_result, invalid_usage
503service_unavailable, settlement_pending, export_failed
504request_timeout
HTTPCauseAction recommandée
400 / 413 / 415Requête, taille ou format d’image non valideCorriger le fichier ou réduire sa taille
405Méthode HTTP incorrecteUtiliser POST
401Clé API absente ou invalideVérifier la clé Bearer
403Compte indisponibleVérifier le compte ou lever la restriction
402Solde disponible insuffisantRecharger, puis consulter error.required_reservation_usd et les réservations de solde
409Conflit d’idempotence ou opération en coursSi request_in_progress, conserver l’identifiant et l’image puis réessayer après attente ; en cas de conflit, corriger l’identifiant
429Limite de débit ou de concurrenceAttendre selon Retry-After
422 / 502 confirméÉchec de reconnaissance confirméPas de facturation de reconnaissance ; examiner l’erreur
503 / 504 / résultat incertainÉtat du service, du règlement ou délai incertainNe pas supposer l’absence de débit ; réessayer avec le même Idempotency-Key et l’image

Les erreurs sont renvoyées en JSON avec request_id, error.code et error.message. Toutes les réponses utilisent Cache-Control: no-store. La reconnaissance n’est pas diffusée en continu : les succès utilisent le format choisi et les erreurs restent en JSON. Conservez X-Request-Id pour le support.

Idempotence

Idempotency-Key identifie l’opération : 16–128 lettres ASCII, chiffres ou . _ : -. Nouvelle image : nouvel identifiant unique. Nouvelle tentative : même identifiant, mêmes octets originaux et MIME. La portée est le compte, même si la clé API change. Dans les 24 heures après acceptation, une opération terminée renvoie request_id, résultat et coût initiaux avec Idempotency-Replayed: true, sans nouvelle génération ni facturation.

Utilisez un Idempotency-Key différent pour chaque nouvelle opération ou point d’accès. Le partager entre texte et tableaux renvoie 409 idempotency_conflict. Pour changer le format de la même opération, conservez la clé et l’image d’origine.

Stratégie de nouvelle tentative

En cas d’erreur réseau, request_in_progress ou settlement_pending, conservez identifiant et image, attendez Retry-After secondes puis réessayez. Ne créez pas une autre opération si le règlement est incertain. Les échecs terminaux sauvegardés renvoient la même erreur ; changez d’identifiant seulement après échec confirmé pour recommencer volontairement. Après 24 heures, un identifiant peut créer une nouvelle opération payante ; une récupération non terminée bloque encore sa réutilisation.

Sécurité de la facturation

Un échec de reconnaissance confirmé n’est pas facturé, mais une réponse perdue ou settlement_pending peut correspondre à un débit déjà effectué ou à une réserve conservée. Tant que le résultat reste incertain, ne créez pas une autre opération avec un nouvel Idempotency-Key ; réessayez avec l’identifiant et l’image d’origine et conservez X-Request-Id pour le support.