API PDF.chat

PDFとchatを自分のアプリケーションからアップロードしてください。質問をして、ページに引用された答えを得ることができます。100以上の言語で。ページごとに計算され、驚きはありません。

概要

PDF.chat APIは小さなRESTインタフェースです。まずは、 POST 文書を読み込むために 文書のテキストとページごとの分類を 返す仕事をします POST 5ページ以下のジョブはインラインで返します pending あなたが投票するまでの状態 done.

  • ベース URL: https://pdf.chat
  • 文書の言語: PDF、Word、PowerPoint、テキスト、画像 (PNG、JPG、WEBP、GIF、BMP、TIFF) を加えた
  • Chat人中: ヒストリーエンドポイントを通して 記録を取得し
  • 処理済みテキスト出力: txt, md, docx, pdf, csv, json
  • 読み込みエンジン: cpu それに 私たちは vlm プレミアムAI 手書き 複雑なレイアウト 数学

認証

あなたのアカウントで認証 APIトークン あなたの 会計ページ) をベアラーヘッダとして:

Authorization: Bearer YOUR_API_TOKEN

あなたは通過することもできます ?api_token=… 利用は あなたのアカウントの ページバランスに基づいて計測されます

文書を提出

POST /api/v1/ocr/, 複数のフォームをアップロード

curl -X POST https://pdf.chat/api/v1/ocr/ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F "file=@invoice.pdf" \
  -F "tier=vlm" \
  -F "language=auto"

ジョブを返します。 5 ページ以下のファイルは既に作成されています。 done テキストと一緒に より大きなファイルが返ってきます pending/processing状態エンドポイントを調べる

{
  "uuid": "9f2c1b7e4a...",
  "status": "done",
  "tier": "vlm",
  "language": "auto",
  "page_count": 1,
  "mean_confidence": 0.98,
  "text": "INVOICE\nAcme Corp\nTotal: 215.00 USD",
  "markdown": "# INVOICE\n\n**Acme Corp** ...",
  "pages": [ { "index": 0, "text": "...", "blocks": [ { "text": "...", "bbox": [x0,y0,x1,y1], "confidence": 0.98 } ] } ]
}

結果を取得

GET /api/v1/ocr/<uuid>/, 投票するまで status それは done それとも failed.

curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
  -H "Authorization: Bearer YOUR_API_TOKEN"

フォーマットをダウンロード

GET /api/v1/ocr/<uuid>/download/?format=md, 結果を出力します format それは 私が txt, md, docx, pdf, csv, json.

curl -L "https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../download/?format=docx" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o result.docx

Chat 文書付き

完了したジョブに関する質問をします。答えは抽出されたテキストに基づいてソースページを引用します。アカウントトークンが必要です。chat 機能はアカウントゲートです。

POST /api/v1/chat/<uuid>/, JSON ボディ {"message": "your question"}.

curl -X POST https://pdf.chat/api/v1/chat/9f2c1b7e4a.../ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "What is the invoice total and due date?"}'

返すアシスタントメッセージは、その回答と引用ページのリストです。

{"conversation": "a1b2…", "message": {
   "role": "assistant",
   "content": "The total is $42, due on March 3 (p. 1).",
   "citations": [{"page": 1, "cited_text": "The invoice total is $42…", "document_id": "9f2c1b7e4a…"}]
}}

GET /api/v1/chat/<uuid>/history/, 仕事のために 会話の全文を取ってきて

コード例

import requests, time

BASE = "https://pdf.chat/api/v1"
H = {"Authorization": "Bearer YOUR_API_TOKEN"}

# 1. Upload a PDF
with open("contract.pdf", "rb") as f:
    job = requests.post(BASE + "/ocr/", headers=H, files={"file": f}).json()

# 2. Wait until it's ready to chat
while job["status"] in ("pending", "processing"):
    time.sleep(2)
    job = requests.get(f"{BASE}/ocr/{job['uuid']}/", headers=H).json()

# 3. Ask questions — every answer is cited to the page
ans = requests.post(f"{BASE}/chat/{job['uuid']}/", headers=H,
    json={"message": "What is the termination notice period?"}).json()
print(ans["message"]["content"])
print(ans["message"]["citations"])
import fs from "fs";

const BASE = "https://pdf.chat/api/v1";
const H = { Authorization: "Bearer YOUR_API_TOKEN" };

// 1. Upload a PDF
const form = new FormData();
form.append("file", new Blob([fs.readFileSync("contract.pdf")]), "contract.pdf");
let job = await (await fetch(`${BASE}/ocr/`, { method: "POST", headers: H, body: form })).json();

// 2. Wait until it's ready to chat
while (["pending", "processing"].includes(job.status)) {
  await new Promise(r => setTimeout(r, 2000));
  job = await (await fetch(`${BASE}/ocr/${job.uuid}/`, { headers: H })).json();
}

// 3. Ask questions — every answer is cited to the page
const ans = await (await fetch(`${BASE}/chat/${job.uuid}/`, {
  method: "POST", headers: { ...H, "Content-Type": "application/json" },
  body: JSON.stringify({ message: "What is the termination notice period?" })
})).json();
console.log(ans.message.content, ans.message.citations);
# 1. Upload a PDF
curl -X POST https://pdf.chat/api/v1/ocr/ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F "file=@contract.pdf"

# 2. Ask questions (use the uuid from step 1) — answers cited to the page
curl -X POST https://pdf.chat/api/v1/chat/UUID/ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "What is the termination notice period?"}'

パラメータ

フィールドタイプ説明
filefile必要です。 処理する画像または PDF。
tierstringcpu (デフォルト、速い/印刷) または vlm プレミアムAIの手書き、レイアウト、数学
languagestringauto 言語コード (例: 英語) を指定します。en, ch, ja, ar, …).
toolstringツールスラグをオプションで追加する。 summarize-pdf, ask-pdfchatを 前フレームにするために

エラーと制限

コード意味
400ファイルがありません、サポートされていないタイプ、ファイルが大きすぎます。
401API トークンが欠けていますか、または無効です。
402ページが無い、日/月のフリー制限に達した、クレジットがない。ボディには次のものが含まれます。 used/cap.
404ジョブ UUID が見つかりません。
409ジョブが終了する前にダウンロードが要求されました。

処理されたページごとにクレジットがかかります。ファストプランではページごとにクレジットがかかります。プレミアムプランではクレジットがかかります。有料プランではファイルごとのページ数を増やし、優先度を追加します。 価格設定.

よくある質問

無料でアカウントを作成して 会計ページあなたのトークンがコピーボタンで表示されます

5ページ以下のファイルは POST 応答で全結果をインラインで返します。

ラテン文字、CJK、アラビア文字、キリル文字、インド文字を含む100以上の文字を使用できます。 language=auto 特定のコードを検出したり 伝達するのです

アップロードは質問に答えるためのみ処理され、自動的に削除されます。私たちはあなたの文書を販売、共有、または訓練することはありません。

匿名呼び出しは IP ごとの日分の制限を受け、無料アカウントは月分のバケットを受け、有料プランは購入したクレジットを使用し、ファイルごとのページカップと優先度を高めます。 クレジットが使い切れば、ボディに使用済みとカップを含む 402 を返します。

送信できるファイル形式は PNG、JPG、WEBP、GIF、BMP、TIFF、多ページPDFです。結果はダウンロードエンドポイントのフォーマットパラメータを使って txt、md、docx、pdf(検索可能)、csv、json としてダウンロードできます。

400はファイルが欠けている、サポートされていないタイプ、ファイルが大きすぎる、401はトークンが欠けているか無効、402はページが無い、404はジョブUUIDが不明、409はジョブが終了する前にダウンロードが要求されました。エラーボディには短いメッセージが含まれます。

状態、階層、言語、ページ数、平均信頼度、フルテキスト、マークダウンを持つジョブオブジェクト。ページアレイは各ページをブロックに分割し、ブロックごとのテキスト、境界ボックス (bbox)、信頼度を含む。

印刷された文書を高速で低コストで認識するために cpu を使用します。手書き、複雑な多列レイアウト、数学、翻訳などの場合は vlm を使用します。vlm は AI エンジンで、より正確です。

chatをそのタスクに予めフレームするためにスラグを持つツールをパスする。

5ページ以下のファイルは POST 応答でインラインで返されます。より大きなファイルは待ち受けまたは処理中として直ちに返されます。GET /api/v1/ocr/ をポールします。<uuid>ファイルのページ数を増やすには、 ファイルのページ数を増やす必要があります。

これは、HTTPクライアントを使って、HTTPサーバにアクセスするための API です。API は HTTPS 上の単純な REST で、HTTP クライアントを使って、 Python、Node.js、cURL の例を参照して、どの言語からでも動作します。インストールする SDK はありません。標準 HTTP コードの数行が必要です。