PDF 文档解析 API 接口

PDF 文档解析 API 接口

由万码云开发平台提供的 PDF 文档解析 API 接口(PDF Parsing API),支持解析 PDF 文档中的文本、链接等多种内容,提供灵活的参数配置以满足多样化的需求。接口设计简洁,易于集成和调用,适用于文档管理、数据提取、信息分析等多个应用场景,帮助开发者快速实现 PDF 文件解析相关功能。

接口地址(免费版,文件大小不超过 2 MB)

POST https://wcode.net/api/parse/v3/pdf/free

注:免费版接口限制并发为 12 QPM(Query Per Minute,每分钟处理请求数),且文件大小不超过 2 MB

接口地址(付费版,文件大小不超过 32 MB)

POST https://wcode.net/api/parse/v3/pdf

付费版价格:0.01 元 / 500 字符(即解析 50000 字符的费用为 1 元),费用充值:https://wcode.net/apikey-recharge,费用发票:https://wcode.net/get-fapiao

字符数的计算:包含单字节字符、多字节字符、标点符号等,具体以下方接口响应示例为准。

字符数的计费:总字符数如果不足 500 字符,以 500 字符计费(即 0.01 元)。

请求方法

POST

快速开始(请求示例)

(注:以下请求示例中的 API_KEY 需要替换后再发起请求。 获取 API_KEY 入口:https://wcode.net/get-apikey

curl --request POST 'https://wcode.net/api/parse/v3/pdf' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
    "file_url": "https://zdkjdemo.oss-cn-shanghai.aliyuncs.com/parse-pdf-api-demo.pdf"
}'

请求头(Request Headers)

Header 备注 示例 相关链接
Authorization Bearer API_KEY 格式:Bearer + 空格 + API_KEY Bearer sk-..... 获取 API_KEY 入口:https://wcode.net/get-apikey
Content-Type application/json 固定为 application/json

请求参数

参数 必填 参数类型 默认值 说明
file_url string - 要解析的 PDF 文件 URL

注意事项:

  1. file_url 需支持公网访问;
  2. 调用 API 时,接口服务端会向 file_url 发起请求,请求的 User-agent 为:
    Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; WCodeNET/2.1; +https://wcode.net/parse-pdf-api
    请确保此 User-agent 可正常访问 file_url
  3. file_url 对应文件的大小不能超过 32 MB,且不能小于 1 KB;
  4. 服务端下载 file_url 超时时间为 20 秒,超时将会返回失败,请确保 file_url 网络通畅;

返回参数

返回参数 数据类型 说明
status string 请求成功返回success,失败返回failed
error_message string 接口返回的错误消息。当statussuccess时,error_message为空字符串
error_code int 或 null 接口返回的错误码。当statussuccess时,error_codenull
data object 或 null 接口返回的数据。当statusfailed时,datanull
data.markdown string Markdown 格式的解析结果
data.html string HTML 格式的解析结果
data.usage object 本次解析的统计与费用信息
data.usage.total_characters int 本次解析的字符数统计
data.usage.total_cost float 本次解析产生的费用
data.api_version string 当前所使用的 API 的版本,免费版为free,付费版为paid
data.api_docs string 当前所使用的 API 的文档链接

响应头(Response Headers)

Header 说明 示例 相关链接
X-Account-Balance API_KEY 余额(元) 123.0165 API_KEY 费用充值入口:https://wcode.net/apikey-recharge

请求示例

curl --request POST 'https://wcode.net/api/parse/v3/pdf' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
    "file_url": "https://zdkjdemo.oss-cn-shanghai.aliyuncs.com/parse-pdf-api-demo.pdf"
}'

响应示例

{
    "status": "success",
    "error_message": "",
    "error_code": null,
    "data": {
        "markdown": "调用简洁易用的 API,\n\n轻松构建你的下一个创新应用!\n\n<> https://wcode.net </>\n\n万码云开发平台提供易用、高效的 API 接口,助力开发者专注核心业务创新。无需繁琐\n\n编程,开发者即可通过简单的调用完成强大的功能,节省开发时间,加速项目落地,实\n\n现快速部署。\n\n灵活的 API 调用与集成\n\n支持与各种系统和应用无缝集成,开发者可以轻松构建定制化的解决方案,解决不同业\n\n务场景下的问题。\n\n清晰的文档与代码示例\n\n清晰的文档与代码示例,帮助开发者快速上手,高效投入业务系统开发。\n\n由开发者社区驱动\n\n立足开发者社区,所有 API 的更新和优化都基于社区的反馈,我们期待每一位开发者的\n\n声音。\n\n开放,共享,赋能开发者\n\n为开发者提供强大的 API 支持,让每个创意都能在这里轻松实现构建、升级和优化。\n\n\n",
        "html": "<p>调用简洁易用的 API,</p>\n<p>轻松构建你的下一个创新应用!</p>\n<p>&lt;&gt; <a href=\"https://wcode.net\">https://wcode.net</a> &lt;/&gt;</p>\n<p>万码云开发平台提供易用、高效的 API 接口,助力开发者专注核心业务创新。无需繁琐</p>\n<p>编程,开发者即可通过简单的调用完成强大的功能,节省开发时间,加速项目落地,实</p>\n<p>现快速部署。</p>\n<p>灵活的 API 调用与集成</p>\n<p>支持与各种系统和应用无缝集成,开发者可以轻松构建定制化的解决方案,解决不同业</p>\n<p>务场景下的问题。</p>\n<p>清晰的文档与代码示例</p>\n<p>清晰的文档与代码示例,帮助开发者快速上手,高效投入业务系统开发。</p>\n<p>由开发者社区驱动</p>\n<p>立足开发者社区,所有 API 的更新和优化都基于社区的反馈,我们期待每一位开发者的</p>\n<p>声音。</p>\n<p>开放,共享,赋能开发者</p>\n<p>为开发者提供强大的 API 支持,让每个创意都能在这里轻松实现构建、升级和优化。</p>\n",
        "usage": {
            "total_characters": 328,
            "total_cost": 0.01,
            "total_cost_currency": "CNY",
            "total_cost_currency_symbol": "¥"
        },
        "api_version": "paid",
        "api_docs": "https://wcode.net/parse-pdf-api"
    }
}



Python 代码示例(Requests)

import requests
import json

url = "https://wcode.net/api/parse/v3/pdf"

payload = json.dumps({
  "file_url": "https://zdkjdemo.oss-cn-shanghai.aliyuncs.com/parse-pdf-api-demo.pdf"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer API_KEY'     # TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Java 代码示例(OkHttp)

OkHttpClient client = new OkHttpClient().newBuilder().build();

MediaType mediaType = MediaType.parse("application/json");

RequestBody body = RequestBody.create(mediaType, "{\"file_url\": \"https://zdkjdemo.oss-cn-shanghai.aliyuncs.com/parse-pdf-api-demo.pdf\"}");

Request request = new Request.Builder()
  .url("https://wcode.net/api/parse/v3/pdf")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer API_KEY")     // TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
  .build();

Response response = client.newCall(request).execute();

PHP 代码示例(Guzzle)

<?php

$client = new Client();

$headers = [
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer API_KEY'     // TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
];

$body = '{
  "file_url": "https://zdkjdemo.oss-cn-shanghai.aliyuncs.com/parse-pdf-api-demo.pdf"
}';

$request = new Request('POST', 'https://wcode.net/api/parse/v3/pdf', $headers, $body);

$res = $client->sendAsync($request)->wait();

echo $res->getBody();

...其他编程语言可参考 curl http 请求示例进行调用


异常响应示例

{
    "status": "failed",
    "error_message": "(HTTP 404 Not Found) Unable to download the file, please check the file url (https://...) and try again later",
    "error_code": 400,
    "data": null
}