無料で使えるパスポートOCR API

これは、アカウントを作る前から呼び出せる無料のパスポートOCR APIです。ドキュメントには公開サンドボックスキーが記載されており、このキーでIPアドレスごとに10回、本物の認識を実行できます。登録もクレジットカードも、営業担当との打ち合わせも必要ありません。登録すると、さらに20クレジットがアカウントに付与されます。その後は、認識できた書類1件につき1セント、どの処理量でも定額です。パスポート、身分証明書、渡航文書の写真またはスキャン画像を送ると、所持人、書類、見つかったすべてのフィールド、そしてチェックディジットを検証済みの機械読み取りゾーン(MRZ)を含む構造化JSONが返ります。失敗したスキャンには料金がかかりません。

アカウントなしで最初の認識を実行する

ドキュメントからキーをコピーして、画像をPOSTするだけです。連携作業はこれですべてです。

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 は公開サンドボックスキーです。意図的に公開しているもので、秘密情報ではなく、リクエスト数の制限があります。Idempotency-Key を付けると、再試行したリクエストが二重に課金されることはありません。キューを再実行する日に、これが効いてきます。

返ってくるもの

{
  "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 は次の5つの文字列のいずれかです:recognized、no_document_found、unreadable、unsupported_document、rejected。
  • 日付は常にISO-8601形式です。値がない場合はnullになり、キー自体が省略されることはありません。
  • meta.billed はすべてのレスポンスに含まれ、その呼び出しに料金がかかったかどうかを示します。
  • fields[] には書類に含まれるすべてのフィールドが入ります。符号化されたゾーンと印字されたゾーンから別々に読み取り、それぞれに信頼度が付くため、2つの読み取り結果を比較できます。独自の文字体系で書かれた値は、ラテン文字への翻字と並べて、言語タグ付きで返ります。

無料分を使い切った後の料金

書類1件あたり1¢。定額で、すべてのアカウントに、どの処理量でも同じ料金です。

処理量にかかわらず料金は1つだけです。段階制も、問い合わせが必要な価格表も、交渉もありません。1クレジットは1セントで、1セントは認識できた書類1件です。

課金されるのは認識できた書類だけです。 課金されるのは、正しく認識できた書類だけです。書類が見つからない、画像を読み取れない、種類を判定できないスキャンは、その判定結果を返すだけで料金はかかりません。

  • ✓ 公開サンドボックスキーを使えば、アカウントなしで送信元アドレスごとに10件の書類を無料で認識できます。リクエストは結果にかかわらず1時間あたり最大10件です。
  • ✓ 登録すると20件分の無料枠が残高に付与されます。

課金の仕組み 他の選択肢との比較

画像はどう扱われるか

写真を読み取れない場合

  • no_document_found – フレーム内に書類らしきものがない.
  • unreadable – 書類は見つかったが読み取れない(反射、ぼやけ、解像度).
  • unsupported_document – 読み取れたが、その種類には対応していない.

キーがまったく不要な無料ツール

  • MRZパーサー – TD1、TD2、TD3のゾーンを貼り付けると、すべてのフィールドとチェックディジットを確認できます。ブラウザ内で動作します。
  • MRZジェネレーター – テスト用に有効なゾーンを作成できます。
  • 書類フィールド一覧 – APIが返すフィールドの一覧を確認できます。

よくある質問

パスポートOCRとは何ですか?

パスポートOCRとは、写真やスキャン画像からパスポートのデータページを機械で読み取ることです。対象は2つに分かれます。機械読み取りゾーン(MRZ)はページ下部にある44文字×2行で、機械で読み取るために設計された書体で印字され、チェックディジットで保護されています。視覚ゾーンは人が読むために印字されたすべての部分で、同じ氏名、番号、日付に加えて、出生地、発行機関、顔写真など、MRZには含まれない情報もあります。前者だけを読むほうが簡単ですが、得られる情報は少なくなります。両方を読めば、2つを突き合わせることができます。

無料のパスポートOCR APIはありますか?

はい、制限の範囲内であります。このAPIはドキュメントでサンドボックスキーを公開しており、アカウントもカードもなしで、IPアドレスごとに10回の本物の認識を実行できます。登録するとさらに20クレジットが加わり、支払いの前に合計30件の書類を処理できます。オフラインでは、オープンソースのPassportEyeライブラリとtesseractを使えば、ご自身のマシン上で機械読み取りゾーンを無料で読み取れます。ただし印字面は読み取れず、スマートフォンで撮った写真での精度は、ご自身で行う画像の前処理に完全に左右されます。「大量処理でもずっと無料」というサービスは、当社を含め、この分野のどこにも存在しません。

パスポートOCR APIの料金はいくらですか?

当社では書類1件あたり$0.01、どの処理量でも定額で、認識に失敗した場合は無料です。他社の公開価格は課金単位が異なります。ページ単位で課金する事業者もあれば、当社のように書類単位で課金する事業者もあるため、数字を比べる前に単位をそろえてください。各社の料金ページで確認し、リンクを付けた数字は比較ページに掲載しています。

パスポートの画像は保存されますか?

いいえ。画像はディスクに書き込まれることはなく、リクエストの処理中だけメモリ上に存在し、レスポンスを送信した時点で消えます。サンドボックスキーでは結果も保存されません。live キーでは、指定した retain_hours の間、指定がなければアカウントの保存期間設定(変更するまでは1年、8760時間)の間だけ保持され、retain_hours: 0 なら何も保持されません。ここには書類の保管庫がありません。それが「ユーザーのパスポートはどうなるのか」という問いへの端的な答えです。

写真が読み取れない場合はどうなりますか?

レスポンスは返り、料金はかかりません。レスポンスには meta.status(書類は見つかったが読み取れなかった場合はunreadable、フレーム内に書類らしきものがなかった場合は no_document_found)と、false の meta.billed が含まれます。quality グループには画像そのものについての判定が入ります。ゾーンに光が反射しないように撮り直し、データページがフレームいっぱいに収まるようにして、ゾーンの解像度をおよそ300 DPI以上に保ってください。