首次分析
无需账户即可尝试 PDF 分析。添加令牌以使用账户额度并保存结果。
/api/v1/pdf/analyzecurl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
-H "Accept: application/json" \
-F "file=@document.pdf"
复制失败。请选中代码并手动复制。
- 身份验证
- 可选
- 上传上限
- 50 MB
- 基础URL
- https://pdfcheck.online/api/v1
身份验证
PDF 分析可不使用令牌。账户信息、已保存的分析和令牌管理需要 Bearer 令牌。
请将令牌作为机密信息管理。使用环境变量,并在账户中撤销不再使用的令牌。 管理API令牌
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
-H "Accept: application/json" \
-H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
-F "file=@document.pdf"
复制失败。请选中代码并手动复制。
用量与限制
无账户:每个 IP 地址每天可分析 10 次。Free:每天 100 次。Pro 和 AI:无每日上限。处理端点还设有每分钟 30 次请求的限制。分析响应包含剩余检查次数。
| 访问权限 | 每日分析次数 | 上传上限 |
|---|---|---|
| 无需令牌 | 10 | 50 MB |
| Free | 100 | 50 MB |
| Pro / AI | 无每日上限 | 100 MB |
处理端点还设有每分钟最多 30 次请求的限制。429 响应可能表示已达到每日或每分钟上限。
POST/pdf/analyze
上传并分析PDF文件。返回从PDF中提取的详细元数据。
| 名称 | 类型 | 描述 |
|---|---|---|
file | multipart/form-data | 必填. 待分析的 PDF 文件:匿名用户和 Free 套餐最多 50 MB;Pro 和 AI 套餐最多 100 MB。 |
响应示例;数值因文档而异。
{
"success": true,
"data": {
"id": "example-analysis-token",
"view_key": "example-view-key",
"filename": "document.pdf",
"file_size": 1048576,
"file_size_formatted": "1.00 MB",
"metadata": {
"basic": {
"pages": 10,
"pdf_version": "1.7",
"analysis_mode": "lightweight",
"partial_analysis": true
},
"document": {
"title": "Example document",
"author": "Example author",
"creator": "Microsoft Word",
"producer": "Adobe PDF Library"
}
},
"analyzed_at": "2026-09-29T12:00:00+00:00"
},
"remaining_checks": 9
}
复制失败。请选中代码并手动复制。
API 元数据分析采用有处理范围限制的轻量模式。会跳过详细的字体、图像和颜色分析;metadata.basic.partial_analysis 为 true。
元数据和软件特征不能证明作者身份、真实性或标准合规性。
上传文件的数据会在处理后删除;分析结果和元数据可能保留。请参阅隐私政策。 隐私政策
GET/user
获取已验证用户的信息,包括每日使用限额。
需要令牌. 响应示例;数值因文档而异。
{
"success": true,
"data": {
"name": "Example user",
"email": "user@example.com",
"daily_limit": 100,
"remaining_checks": 99,
"checks_used_today": 1
}
}
复制失败。请选中代码并手动复制。
GET/pdf
列出已验证用户的所有PDF分析记录,支持分页。
需要令牌
| 查询参数 | 默认值 | 描述 |
|---|---|---|
per_page | 20 | 每页结果数(1-100) |
page | 1 | integer |
{
"success": true,
"data": [
{
"id": "example-analysis-token",
"filename": "document.pdf",
"file_size": 1048576,
"file_size_formatted": "1.00 MB",
"analyzed_at": "2026-09-29T12:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 1
}
}
复制失败。请选中代码并手动复制。
GET/pdf/{token}
通过分析ID(共享令牌)获取详细的分析结果。
需要令牌
curl https://pdfcheck.online/api/v1/pdf/example-analysis-token \
-H "Accept: application/json" \
-H "Authorization: Bearer $PDFCHECK_API_TOKEN"
复制失败。请选中代码并手动复制。
端点参考
POST/pdf/extract-text
从 PDF 提取文本。通过 pdf 字段发送文件;此端点的上传上限为 50 MB,并返回 data.pages。
curl -X POST https://pdfcheck.online/api/v1/pdf/extract-text \
-H "Accept: application/json" \
-F "pdf=@document.pdf"
复制失败。请选中代码并手动复制。
POST/pdf/to-markdown
将 PDF 转换为 Markdown。通过 pdf 字段发送文件(上限 50 MB)。独立额度:匿名用户和 Free 套餐每天可转换 10 次;Pro 和 AI 套餐每天可转换 100 次。扫描页面可能使用外部 AI OCR。 响应包含 remaining_conversions。
curl -X POST https://pdfcheck.online/api/v1/pdf/to-markdown \
-H "Accept: application/json" \
-F "pdf=@document.pdf"
复制失败。请选中代码并手动复制。
令牌管理
通过 API 创建令牌需要已有令牌。请在账户中创建首个令牌。 管理API令牌
| 端点 | 描述 |
|---|---|
GET /tokens | 列出已验证用户的所有API令牌。 |
POST /tokens | 创建新的API令牌。令牌仅在响应中显示一次。 name: string (max: 255) |
DELETE /tokens/{tokenId} | 永久撤销(删除)API令牌。 |
curl -X POST https://pdfcheck.online/api/v1/tokens \
-H "Accept: application/json" \
-H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"My integration"}'
复制失败。请选中代码并手动复制。
错误代码
| HTTP代码 | 错误代码 | 描述 |
|---|---|---|
| 401 | Unauthenticated. | 无效或缺少API令牌 |
| 404 | not_found | 资源未找到或访问被拒绝 |
| 422 | message / errorscorrupted_pdfpassword_protectedanalysis_failed | 无效请求或 PDF 处理失败,例如不支持的文件、上传过大、PDF 损坏或密码保护 |
| 429 | daily_limit_exceededmessage | 已超出每日或每分钟上限,请在对应额度重置后重试 |
代码示例
从 data.metadata.basic.pages 读取结果。所有响应片段均为示例。
Node.js 20 或更高版本;使用原生 fetch、FormData 和 Blob。
import { readFile } from 'node:fs/promises';
const form = new FormData();
form.append('file', new Blob([await readFile('document.pdf')], {
type: 'application/pdf'
}), 'document.pdf');
const headers = { Accept: 'application/json' };
if (process.env.PDFCHECK_API_TOKEN) {
headers.Authorization = `Bearer ${process.env.PDFCHECK_API_TOKEN}`;
}
const response = await fetch('https://pdfcheck.online/api/v1/pdf/analyze', {
method: 'POST', headers, body: form
});
const result = await response.json();
if (!response.ok || !result.success) throw new Error(JSON.stringify(result));
console.log(result.data.metadata.basic.pages);
console.log(result.remaining_checks);
复制失败。请选中代码并手动复制。
Python (requests)
import os
import requests
headers = {'Accept': 'application/json'}
if os.getenv('PDFCHECK_API_TOKEN'):
headers['Authorization'] = f"Bearer {os.environ['PDFCHECK_API_TOKEN']}"
with open('document.pdf', 'rb') as pdf:
response = requests.post(
'https://pdfcheck.online/api/v1/pdf/analyze',
headers=headers,
files={'file': ('document.pdf', pdf, 'application/pdf')},
timeout=120,
)
response.raise_for_status()
result = response.json()
print(result['data']['metadata']['basic']['pages'])
print(result['remaining_checks'])
复制失败。请选中代码并手动复制。
PHP (cURL)
<?php
$headers = ['Accept: application/json'];
if ($token = getenv('PDFCHECK_API_TOKEN')) {
$headers[] = 'Authorization: Bearer ' . $token;
}
$curl = curl_init('https://pdfcheck.online/api/v1/pdf/analyze');
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => ['file' => new CURLFile('document.pdf', 'application/pdf')],
]);
$body = curl_exec($curl);
if ($body === false) throw new RuntimeException(curl_error($curl));
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$result = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if ($status >= 400 || !($result['success'] ?? false)) {
throw new RuntimeException($body);
}
echo $result['data']['metadata']['basic']['pages'];
复制失败。请选中代码并手动复制。