返回可验证数据的 OCR API
一次 REST 调用返回结构化 JSON,每个字段都带边界框、四个顶点和一个匹配分数。Bearer 认证、内置模板、异步任务、签名 Webhook。
大多数 OCR API 只给你一整页文本和一个全页的置信度数字。你还得自己去找发票合计、解析它、再祈祷它落到了正确的位置。space-ocr 的 OCR API 替你完成结构化:用一张图片和一个模板做一次 POST,就拿回带类型的字段 JSON。
在生产里真正起作用的,是每个值附带了什么。每个字段都连同它在页面上被读取的确切框、那个框的四个角,以及一个匹配分数一起返回。所以你的管线不必信模型的一面之词,而是可以把每个值和它在文档上的实际位置对照核验。
一份你可以亲自查看的真实响应
把鼠标悬停在下方任意字段上——发票上的框就是这个值被读取的位置。这是一份真实的解析结果:开票名 ソジュハンザン海物語様、应付金额 ¥84,263、合计 ¥46,752、每一条明细行,全都连同各自的框和匹配分数返回。这里没有任何东西是摆拍的。

Each value with a box carries a verified on-page location — bbox + 4-point vertices + match_ratio — on a 0–1000 normalized grid (0,0 top-left → 1000,1000 bottom-right), the same shape the live API returns. Hover a field to trace it back to the pixels it came from.
space-ocr 里的 OCR API 如何工作
用 Bearer 令牌认证——你的密钥以 spocr_ 开头,基址是 https://api.space-ocr.com。把一张栅格图片以 URL 或 base64 发到 POST /ocr/fields(公开 API 接收图片——JPEG、PNG、GIF、BMP、TIFF、WebP——所以遇到 PDF 就发页面图片)。传一个内置 templateId 或你自己的 fields,就拿回 { status: 'success', data: {...} },每个字段都带值、bbox、vertices 和 match_ratio。
坐标不是模型编出来的。LLM 只返回每个值以及它用到的 word-token id;随后一个字符匹配器把这个值和 Google Vision 在页面上实际检测到的符号对齐,并把覆盖度打成 match_ratio。0.85 及以上是可信匹配,1.0 表示每个字符都在页面上被找到。每个响应还带一个 X-Request-Id 头,错误以 { error: { code, message, requestId } } 返回。
curl -s https://api.space-ocr.com/ocr/fields \
-H "Authorization: Bearer $SPACE_OCR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://example.com/invoice.png",
"imageType": "url",
"templateId": "invoice"
}'import os, requests
resp = requests.post(
"https://api.space-ocr.com/ocr/fields",
headers={"Authorization": f"Bearer {os.environ['SPACE_OCR_API_KEY']}"},
json={
"image": "https://example.com/invoice.png",
"imageType": "url",
"templateId": "invoice",
},
timeout=60,
)
resp.raise_for_status()
for name, field in resp.json()["data"].items():
print(name, field["value"], field["bbox"], field["match_ratio"])如何调用 OCR API
- 获取 API 密钥登录并创建一个密钥——它以 spocr_ 开头。向 https://api.space-ocr.com 的每次请求都以 Authorization: Bearer <key> 发送。
- 发送图片向 POST /ocr/fields 发送 image(一个 URL 或纯 base64)和 imageType。PDF 请发页面图片——API 接收栅格格式(JPEG、PNG、GIF、BMP、TIFF、WebP)。
- 选择模板或字段传一个内置 templateId,比如 'invoice' 或 'receipt',或提供你自己的 fields——明细行表格用带 children 的 array 字段。
- 读取结构化结果你会拿到 { status: 'success', data: {...} },其中每个值都带 bbox、vertices、match_ratio 和 bbox_source。对 match_ratio 设阈值,把低于 0.85 的值标出来。
- 扩展与查询用 POST /upload 把许多图片排队(按文件返回任务,签名 Webhook 或 GET /jobs/{jobId}),再用 GET /view 配合 where、sort、select 读取已存储的表格——无需重跑 OCR,也不额外收费。
简单、可预期的定价
每张图片 $0.05(¥10 / ₩100),含每月 100 次扫描的免费额度,无需信用卡。用 GET /view 重新读取已存储的表格不会重跑 OCR,也不收费。套餐计划增加每月扫描数、更多表格和存储空间。