API Reference

OCR API 参考

OCR 端点的完整参考——请求参数、响应结构、代码示例和支持的选项。

端点

POST /api/v1/ocr

所需权限: ocr

请求

请求头

请求头必需说明
Authorization: Bearer <key>是*带有 ocr 权限的 API 密钥
x-api-key: <key>是*Bearer token 的替代方式
Idempotency-Key安全重试键(最长 191 字符,允许字母数字和 ._:-
Content-Typemultipart/form-dataapplication/json

*必须提供其中一个认证请求头。

输入来源(选择一种)

字段类型来源
file二进制通过 multipart 上传文件
image_url字符串 (URI)公开的 HTTP/HTTPS URL
base64字符串Base64 编码的文件内容

使用 base64 时,还需提供 mime_type(如 image/pngapplication/pdf)。

模式

字段类型默认值可选值
mode字符串formattedsimpleformatted
  • simple — 纯文本输出(成本较低,每页 1 积分)
  • formatted — 保留标题、表格、列表、代码块的 Markdown 格式(每页 10 积分)

响应

成功 (200)

{
  "success": true,
  "request_id": "req_abc123...",
  "elapsed_ms": 2340,
  "data": {
    "markdown": "# 发票\n\n| 项目 | 数量 | 价格 |\n|------|------|------|\n...",
    "text": "发票\n项目 数量 价格\n...",
    "pages": [
      {
        "pageNumber": 1,
        "markdown": "# 发票\n\n...",
        "text": "发票\n...",
        "blocks": [
          {
            "type": "heading",
            "markdown": "# 发票",
            "bbox": [72, 100, 540, 130],
            "confidence": 0.98
          }
        ]
      }
    ],
    "usage": {
      "credits": 10,
      "pages": 1,
      "mode": "formatted"
    }
  }
}

响应字段

字段类型说明
success布尔成功时始终为 true
request_id字符串此请求的唯一标识符
elapsed_ms整数处理耗时(毫秒)
data.markdown字符串完整文档 Markdown(所有页面拼接)
data.text字符串文档的纯文本版本
data.pages数组每页结果
data.usage对象计费摘要

Page 对象

字段类型说明
pageNumber整数基于 1 的页码
markdown字符串页面 Markdown 内容
text字符串页面纯文本
blocks数组识别的文本块

Block 对象

字段类型说明
type字符串headingparagraphlisttablecode
markdown字符串Markdown 格式的块内容
bbox[数字][x1, y1, x2, y2] 边界框坐标
confidence数字识别置信度(0–1)

限制

限制项
最大文件大小20 MB
每请求最大页数可配置(默认约 50)
支持的图片格式JPEG、PNG、GIF、WebP、BMP、TIFF
支持的文档格式PDF

代码示例

Python

import requests

response = requests.post(
    "https://image-to-text.org/api/v1/ocr",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
    },
    files={"file": open("document.pdf", "rb")},
    data={"mode": "formatted"},
)

data = response.json()
if data["success"]:
    print(data["data"]["markdown"])

Node.js

const form = new FormData();
form.append("file", fileInput);
form.append("mode", "formatted");

const response = await fetch("https://image-to-text.org/api/v1/ocr", {
  method: "POST",
  headers: { "Authorization": "Bearer YOUR_API_KEY" },
  body: form,
});

const data = await response.json();
console.log(data.data.markdown);