PDF to MD

通过 API,把 PDF 转成 Markdown。

在应用或批量工作台中使用同一转换服务,通过产品 API Key 安全接入。

Personal、Developer、Team 和 Enterprise 均包含 API、CLI、MCP 和批量提交,各入口共用套餐页数额度。

curl https://pdftomd.cc/api/v1/convert \
  -H "Authorization: Bearer $PDFTOMD_API_KEY" \
  -H "Idempotency-Key: example-conversion-0001" \
  -F "file=@document.pdf;type=application/pdf" \
  -F "keepImages=true"

在终端或 AI Agent 中使用 PDF to MD。

CLI 和 MCP 客户端复用同一转换 API、任务记录和账户页数额度。

Personal、Developer、Team 和 Enterprise 均包含 API、CLI、MCP 和批量提交,各入口共用套餐页数额度。

安装客户端

需要 Node.js 20+。安装可下载的客户端包,再设置服务地址和产品 API Key。

npm install --global https://pdftomd.cc/downloads/pdftomd-client-0.1.0.tgz
下载 CLI + MCP 安装包(.tgz)
export PDFTOMD_BASE_URL="https://pdftomd.cc"
# 请在终端或密钥管理工具中设置 PDFTOMD_API_KEY。
pdftomd usage
pdftomd convert document.pdf \
  --output document.md \
  --idempotency-key document-request-0001
pdftomd batch first.pdf second.pdf \
  --idempotency-key batch-request-000001

命令返回便于脚本处理的 JSON;错误和自动生成的请求 ID 输出到 stderr。导出不覆盖已有文件,上传中断后请使用相同请求 ID 和文件重试。

pdf_to_md_convert提交一个 PDF 并返回任务 ID。
pdf_to_md_batch提交最多 10 个 PDF,返回逐文件处理记录。
pdf_to_md_get_job查询状态及分页 Markdown,每次最多 20,000 字符。
pdf_to_md_get_batch查询批次中每个文件的状态。
pdf_to_md_usage查询余额、月度用量与套餐权限。

可供 Agent 读取的接入资料: llms.txt / OpenAPI

接口列表

POST/api/v1/convert提交一个 PDF,返回 HTTP 202 和任务 ID。
POST/api/v1/batches用重复的 files 字段提交最多 10 个 PDF,返回各文件处理记录。
GET/api/v1/jobs/{id}查询任务状态及已完成的 Markdown 结果。
GET/api/v1/batches/{id}查询批次内各文件状态,通过任务接口读取结果。
GET/api/v1/usage查询剩余额度及 UTC 当月转换用量。

提交、轮询、读取结果

将密钥设置到 PDFTOMD_API_KEY 环境变量并仅在服务端使用。提交后每 5 秒查询任务或批次,直到状态为 success 或 failed。/api/v1 接口仅接受 API Key,不使用浏览器登录 Cookie。

# 提交响应示例,并非真实转换结果
{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "pdf_…",
    "status": "pending",
    "fileName": "document.pdf",
    "pages": 12,
    "quality": null
  }
}

curl https://pdftomd.cc/api/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $PDFTOMD_API_KEY"

成功任务返回 result.markdown、result.pages、result.images(文件名与 Base64 数据);失败任务返回错误码。批次响应不包含完整结果,请按任务分别读取。当前版本尚不提供向客户地址推送的 Webhook。

上传和请求限制

仅支持 PDF。单文件最多 10 MB、200 页;每批最多 10 个文件、合计 25 MB。整批文件先校验再提交。同一账户、同一接口写请求至少间隔 2 秒,读请求至少间隔 0.5 秒;HTTP 429 包含 Retry-After。

重试与幂等处理

Idempotency-Key 使用 16-80 位字母、数字、下划线或连字符。网络中断后,使用相同文件、顺序、选项及密钥重试;内容不同返回 HTTP 409。批次可能部分提交,相同请求重试会尝试补交缺失文件;已失败任务需使用新密钥。

错误与计费

响应包含 code、message、data,code 为 0 表示成功。HTTP 401:密钥无效;402:额度不足;403:需有效付费套餐或 API 已关闭;404:任务不存在;409:幂等冲突;413:上传过大;429:频率限制;503:引擎未配置。标准转换每页 1 点,提交时预占,失败退回。

解析质量

上游质量评分用于辅助复核,不代表经过实测的识别准确率。引擎没有返回评分时,明确显示为未提供。 未提供评分时 API 返回 quality: null;真实评分格式为 score, scale: 5, source: "provider" 。当前版本尚不包含字词置信度和原文错误标注。