护照与身份证 OCR API – 一次 HTTP 调用,每份证件 1¢
doc.cheap 是一款护照与身份证 OCR API,只需一次 HTTP 请求,就能把旅行证件的照片转换为结构化 JSON。发送一张图像,同一个响应中就会返回解析后的机读区(MRZ)、经过验证的 ICAO 9303 校验位,以及从视读区提取的字段;无需轮询队列,也无需安装 SDK。首次成功调用用时不到 60 秒,而且无需注册:下方示例中已经带有公开的沙箱密钥。每份成功识别的证件收费 1¢,从第一份到第一千万份都是同一个价格;如果扫描什么也没找到,则分文不收。
- ✓ 一次同步调用
- ✓ 60 秒完成首次调用
- ✓ 无需注册即可开始
- ✓ 扁平 JSON,无需解析
一段装饰性动画:地球的各大洲由机读区字符绘制而成,地球旋转后展开为一张平面地图。动画下方会逐字打出本站通篇使用的样例护照的机读区。
立即试用 – 无需账户,无需银行卡,没有试用期
上传一张证件图像,识别出的字段就会显示在屏幕上。演示使用公开的沙箱密钥处理您自己的图像 – 这是一次真实的识别,免费且无需账户 – 旁边显示的请求与之完全相同,可以直接粘贴到终端中运行。当您想在自己的代码中使用时,首次识别指南(英文)会带您继续。
立即试用 – 无需账户
拖入一张护照或身份证图像,识别会立即开始。图像会先在您的浏览器中缩放,再发送到公开沙箱;图像从不存储。
同样的调用,在您的终端中
curl -X POST https://api.doc.cheap/v1/scans \
-H "Authorization: Bearer sk_sandbox_public" \
-H "Content-Type: application/json" \
-d "{\"image\": \"$(base64 < document.jpg | tr -d '\n')\"}" 选好图像后,识别结果会立刻显示在下方:每个字段,按读出时的每种语言分别列出,机读区则逐位完成校验。
返回内容:每个字段,均经交叉核验
一个响应就包含完整的读取结果。机读区依据 ICAO 9303 逐位校验,并以一个统一的结论返回,同时附上读取所依据的各行原文;页面上印刷的每个字段都会映射到一个固定的名称返回,按读出时的每种语言各返回一次。每个字段都标明各自的置信度。识别护照一文完整讲解了这次调用,字段浏览器则列出了每个键及其类型。
meta
这次扫描是什么、结果如何:它的 id、状态、是否扣除了点数,以及时间花在了哪里。
schema_version · id · status · billed · confidence · timing · created_at · reference
document
识别出的证件类型、签发国家、证件号码和日期,以及是否已过期。没有识别出任何内容时为 null。
kind · country · country_name · issuing_state · type_name · type_confidence · number · series · issue_date · expiry_date · is_expired · days_remaining
holder
证件所标识的持有人。没有识别出任何内容时为 null。
given_names · surname · full_name · birth_date · sex · nationality
fields[]
从印刷页面上读出的每个字段,映射到一个固定的名称。每次读取对应一个条目,各自带有语言和置信度等级。
id · name · label · category · value · language · confidence
mrz
机读区:是否通过校验的结论、未通过时的原因,以及与读取时完全一致的各行原文。
status · reason · lines · text
images
从您发送的图片中裁剪出的图像,每张都是一个 data URL。
document_crop · rear · main_photo · signature · watermark_face · barcode · chip
quality
您发送的图片质量是否足以进行识别。
overall
authenticity
真伪验证。在仅识别的调用中不会运行,响应中会将其标记为未检查。
overall · checks
一个样例机读区,以及解析器如何处理它
持有人是虚构的,号码是虚构的,校验位根据这些号码计算得出。把它粘贴到MRZ 解析器中,即可在您自己的浏览器里看到每一位重新计算的过程;也可以了解 TD1、TD2 和 TD3 之间的区别。
P<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<<
AM73045184GRC9403084F3203101PN48291630<<<<72价格:每份证件 1¢ – 而且只在识别成功时收费
doc.cheap 与同类产品对比
以下是公开标价,每一项都取自该厂商自己的价格页面,并附有链接。无法从公开页面读到价格的厂商不列入表中,而不是去估算:只要有一个无法核实的数字,整张表就失去了价值。完整对比还列出了扫描失败的费用、哪些服务无需账户即可调用,以及每家在哪些方面比我们做得更好。
| 服务商 | 公开价格 | 免费起步 |
|---|---|---|
| doc.cheap | 每份证件 $0.01,任何用量统一价格 | 公开沙箱,无需注册 |
| AWS Textract – Analyze ID | 每月 100,000 页以内每页 $0.025;超出部分每页 $0.01(us-west-2) 来源 | 前三个月每月 100 页 |
| Google Document AI | 每份证件 $0.10(美国护照解析器);$0.10(驾驶证) 来源 | – |
| Mindee | 额外点数 "starting from $0.05",另加 20 % 的超额使用费 来源 | – |
| doc.cheap | $0 – 没有找到证件的扫描不收费,响应中的 billed 标志也会如实说明。 |
|---|---|
| 以上三家 | 它们的价格页面上均未公布任何例外情况。 |
我们在物理上不存储您的证件
您上传的图像只在请求期间保存在内存中,从不写入磁盘。保留下来的是结果 – 识别结论和提取出的字段,绝不包含证件的图像 – 保留多久由您决定:一年、一个月、一周、一天,或者完全不保留。
面向 AI 智能体的护照 OCR:MCP 服务器
需要读取护照的智能体,不必再为它专门编写 HTTP 客户端。doc.cheap 提供一个 Model Context Protocol 服务器,助手可以把识别当作工具来调用:交给它一张图像,就能拿回同样的结构化字段。与 API 使用同一个密钥、同一个价格、同一种响应结构 – 并不是另一个独立的产品。
开发者常问的问题
护照上的 OCR 是什么?
光学字符识别(OCR)从证件照片上读取印刷字符,并将其转换为文本。护照上有两部分需要读取:页面底部机读区的两行字符,使用专为机器读取设计的字体印刷;以及其上方的视读区,它是普通的印刷文字,每个签发机构的排版都不相同。
MRZ 是什么?
机读区(MRZ)是护照或身份证底部由若干固定宽度的行组成的区块,由 ICAO Doc 9303 标准化。它在固定位置编码了证件号码、签发国、姓名、国籍、出生日期、性别和有效期,并附有用于验证读取结果的校验位。
ICAO Doc 9303 是什么?
ICAO Doc 9303《机读旅行证件》(Machine Readable Travel Documents)是所有护照和机读身份证件都遵循的规范。它分为若干部分发布:第 3 部分是所有机读旅行证件通用的规范,第 4、5、6 部分分别规定了 TD3 护照、TD1 卡和 TD2 卡。正因为有它,任何地方签发的护照都能被任何地方制造的阅读器读取。
护照 OCR API 会出错吗?
任何对照片的读取都可能出错,所以返回结果的设计目标是可供核查,而不是让您盲目相信。每个机读区都会用它自己的 ICAO 9303 校验位进行验证,验证结论就在响应中;每个字段都带有置信度等级;当机读区与视读区不一致时,两种读取结果都会返回,而不是悄悄地只取其一。
你们会存储我的数据吗?
上传的图像只在请求期间保存在内存中,从不写入磁盘。可以保留的是结果 – 识别结论和提取出的字段 – 保留期限由您按账户或按请求设定,从一年到零;设为零则完全不写入任何内容。
有免费试用或演示版本吗?
没有需要报名的试用,因为一开始根本不需要报名任何东西。文档和本页示例中都印有公开的沙箱密钥,它执行的是真实的识别。注册后,您的余额中会获得免费证件额度;此后您为余额充值,每识别一份证件扣除一个点数。
能检测伪造或篡改的证件吗?
不能,而且响应会明确说明这一点,而不是保持沉默:真伪字段的值为 not_checked。本服务执行的是识别,而识别不等于鉴真 – 这里没有任何环节检查证件的防伪特征。校验位通过只能证明机读区内部自洽,而制作伪证的人同样能做到这一点;校验位能发现的是污损、反光和误读。
用于证件处理的 MCP 服务器是什么?
Model Context Protocol 是 AI 助手调用工具的标准。用于证件处理的 MCP 服务器把识别功能作为助手可以调用的工具提供出来,这样智能体就能把护照图像交给它并拿回结构化字段,而无需任何人编写 HTTP 代码。doc.cheap 就提供了这样一个服务器,它与 API 使用同一个密钥、同一个价格。