免费的护照 OCR API

这是一款在您拥有账户之前就能调用的免费护照 OCR API。文档中印有一个公开的沙箱密钥,该密钥每个 IP 地址可执行 10 次真实识别 – 无需注册、无需信用卡,也不必先和销售通电话。注册后,账户中还会再增加 20 个点数。此后,每份成功识别的证件收费一美分,统一价格,不分用量。发送一张护照、身份证或旅行证件的照片或扫描件,即可拿回结构化 JSON,其中包括持有人、证件、找到的每个字段,以及校验位已经过验证的机读区(MRZ)。扫描失败不花一分钱。

无需账户,完成您的首次识别

从文档中复制密钥,然后 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 只会是以下五个字符串之一:recognized、no_document_found、unreadable、unsupported_document、rejected。
  • 日期一律使用 ISO-8601 格式。缺失的值为 null,绝不会缺少键。
  • 每个响应都带有 meta.billed,说明这次调用是否产生了费用。
  • fields[] 包含证件上的每个字段,分别从编码区和印刷区读取,各自带有置信度,便于比较两种读取结果。以原有文字书写的值会与其拉丁字母转写一起返回,并标注所属语言。

免费调用用完之后的费用

每份证件 1¢。统一价格,适用于所有账户,不分用量。

无论用量多少,只有一个价格:没有阶梯,不用索取价目表,也没有什么需要谈判的。一个点数就是一美分,也就是一份成功识别的证件。

只有识别成功的证件才计费。 只有成功识别的证件才收费。如果扫描没有找到证件、无法读取图像或无法确定证件类型,响应会给出相应结论,并且不收取任何费用。

  • ✓ 使用公开的沙箱密钥,每个地址可免费识别 10 份证件,完全不需要账户;无论返回什么结果,每小时最多 10 次请求。
  • ✓ 注册即送 20 份免费证件额度,直接计入您的余额。

计费方式 与其他方案相比如何

图像会怎样处理

照片无法读取时

  • no_document_found – 画面中没有任何形似证件的物体.
  • unreadable – 找到了证件,但无法读取:反光、模糊或分辨率不足.
  • unsupported_document – 读取了证件,但不支持该类型.

完全不需要密钥的免费工具

  • MRZ 解析器 – 粘贴一段 TD1、TD2 或 TD3 机读区,查看每个字段和每个校验位。在您的浏览器中运行。
  • MRZ 生成器 – 生成一段有效的机读区,用于测试。
  • 证件字段浏览器 – 浏览 API 响应中使用的字段词汇表。

常见问题

什么是护照 OCR?

护照 OCR 是指通过照片或扫描件,由机器读取护照的资料页。它分为两部分。机读区(MRZ)是页面底部两行各 44 个字符的内容,使用专为机器读取设计的字体印刷,并由校验位保护。视读区是为人印刷的所有内容:同样的姓名、号码和日期,再加上机读区不包含的信息,例如出生地、签发机关和人像。只读第一部分更容易,但得到的信息更少;两部分都读,就可以对二者进行比较。

有免费的护照 OCR API 吗?

有,但有限制。我们在文档中公布了一个沙箱密钥,无需账户、无需银行卡,每个 IP 地址即可执行 10 次真实识别;注册后再增加 20 个点数 – 也就是在任何付费之前共有 30 份证件。离线方面,开源的 PassportEye 库配合 tesseract 可以在您自己的机器上免费读取机读区;它不读取印刷面,而且对手机拍摄照片的准确度完全取决于您自己的图像预处理。在这一领域,“大用量永久免费”这种事谁都做不到,我们也不例外。

护照 OCR API 要多少钱?

在这里,每份证件 $0.01,统一价格,不分用量,识别失败则不收费。其他地方公布的标价使用的计费单位各不相同 – 有些厂商按页计费,而我们按证件计费 – 所以在比较数字之前,请先换算到同一单位。各家的价格都取自厂商自己的页面并附有链接,列在对比页面上。

你们会存储护照图像吗?

不会。图像从不写入磁盘;它只在请求期间存在于内存中,响应发出后即消失。使用沙箱密钥时结果也不会存储。使用 live 密钥时,结果按您传入的 retain_hours 保留;未传入时按账户的保留期限设置保留 – 在您更改之前为一年(8760 小时)– retain_hours: 0 则什么都不保留。这里没有任何证件存储库,这就是“您用户的护照会怎样”这个问题的简短答案。

如果照片无法读取会怎样?

您会收到响应,并且不会被收费。响应中带有 meta.status(找到了证件但无法读取时为 unreadable,画面中没有任何形似证件的物体时为 no_document_found),且 meta.billed 为 false。quality 分组给出对图像本身的结论。请重新拍摄,避免机读区上出现反光,让资料页填满画面,并让机读区保持在大约 300 DPI 以上。