PDF.chat mga artikulo.

I-upload ang isang PDF at chat na may ito mula sa iyong sariling app - magtanong ng mga katanungan at makakuha ng mga sagot na nabanggit sa pahina, sa 100+ wika. Metered bawat pahina, walang sorpresa.

Pangkalahatang-ideya

Ang PDF.chat API ay isang maliit na REST interface. Una mo POST isang dokumento upang ingest ito at makakuha ng bumalik ng isang trabaho sa teksto ng dokumento at isang bawat-page breakdown (text, bounding kahon, kumpiyansa). Pagkatapos ay ikaw POST mga katanungan laban sa trabaho na at makakuha ng mga sagot nakabatay sa lupa sa dokumento, ang bawat pagbibigay ng pahiwatig ng pahina ito ay nagmula sa. Mga trabaho ng5mga pahina o mas kaunti bumalik inline; mas malaki trabaho bumalik kaagad na may isang pending katayuan na iyong poll hanggang done.

  • Base URL: https://pdf.chat
  • Mga dokumento sa: Ang mga file na ito ay maaaring i-convert sa iba't ibang format tulad ng PNG, JPG, GIF, BMP, TIFF, atbp.
  • Chat out ng: sagot na may mga pahina ng mga pangungusap; transcripts sa pamamagitan ng kasaysayan endpoint
  • Pinagproseso teksto out: txt, md, docx, pdf, csv, json
  • Pagbasa engine: cpu (mabilis, naka-print na mga dokumento) at vlm (premium AI, pagsulat ng kamay, kumplikadong layout, matematika)

Pag-authenticate

Mag-authenticate gamit ang iyong API token (mahanap ito sa iyong pahina ng account) bilang isang may-ari header:

Authorization: Bearer YOUR_API_TOKEN

Maaari mo ring pumasa ?api_token=… Ang paggamit ay sinusukat laban sa balanse ng pahina ng iyong account.

Mag-submit ng isang dokumento

POST /api/v1/ocr/, multipart form mag-upload.

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"

Bumalik ang trabaho. Para sa ≤5-page na mga file ito ay na done sa teksto; mas malalaking mga file bumalik pending/processingAng mga ito ay tinatawag na endpoint.

{
  "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 } ] } ]
}

Kumuha ng isang resulta

GET /api/v1/ocr/<uuid>/, poll hanggang status ay done o failed.

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

I-download ang isang format

GET /api/v1/ocr/<uuid>/download/?format=md, mag-export ng resulta. format ay isa sa mga 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 na may isang dokumento

Magtanong ng mga katanungan tungkol sa isang tapos na trabaho. Ang mga sagot ay nakabatay lamang sa mga na-extract na teksto at banggitin ang source page. Kinakailangan ng isang account token, ang chat tampok ay account-gated.

POST /api/v1/chat/<uuid>/, Ang JSON body {"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?"}'

Bumalik ang assistant mensahe na may sagot nito at isang listahan ng mga nabanggit na mga pahina:

{"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/, kumuha ng buong transcript ng pag-uusap para sa isang trabaho.

Mga halimbawa ng code

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?"}'

Parameter

PatlangUriPaglalarawan
filefileKinakailangan. Ang imahe o PDF na proseso.
tierstringcpu (default, mabilis / naka-print) o vlm (Premium AI: pagsulat ng kamay, layout, matematika).
languagestringauto (default) o isang code ng wika (en, ch, ja, ar(Ito ay...)
toolstringAng mga ito ay: Ang mga selula ng tao (e.g. summarize-pdf, ask-pdf) to pre-frame the chat for that task.

Error & limitasyon

CodeKahulugan
400Walang file, hindi suportadong uri, o file masyadong malaki.
401Ang mga ito ay hindi nakikita o hindi nakikita ng mata.
402Out ng mga pahina, araw-araw / buwanang libreng limitasyon naabot, o walang credits. Ang katawan ay kasama used/cap.
404Ang trabaho UUID ay hindi natagpuan.
409Download hiniling bago ang trabaho natapos.

Ang bawat pahina naproseso gastos credits (1 / pahina sa mabilis na tier, higit pa sa premium). Paid plano itaas per-file pahina caps at magdagdag ng prayoridad. Tingnan Pagpepresyo.

Mga madalas itanong na katanungan

Lumikha ng isang libreng account at buksan ang iyong pahina ng account, ang iyong token ay ipinapakita doon sa isang kopya ng pindutan.

Ang mga file ng5mga pahina o mas kaunti bumalik ang buong resulta inline sa POST tugon, kaya walang polling ay kinakailangan para sa karamihan ng mga imahe at maikling PDFs.

Higit sa 100, kabilang ang Latin, CJK, Arabic, Cyrillic at Indic script. Gamitin language=auto upang matukoy, o pumasa sa isang tiyak na code.

Ang mga upload ay pinoproseso lamang upang sagutin ang iyong mga katanungan at awtomatikong tinanggal. Hindi kailanman kami nagbebenta, nagbabahagi, o nag-training sa iyong mga dokumento.

Ang paggamit ay sinusukat bawat pahina laban sa iyong balanse ng account: anonymous tawag makakuha ng isang per-IP araw-araw na allowance, libreng account ng isang buwanang bucket, at bayad na mga plano gamitin ang binili credits na may mas mataas na per-file page caps at prayoridad. Kapag ikaw ay tumakbo out makakuha ka ng isang 402 na may ginagamit at cap sa katawan.

Maaari kang magpadala ng PNG, JPG, WEBP, GIF, BMP, TIFF, at multi-page PDF. Mga resulta ng pag-download bilang txt, MD, DOCX, PDF (searchable), CSV, o JSON sa pamamagitan ng pag-download ng endpoint ng format parameter.

400 ay isang nawawalang file, hindi suportadong uri, o file masyadong malaki; 401 isang nawawalang o hindi wastong token; 402 out ng mga pahina; 404 isang hindi kilalang trabaho UUID; at 409 isang download na hiniling bago ang trabaho tapos na. Error katawan isama ang isang maikling mensahe.

Ang isang trabaho bagay na may katayuan, antas, wika, page_count, at mean_confidence, pati na rin ang buong teksto at markdown. Ang mga pahina array breaks bawat pahina sa mga bloke na may kanilang teksto, bounding kahon (bbox), at bawat-block tiwala.

Gamitin ang cpu (ang default) para sa mabilis, mababang-cost pagkilala ng malinis na naka-print na mga dokumento. Gamitin vlm, ang premium AI engine, para sa pagsulat ng kamay, kumplikadong o multi-haligi layout, matematika, at pagsasalin, kung saan ito ay malayo mas tumpak.

Pass tool with a slug (for example summarize-pdf or ask-pdf) to pre-frame the chat for that task, so the assistant is tuned to summarize or answer questions about the document.

File ng5mga pahina o mas kaunti bumalik inline sa POST tugon. mas malaki ang mga file bumalik agad bilang pending o pagpoproseso, at ikaw poll GET /api/v1/ocr/<uuid>/ hanggang sa katayuan ay tapos na o nabigo. Paid plano itaas ang bawat-file na pahina cap.

Ang API ay simpleng REST sa HTTPS, kaya ito ay gumagana mula sa anumang wika na may isang HTTP client, tingnan ang Python, Node.js, at cURL halimbawa sa itaas. Walang SDK upang i-install; ilang linya ng standard HTTP code ay ang lahat ng kailangan mo.