APIドキュメント
REST APIでPDF分析をアプリケーションに統合
クイックスタート
1
アカウントを作成
無料のPDFCheckアカウントに登録して開始します。
2
APIトークンを生成
APIトークンにアクセスして新しいトークンを作成します。
3
最初のリクエストを送信
トークンを使用してAPIリクエストを認証します。
認証
すべてのAPIリクエストには、AuthorizationヘッダーにBearerトークンによる認証が必要です。
Authorization: Bearer YOUR_API_TOKEN
ベースURL
https://pdf.businesspress.io/api/v1
レート制限
無料アカウントは1日あたり50回のPDF分析に制限されています。残りのチェック回数は各APIレスポンスに含まれます。
エンドポイント
GET
/user
認証済みユーザーの情報(1日の使用制限を含む)を取得します。
レスポンス例
{
"success": true,
"data": {
"name": "John Doe",
"email": "john@example.com",
"daily_limit": 50,
"remaining_checks": 47,
"checks_used_today": 3
}
}
POST
/pdf/analyze
PDFファイルをアップロードして分析します。PDFから抽出された詳細なメタデータを返します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| file | file | 必須 | 分析するPDFファイル(最大100MB) |
リクエスト例
curl -X POST https://pdf.businesspress.io/api/v1/pdf/analyze \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@document.pdf"
レスポンス例
{
"success": true,
"data": {
"id": "abc123xyz789",
"filename": "document.pdf",
"file_size": 1048576,
"file_size_formatted": "1.00 MB",
"metadata": {
"title": "My Document",
"author": "John Doe",
"creator": "Microsoft Word",
"producer": "Adobe PDF Library",
"page_count": 10,
"pdf_version": "1.7",
"dates": {
"created": "2025-01-15T10:30:00Z",
"modified": "2025-01-16T14:22:00Z",
"was_modified": true
}
},
"analyzed_at": "2025-01-17T18:00:00Z"
},
"remaining_checks": 46
}
GET
/pdf
認証済みユーザーの全PDF分析結果をページネーション付きで一覧表示します。
クエリパラメータ
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
| per_page | integer | 20 | ページあたりの結果数(1〜100) |
レスポンス例
{
"success": true,
"data": [
{
"id": "abc123xyz789",
"filename": "document.pdf",
"file_size": 1048576,
"file_size_formatted": "1.00 MB",
"analyzed_at": "2025-01-17T18:00:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 1
}
}
GET
/pdf/{id}
分析ID(共有トークン)による詳細な分析結果を取得します。
リクエスト例
curl https://pdf.businesspress.io/api/v1/pdf/abc123xyz789 \
-H "Authorization: Bearer YOUR_API_TOKEN"
トークン管理
GET
/tokens
認証済みユーザーの全APIトークンを一覧表示します。
POST
/tokens
新しいAPIトークンを作成します。トークンはレスポンスで一度だけ表示されます。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | 必須 | トークンの説明的な名前 |
DELETE
/tokens/{id}
APIトークンを永久に取り消し(削除)します。
エラーコード
| HTTPコード | エラーコード | 説明 |
|---|---|---|
| 401 | unauthenticated | 無効または欠落したAPIトークン |
| 404 | not_found | リソースが見つからないか、アクセスが拒否されました |
| 422 | analysis_failed | PDFを処理できませんでした(無効または破損したファイル) |
| 429 | daily_limit_exceeded | 1日の制限を超えました。明日再度お試しください |
コード例
cURL
# Analyze a PDF
curl -X POST https://pdf.businesspress.io/api/v1/pdf/analyze \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@/path/to/document.pdf"
# Get analysis result
curl https://pdf.businesspress.io/api/v1/pdf/abc123xyz789 \
-H "Authorization: Bearer YOUR_API_TOKEN"
# List all analyses
curl https://pdf.businesspress.io/api/v1/pdf \
-H "Authorization: Bearer YOUR_API_TOKEN"
PHP
<?php
$apiToken = 'YOUR_API_TOKEN';
$filePath = '/path/to/document.pdf';
// Analyze PDF
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://pdf.businesspress.io/api/v1/pdf/analyze',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiToken,
],
CURLOPT_POSTFIELDS => [
'file' => new CURLFile($filePath, 'application/pdf'),
],
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "Analysis ID: " . $result['data']['id'] . "\n";
echo "Pages: " . $result['data']['metadata']['page_count'] . "\n";
echo "Remaining checks: " . $result['remaining_checks'] . "\n";
}
curl_close($ch);
Python
import requests
API_TOKEN = 'YOUR_API_TOKEN'
BASE_URL = 'https://pdf.businesspress.io/api/v1'
headers = {
'Authorization': f'Bearer {API_TOKEN}'
}
# Analyze PDF
with open('/path/to/document.pdf', 'rb') as f:
response = requests.post(
f'{BASE_URL}/pdf/analyze',
headers=headers,
files={'file': ('document.pdf', f, 'application/pdf')}
)
result = response.json()
if result['success']:
print(f"Analysis ID: {result['data']['id']}")
print(f"Pages: {result['data']['metadata']['page_count']}")
print(f"Remaining checks: {result['remaining_checks']}")
# Get analysis by ID
response = requests.get(
f"{BASE_URL}/pdf/{result['data']['id']}",
headers=headers
)
print(response.json())
JavaScript (Node.js)
const fs = require('fs');
const FormData = require('form-data');
const API_TOKEN = 'YOUR_API_TOKEN';
const BASE_URL = 'https://pdf.businesspress.io/api/v1';
async function analyzePdf(filePath) {
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
const response = await fetch(`${BASE_URL}/pdf/analyze`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_TOKEN}`,
},
body: form
});
const result = await response.json();
if (result.success) {
console.log(`Analysis ID: ${result.data.id}`);
console.log(`Pages: ${result.data.metadata.page_count}`);
console.log(`Remaining checks: ${result.remaining_checks}`);
}
return result;
}
// Usage
analyzePdf('/path/to/document.pdf');