PDF.chat API
Soo dejisan PDF iyo chat la mid ah app aad u gaar ah — su'aalo weydii oo hel jawaabaha ku xusan bogga, in 100 + luqadood. Mitir ah bogga, wax yaab leh ma jiro.
Faahfaahin
The PDF.chat API waa interface yar REST. Ugu horreyntii waxaad POST a qoraal ah in ay cunto oo dib u hesho shaqo la qoraalka qoraalka iyo per-page kala qaybinta (qoraalka, sanduuqyada bounding, kalsoonida). Markaas waxaad POST su’aalaha ka dhanka ah shaqadaas iyo hel jawaabaha ku saleysan qoraalka, mid kasta oo ka hadlaya bogga uu ka yimid. Shaqada 5 bog ama ka yar inline soo laabta; shaqooyinka waaweyn soo laabta si deg deg ah oo la pending xaaladda aad doorasho ilaa done.
- URL-ka asalka ah:
https://pdf.chat - Xuquuqda: PDF, iyo sidoo kale Word, PowerPoint, qoraalka, iyo sawirro (PNG, JPG, WEBP, GIF, BMP, TIFF)
- Chat ka mid ah: jawaabaha la page ciwaanka; transcripts ka dib markii taariikhda endpoint
- Qoraalka la xalliyey:
txt,md,docx,pdf,csv,json - Akhrista mashiinada:
cpu(dhab ah, dukumiintiyo daabacan) iyovlm(premium AI, qoraalka gacanta, qaabka adag, xisaabta)
Adeegga aqoonsiga
Ku aqoonso Tallaabada API (ka heli kartaa on aad Tusaale:) sida madaxa Bearer:
Authorization: Bearer YOUR_API_TOKEN
Waxaad sidoo kale ku gudbi kartaa ?api_token=… sida parameter su'aal. isticmaalka waxaa lagu tijaabiyay ka dhanka ah miisaanka page xisaabtaada.
Soo gudbi xuquuqda
POST /api/v1/ocr/, multipart qaabka soo dejinta.
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"
U soo celin shaqada. Si loo helo ≤5-page files waa horeyba done la qoraalka; faylasha weyn ayaa dib u soo laabtay pending/processing, doorasho xaaladda 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 } ] } ]
}
Ka hesho natiijo
GET /api/v1/ocr/<uuid>/, tijaabiyo ilaa status waa done ama failed.
curl https://pdf.chat/api/v1/ocr/9f2c1b7e4a.../ \
-H "Authorization: Bearer YOUR_API_TOKEN"
Soo deji qaabka
GET /api/v1/ocr/<uuid>/download/?format=md, dhoofinta natiijada. format waa mid ka mid ah 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 la xuquuqda
Su'aalo weydii shaqada dhamaatay. Jawaabaha waxaa ku saleysan oo kaliya qoraalka soo bixi iyo soo jeedin bogga asalka ah. U baahan yahay xisaab token, chat feature waa xisaab-gated.
POST /api/v1/chat/<uuid>/, JSON jirka {"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?"}'
Ku soo laabtaa fariinta caawiyaha la jawaabta iyo liiska bogagga la xusay:
{"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/, soo qaado qoraalka wada hadalka oo dhan shaqada.
Codsiga tusaale
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?"}'
Parameters
| Isku-darka | Nooc | Tilmaamaha |
|---|---|---|
file | file | Waa in la buuxiyaa. Sawirka ama PDF si loo xaliyo. |
tier | string | cpu (default, degdeg ah/printed) ama vlm (premium AI: qorista gacanta, qaabka, xisaabta). |
language | string | auto (default) ama koodka afka (en, ch, ja, ar, …). |
tool | string | Qalabka ikhtiyaariga ah slug (tusaale ahaan summarize-pdf, ask-pdf) si ay u hor-qaab dhismeedka chat ee shaqadaas. |
Xaaladda
| Koodka | Maxaa la rabaa |
|---|---|
400 | Fayl ma jiro, nooc aan la taageerin, ama fayl aad u weyn. |
401 | Tallaabooyin la'aan ama aan sharci ahayn API. |
402 | Bogga ka baxsan, maalin kasta / bil kasta oo xor ah xaddidaadda la gaadhay, ama aan la credits. used/cap. |
404 | Shaqada UUID ma la helay. |
409 | Soo dejinta ayaa la weydiistay ka hor shaqada oo dhammaaday. |
Bog kasta oo la soo gudbiyay qiimaha credits (1 / page on the fast tier, in ka badan on premium). qorshayaasha lacagta lagu bixiyo kor u qaado per-file page caps iyo ku dar muhiimadda. qiimaha.
Su'aalaha badanaa la isweydiiyo
language=auto si ay u ogaato, ama u gudbiyaan koodh gaar ah.