← Home

结构化数据提取 API

/ocr.json 端点从图像或文档中提取指定字段。

该端点返回带类型的 JSON。使用 fields 查询参数选择响应中的值。

端点

POST https://api.ocrskill.com/ocr.json

每个请求都需要 Bearer 令牌。

Authorization: Bearer sk-your-key-here

使用此命令获取免费 API 密钥。

curl https://api.ocrskill.com/get-key.json

快速开始

将字段名添加到 fields,然后上传文件。

curl "https://api.ocrskill.com/ocr.json?fields=last_name,first_name,nationality,birthdate" \
  -H "Authorization: Bearer sk-your-key-here" \
  -F "file=@identity-card.pdf"

该端点返回以下 JSON。

{
  "last_name": "MUSTERMANN",
  "first_name": "ERIKA",
  "nationality": "DEUTSCH",
  "birthdate": "1964-08-12"
}

发送文件

该端点接受 multipart 上传、原始文件和 JSON 数据 URI。

文件大小上限为 20 MB。

Multipart 上传

通过 fileimagedocumentdata 表单字段发送文件。

curl "https://api.ocrskill.com/ocr.json?fields=thumbnail_hook_text,video_title,video_channel" \
  -H "Authorization: Bearer sk-your-key-here" \
  -F "file=@thumbnail.jpg"

原始二进制上传

使用正确的 Content-Type 发送文件字节。

curl "https://api.ocrskill.com/ocr.json?fields=company_name,invoice_date" \
  -H "Authorization: Bearer sk-your-key-here" \
  -H "Content-Type: application/pdf" \
  --data-binary "@invoice.pdf"

包含数据 URI 的 JSON 正文

发送一个 JSON 对象,并在 document_url 中提供数据 URI(与 Mistral API 类似且兼容)。

curl "https://api.ocrskill.com/ocr.json?fields=title,publish_date" \
  -H "Authorization: Bearer sk-your-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "document_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
  }'

支持的文件类型

该端点支持以下图像类型:

  • PNG
  • JPEG
  • WebP
  • GIF
  • BMP
  • TIFF

该端点还支持以下文档类型:

  • PDF
  • Microsoft Word(DOCDOCX
  • Microsoft Excel(XLSXLSX
  • Microsoft PowerPoint(PPTPPTX
  • OpenDocument 文本、电子表格和演示文稿文件(ODTODSODP
  • RTF
  • CSV

选择字段

fields 参数包含以逗号分隔的字段名列表。

必填字段

没有后缀的字段名需要一个值。如果该端点找不到此值,则返回 400

?fields=last_name,first_name,birthdate

可选字段

添加 ? 可将字段设为可选。如果该端点找不到可选字段,则响应中不包含该字段。

?fields=last_name,first_name,birthdate?,nationality?

使用发现模式

省略 fields 可使用发现模式。在此模式下,该端点将所有支持的字段视为可选字段。

响应仅包含该端点找到的字段。

curl "https://api.ocrskill.com/ocr.json" \
  -H "Authorization: Bearer sk-your-key-here" \
  -F "file=@report.docx"

处理错误

情况 状态码 说明
fields 中存在未知字段名 400 错误信息会指出不支持的字段。
字段名为空 400 删除空值和末尾逗号。
字段名重复 400 每个字段只列出一次。
缺少必填字段 400 错误信息包含提取详情和提取出的 input_text
Bearer 令牌缺失或无效 401 发送 Authorization: Bearer sk-...
文件类型不受支持或未知 400 发送一种受支持的文件类型。

该端点将日期字段格式化为 YYYY-MM-DD。它会删除字符串值开头和结尾的空格。

该端点拒绝字面字符串 "null"

支持的字段

一个请求可以选择以下字段名的任意组合。

人员

字段 类型 说明
last_name string 姓氏。
first_name string 名字。
birthdate date 出生日期(YYYY-MM-DD)。
sex_gender string 生理性别或社会性别。

地址

字段 类型 说明
street_name string 邮政地址中的街道名称。
street_number string 街道、建筑物或门牌号。
address_rest string 街区、入口、楼层、公寓或邮政信箱。
town_or_city string 城镇、城市、市镇或地区。
county string 县、区或行政区划。
judet string 罗马尼亚 judet 或同等的县级行政区划。
region string 地区、省、州或更大的区域。
country string 国家名称。

身份证

字段 类型 说明
nationality string 国籍。
cnp string 个人身份号码(Cod numeric personal)。
id_card_series_number string 身份证系列号或号码。
expiration_date date 身份证到期日期(YYYY-MM-DD)。
issue_date date 身份证签发日期(YYYY-MM-DD)。
id_card_issuer string 身份证签发机构名称。
id_card_birth_place string 身份证上注明的出生地。

车辆登记

字段 类型 说明
certificate_id string 登记证书号码或系列号。
license_plate string A:车辆登记号码或车牌号。
first_registration_date date B:首次登记日期(YYYY-MM-DD)。
holder_last_name string C.1.1:持有人的姓氏。
holder_company string C.1.1:持有人的公司名称。
holder_first_name string C.1.2:持有人的名字。
holder_full_address string C.1.3:持有人的完整地址或总部地址。
owner_last_name string C.2.1:所有人的姓氏。
owner_company string C.2.1:所有人的公司名称。
owner_first_name string C.2.2:所有人的名字。
owner_full_address string C.2.3:所有人的完整地址或总部地址。
vehicle_brand string D.1:车辆制造商或品牌。
vehicle_model string D.2:类型、变体、版本或型号。
vehicle_commercial_summary string D.3:商业描述或型号摘要。
vehicle_identification_number string E:VIN 或底盘号。
max_technical_weight string F.1:技术许可最大载重质量。
vehicle_mass string G:车辆使用状态下的质量。
registration_valid_until date H:登记有效期结束日期(YYYY-MM-DD)。
registration_date date I:登记日期(YYYY-MM-DD)。
certificate_issue_date date I.1:证书签发日期(YYYY-MM-DD)。
vehicle_category string J:车辆类别。
type_approval_number string K:型式认证号码。
engine_capacity string P.1:发动机气缸排量。
engine_power string P.2:发动机最大净功率。
fuel_type string P.3:燃料类型或动力来源。
power_to_weight_ratio string Q:功率质量比(如有)。
vehicle_color string R:车辆颜色。
seats string S.1:座位数,包括驾驶员座位。
standing_places string S.2:站立位置数(如有)。
vehicle_identification_series string Y:车辆识别证书的系列号。
certificate_issuer string Z:证书签发机构名称。
last_itp_date date 最近一次定期技术检验日期(YYYY-MM-DD)。

公司、发票和收据

字段 类型 说明
company_name string 公司、组织或法律实体名称。
buyer_name string 买方名称。
seller_name string 卖方名称。
total_amount number 已开票或已支付的总金额。
invoice_date date 发票开具日期。
receipt_date date 收据开具日期。

书面作品

字段 类型 说明
title string 文章标题。
sub_title string 文章副标题。
article_abstract string 文章摘要或概要部分。
article_body string 文章正文内容。
publish_date date 内容发布日期(YYYY-MM-DD)。
article_tags string 内容标签,以逗号分隔。
tags string 内容标签,以逗号分隔。
concise_summary string 内容的简明摘要。如果原文没有摘要,则重新编写。

事件

字段 类型 说明
event_name string 事件名称或标题。
event_venue string 事件场地、地点或多个场地。
event_dates string 文本形式的事件日期或时间段。
event_date date 事件日期或不完整日期(YYYY-MM-DD)。

视频缩略图

字段 类型 说明
thumbnail_hook_text string 视频或短片中原样显示的吸引语。
video_title string 视频或短片标题。
video_channel string 创作者频道名称。
video_length_str string 视频或短片时长,与原文完全一致。
date_posted_str string 发布日期,与原文完全一致。

提取为 Markdown,而不是结构化 JSON

如果需要 Markdown 而不是结构化字段,请使用 /ocr 端点。它接受相同的文件类型。

curl https://api.ocrskill.com/ocr \
  -H "Authorization: Bearer sk-your-key-here" \
  -F "file=@example.pdf"

常见问题

结构化数据是什么?

结构化数据使用指定字段和一致的类型。/ocr.json 端点返回应用程序可以直接读取的字符串、数字和日期。

这是 Google 结构化数据或 schema.org 标记吗?

不是。Google 结构化数据向搜索引擎描述网页。它在网页中使用 JSON-LD 或微数据。

OCRskill 从文件中提取带类型的 JSON。应用程序可以存储或处理此 JSON。

输出是否有 JSON schema?

有。OCRskill 根据请求的 fields 创建响应 schema。

日期字段使用 YYYY-MM-DD。本参考中的每个字段都映射到一个带类型的 JSON 属性。

可以将 PDF 转换为 JSON、将图像转换为 PDF 或将 PDF 转换为图像吗?

可以将 PDF 直接发送到 /ocr.json。无需将 PDF 页面转换为图像。

OCRskill 不会将图像转换为 PDF,也不会将 PDF 转换为图像。

如何从图像中提取文本(图像转文本)?

调用 /ocr 提取 Markdown。调用带 fields/ocr.json 提取指定值。

可以将图像转换为提示词(图像转提示词)吗?

调用 /ocr 提取用于提示词的 Markdown。如果提示词只需特定值,请使用 /ocr.json

提取为什么失败?

该端点无法完成提取时会返回 400。请阅读错误信息以了解原因。

常见原因包括缺少必填字段、字段未知、字段重复或文件类型不受支持。

错误信息还包含 input_text。使用此值检查结构化提取失败前 OCRskill 提取的文本。

可以将 OCRskill 与 Claude 一起使用吗?

可以。使用 OCRskill 提取 Markdown 或 JSON,然后将结果发送给 Claude。