跳转到主要内容

API 文档

上传图片识别文字,或把 PDF 逐页渲染成图片。

快速开始

在控制台创建 API 密钥,再把它作为 Bearer 令牌调用接口。

请求方式
POST
内容类型
multipart/form-data

鉴权

请求必须携带 API 密钥。密钥只在创建成功时显示一次,请妥善保存,不要提交到代码仓库或打包进客户端。

Authorization: Bearer 404wl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
创建 API 密钥

PaddleOCR API

POST https://api.404wl.com/v1/ocr

上传一张图片,返回图片中的完整文本和每个文字区域的位置,每张图片消耗 1 页额度。

请求参数

字段 类型 说明
file file 必填。支持 JPEG、PNG、WEBP、BMP、TIFF,单文件最大 10 MiB。

调用示例

cURL

curl --request POST 'https://api.404wl.com/v1/ocr' \
  --header 'Authorization: Bearer 404wl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  --form 'file=@./example.png'

JavaScript

const form = new FormData();
form.append('file', file);

const response = await fetch('https://api.404wl.com/v1/ocr', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
  },
  body: form,
});

const result = await response.json();

PHP

$handle = curl_init('https://api.404wl.com/v1/ocr');
curl_setopt_array($handle, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer 404wl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    ],
    CURLOPT_POSTFIELDS => [
        'file' => new CURLFile(__DIR__.'/example.png'),
    ],
    CURLOPT_RETURNTRANSFER => true,
]);

$result = curl_exec($handle);
curl_close($handle);

响应格式

成功响应的 items 会列出每个识别到的文字区域,box 是原图尺寸上的四点坐标。

{
  "success": true,
  "request_id": "provider-request-id",
  "data": {
    "text": "你好",
    "items": [
      {
        "text": "你好",
        "score": 0.99,
        "box": [[1, 2], [30, 2], [30, 20], [1, 20]]
      }
    ],
    "image": {
      "width": 1280,
      "height": 720
    }
  },
  "error": null
}

成功和失败响应都会返回 request_id;响应头中的 X-Request-ID 可用于联系支持时定位请求。

错误码

错误响应统一返回 success: falserequest_iddata: nullerror

HTTP code 说明
401 UNAUTHENTICATED API 密钥缺失或无效。
402 SUBSCRIPTION_REQUIRED 当前没有可用额度包。
402 QUOTA_EXHAUSTED 当前可用额度已用完。
415 UNSUPPORTED_IMAGE 文件不是受支持的图片格式。
422 INVALID_REQUEST 缺少文件或请求参数无效。
429 RATE_LIMITED 请求超过限流频率。
502 PROVIDER_ERROR
INVALID_PROVIDER_RESPONSE
OCR 服务内部错误,请稍后重试。
503 PROVIDER_UNAVAILABLE OCR 服务暂时不可用,请稍后重试。

PDF 转图片 API

POST https://api.404wl.com/v1/pdf2img

上传一个 PDF,按页返回渲染后的图片,按实际转换的页数消耗额度。

请求参数

字段 类型 说明
file file 必填。PDF 文件,最大 10 MiB。
format string 输出格式:png(默认)、jpegwebp
dpi integer 渲染分辨率,1–300,默认 150。
quality integer 1–100,默认 90,仅 jpegwebp 生效。
pages string 要转换的页,形如 1-3,5,8-10,页码从 1 开始,重复页会去重。不传则转换整个文档。

调用示例

cURL

curl --request POST 'https://api.404wl.com/v1/pdf2img' \
  --header 'Authorization: Bearer 404wl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  --form 'file=@./example.pdf' \
  --form 'format=jpeg' \
  --form 'pages=1-3'

JavaScript

const form = new FormData();
form.append('file', file);
form.append('format', 'jpeg');
form.append('pages', '1-3');

const response = await fetch('https://api.404wl.com/v1/pdf2img', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
  },
  body: form,
});

const result = await response.json();

响应格式

page_count 是文档总页数,converted_pages 是本次实际转换的页数,两者都返回以便核对用量。page 是文件内的原始页码,每页图片以 base64 内嵌。

{
  "success": true,
  "request_id": "provider-request-id",
  "data": {
    "page_count": 12,
    "converted_pages": 3,
    "format": "jpeg",
    "dpi": 150,
    "pages": [
      {
        "page": 1,
        "width": 1240,
        "height": 1755,
        "image_base64": "..."
      }
    ]
  },
  "error": null
}

错误码

错误响应统一返回 success: falserequest_iddata: nullerror

HTTP code 说明
400 EMPTY_FILE 上传的文件为空。
401 UNAUTHENTICATED API 密钥缺失或无效。
402 SUBSCRIPTION_REQUIRED 当前没有可用额度包。
402 QUOTA_EXHAUSTED 当前可用额度已用完。
402 PAGE_SELECTION_REQUIRED 可用额度不足以按整份文档预扣,请用 pages 指定本次要转换的页。
413 FILE_TOO_LARGE PDF 超过上传大小限制。
413 TOO_MANY_PAGES 选中的页数超过单次上限。
413 OUTPUT_TOO_LARGE 输出的图片总量超过单次上限,可降低 dpi 或减少页数。
413 PAGE_TOO_LARGE 单页渲染后的尺寸超过上限,可降低 dpi
415 UNSUPPORTED_FILE 不是可读取的 PDF。
422 INVALID_REQUEST 缺少文件或请求参数无效。
422 PAGE_OUT_OF_RANGE pages 超出文档页数。
422 PASSWORD_REQUIRED PDF 已加密,需要先解除密码保护。
422 UNSUPPORTED_ENCRYPTION PDF 使用了不支持的加密方式。
429 RATE_LIMITED 请求超过限流频率。
502 PROVIDER_ERROR
INVALID_PROVIDER_RESPONSE
PDF 服务内部错误,请稍后重试。
503 PROVIDER_UNAVAILABLE PDF 服务暂时不可用,请稍后重试。

额度与限流

  • OCR 每成功识别一张图片消耗 1 页额度;PDF 转图片按实际转换的页数消耗。
  • 识别或渲染失败、被限流、服务异常都不扣除额度。
  • 你账户下的所有 API 密钥共享同一份额度,两个产品也共用这份额度。
  • OCR 默认每分钟最多 60 次请求,PDF 转图片默认 10 次,超出后返回 429
  • 需要更多额度时,可在控制台购买额度包。