API gratuite d’OCR de passeports

Voici une API gratuite d’OCR de passeports que vous pouvez appeler avant même d’avoir un compte. La documentation publie une clé publique de sandbox, et cette clé exécute 10 vraies reconnaissances par adresse IP – sans inscription, sans carte bancaire, sans passer par un commercial. Inscrivez-vous et 20 crédits supplémentaires arrivent sur le compte. Ensuite, un document reconnu coûte 1¢, tarif unique, quel que soit le volume. Envoyez une photo ou un scan d’un passeport, d’une carte d’identité ou d’un document de voyage ; recevez du JSON structuré avec le titulaire, le document, chaque champ trouvé et la zone de lecture automatique (MRZ) avec ses chiffres de contrôle vérifiés. Un scan raté ne coûte rien.

Faites votre première reconnaissance sans compte

Copiez la clé depuis la documentation et envoyez une image. C’est toute l’intégration :

IMG=$(base64 -i passport.jpg | tr -d '\n')

curl -s https://api.doc.cheap/v1/scans \
  -H "Authorization: Bearer sk_sandbox_public" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-call-1" \
  -d '{"image":"'"$IMG"'","options":{"mode":"full"}}'

sk_sandbox_public est la clé publique du sandbox : elle est publiée volontairement, ce n’est pas un secret, et elle est soumise à une limite de requêtes. Idempotency-Key garantit qu’une requête relancée n’est pas facturée une seconde fois, ce qui compte le jour où vous rejouez une file d’attente.

Ce que vous recevez

{
  "meta": { "schema_version": "1.0", "status": "recognized", "billed": true,
            "confidence": "high",
            "timing": { "upload_ms": 118, "processing_ms": 684, "total_ms": 826 } },
  "document": { "kind": "passport", "country": "GRC", "country_name": "Greece",
                "number": "AM7304518", "series": null,
                "issue_date": "2022-03-10", "expiry_date": "2032-03-10",
                "is_expired": false, "days_remaining": 2001 },
  "holder": { "given_names": "ELENI SOFIA", "surname": "PARADEIGMA",
              "birth_date": "1994-03-08", "sex": "F", "nationality": "GRC" },
  "mrz": { "status": "passed", "reason": null, "lines": ["…", "…"] },
  "fields": [ "…" ], "images": { "…": null },
  "quality": { "overall": "pass" },
  "authenticity": { "overall": "not_checked", "checks": [] }
}
  • meta.status est exactement l’une de ces cinq chaînes : recognized, no_document_found, unreadable, unsupported_document, rejected.
  • Les dates sont toujours au format ISO-8601. Une valeur manquante vaut null, jamais une clé absente.
  • meta.billed figure dans chaque réponse et indique si cet appel a coûté quelque chose.
  • fields[] contient chaque champ du document, lu séparément dans la zone encodée et dans la zone imprimée, chacun avec son propre niveau de confiance, pour que les deux lectures puissent être comparées. Les valeurs dans leur propre écriture arrivent à côté de la translittération latine, étiquetées avec leur langue.

Ce que cela coûte après les appels gratuits

1¢ par document. Tarif unique, pour tous les comptes, quel que soit le volume.

Un seul chiffre, quel que soit le volume : pas de paliers, pas de grille tarifaire à demander, rien à négocier. Un crédit vaut un centime, et un centime vaut un document reconnu.

Seuls les documents reconnus sont facturés. Seul un document reconnu avec succès est facturé. Un scan qui ne trouve aucun document, ne peut pas lire l’image ou ne peut pas déterminer le type répond avec son verdict et ne coûte rien.

  • ✓ 10 documents reconnus gratuits par adresse avec la clé publique du sandbox, sans aucun compte : au maximum 10 requêtes par heure, quelle que soit leur réponse.
  • ✓ 20 documents gratuits à l’inscription, crédités sur votre solde.

Comment fonctionne la facturation Comment cela se compare aux alternatives

Ce que devient l’image

Quand la photo est illisible

  • no_document_found – rien qui ressemble à un document dans le cadre.
  • unreadable – trouvé, mais illisible : reflets, flou, résolution.
  • unsupported_document – lu, mais ce type n’est pas pris en charge.

Des outils gratuits qui ne demandent aucune clé

Questions fréquentes

Qu’est-ce que l’OCR de passeports ?

L’OCR de passeports, c’est la lecture automatique de la page de données d’un passeport à partir d’une photo ou d’un scan. Elle comporte deux moitiés. La zone de lecture automatique (MRZ), ce sont les deux lignes de 44 caractères au bas de la page, imprimées dans une police conçue pour être lue par une machine et protégées par des chiffres de contrôle. La zone visuelle, c’est tout ce qui est imprimé pour un humain : les mêmes nom, numéro et dates, plus ce que la zone ne contient pas – lieu de naissance, autorité de délivrance, portrait. Ne lire que la première moitié est plus facile et vous en apprend moins ; lire les deux vous permet de les comparer.

Existe-t-il une API gratuite d’OCR de passeports ?

Oui, dans certaines limites. Celle-ci publie dans la documentation une clé de sandbox qui exécute 10 vraies reconnaissances par adresse IP sans compte ni carte, et l’inscription ajoute 20 crédits – soit 30 documents avant tout paiement. Hors ligne, la bibliothèque open source PassportEye avec tesseract lit gratuitement la zone de lecture automatique sur votre propre machine ; elle ne lit pas la face imprimée, et sa précision sur des photos prises au téléphone dépend entièrement de votre propre prétraitement d’image. « Gratuit pour toujours, à gros volume » n’existe dans cette catégorie chez personne, nous compris.

Combien coûte une API d’OCR de passeports ?

Ici, $0.01 par document, tarif unique, quel que soit le volume, et rien quand la reconnaissance échoue. Les prix catalogue publiés ailleurs n’utilisent pas les mêmes unités – certains fournisseurs facturent à la page, nous facturons au document – alors comparez dans la même unité avant de comparer les chiffres. Les chiffres, chacun relevé sur la page du fournisseur lui-même et lié à celle-ci, se trouvent sur la page de comparaison.

Conservez-vous l’image du passeport ?

Non. L’image n’est jamais écrite sur disque ; elle existe en mémoire le temps de la requête et disparaît une fois la réponse envoyée. Sur une clé sandbox, le résultat n’est pas stocké non plus. Sur une clé live, il est conservé pendant les retain_hours que vous transmettez ou, à défaut, pendant la durée réglée sur le compte – un an (8760 heures) tant que vous ne la changez pas –, et retain_hours: 0 ne conserve rien. Il n’y a ici aucun stockage de documents, et c’est la réponse courte à la question de ce que deviennent les passeports de vos utilisateurs.

Que se passe-t-il si la photo est illisible ?

Vous recevez une réponse et rien n’est facturé. La réponse contient meta.status – unreadable quand le document a été trouvé mais n’a pas pu être lu, ou no_document_found quand rien ne ressemblait à un document dans le cadre – et meta.billed à false. Le groupe quality porte le verdict sur l’image elle-même. Reprenez la photo sans reflet sur la zone, remplissez le cadre avec la page de données et gardez la zone au-dessus d’environ 300 DPI.