PDF.chat API

एक पीडीएफ अपलोड र chat आफ्नो आफ्नै अनुप्रयोग देखि यो संग - प्रश्न सोध्नुहोस् र पृष्ठ उद्धृत जवाफ प्राप्त, 100+ भाषाहरूमा. प्रति पृष्ठ मा मापन, कुनै आश्चर्य.

पूर्वावलोकन

यो PDF.chat एपीआई एक सानो REST इन्टरफेस छ। पहिलो तपाईं POST यो ingest र कागजातको पाठ र प्रति-पृष्ठ विच्छेद (पाठ, बाकस bounding, विश्वास) संग एक काम फिर्ता पाउन कागजात एक कागजात। त्यसपछि तपाईं POST त्यो काम विरुद्ध प्रश्न र कागजात मा जमिन जवाफ प्राप्त, प्रत्येक यो देखि आए पृष्ठ उद्धृत.5पृष्ठहरू वा कम inline फिर्ता को काम; ठूलो काम एक साथ तुरुन्तै फिर्ता pending तपाईँले सम्म पोल गरेको स्थिति done.

  • आधार यूआरएल: https://pdf.chat
  • कागजातहरू: PDF, प्लस वर्ड, पावरपोइन्ट, पाठ, र छविहरू (PNG, JPG, WEBP, GIF, BMP, TIFF)
  • Chat out: पृष्ठ उद्धरण संग जवाफ; इतिहास अन्त बिन्दु मार्फत transcripts
  • पाठ बाहिर प्रक्रिया गरियो: 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"

काम फर्काउँछ । ≤५- पृष्ठ फाइलका लागि यो पहिले नै छ 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>/, सम्म पोल गर्नुहोस् statusdone वा 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

Ask questions about a finished job. Answers are grounded only in the extracted text and cite the source page. Requires an account token, the chat feature is account-gated.

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 (प्रिमियम एआई: हातलेखन, सजावट, गणित)।
languagestringauto (पूर्वनिर्धारित) वा भाषा सङ्केत (en, ch, ja, ar,...)
toolstringवैकल्पिक उपकरण स्लाग (जस्तै: summarize-pdf, ask-pdf) त्यो कार्यको लागि chat पूर्व-फ्रेम गर्न।

त्रुटि र सीमा

सङ्केतअर्थ
400फाइल छैन, असमर्थित प्रकार, वा फाइल धेरै ठूलो छ ।
401हराइरहेको वा अवैध API टोकन ।
402पृष्ठ बाहिर, दैनिक / मासिक निःशुल्क सीमा पुग्यो, वा कुनै क्रेडिट. शरीर समावेश used/cap.
404काम UUID फेला परेन ।
409काम समाप्त हुनु भन्दा पहिले डाउनलोड अनुरोध गरियो ।

प्रत्येक पृष्ठ प्रक्रिया लागत क्रेडिट (1/पृष्ठ छिटो तह मा, प्रिमियम मा थप). भुक्तानी योजना प्रति-फाइल पृष्ठ टोपी बढाउन र प्राथमिकता थप्न. हेर्नुहोस् मूल्याङ्कन.

प्राय सोधिने प्रश्नहरू

एक निःशुल्क खाता सिर्जना गर्नुहोस् र आफ्नो खोल्नुहोस् खाता पृष्ठ, तपाईँको टोकन प्रतिलिपि बटनसँग त्यहाँ देखाइएको छ ।

हो,5पृष्ठ वा कम फाइलहरू POST प्रतिक्रियामा पूर्ण परिणाम inline फर्काउँछन्, त्यसैले कुनै पोलिंग धेरै छविहरू र छोटो PDFs को लागि आवश्यक छ।

ल्याटिन, CJK, अरबी, सिरिलिक र इन्डियन स्क्रिप्टहरू सहित १०० भन्दा बढी स्क्रिप्टहरू । प्रयोग language=auto पत्ता लगाउन, वा एक विशिष्ट कोड पास गर्न।

अपलोड तपाईंको प्रश्नहरूको जवाफ दिन र स्वचालित रूपमा मेटिएको मात्र प्रक्रिया गरिन्छ। हामी कहिल्यै बेच्न, साझेदारी, वा आफ्नो कागजातमा ट्रेन।

प्रयोग तपाईंको खाता शेष विरुद्ध प्रति पृष्ठ मा मापन गरिएको छ: बेनामी कलहरू प्रति-आईपी दैनिक भत्ता प्राप्त गर्दछ, नि: शुल्क खाताहरू एक मासिक बकेट, र भुक्तानी योजनाहरू उच्च प्रति-फाइल पृष्ठ क्याप्स र प्राथमिकताको साथ खरिद गरिएको क्रेडिटहरू प्रयोग गर्दछ। जब तपाईं बाहिर चल्नुहुन्छ तपाईंले शरीरमा प्रयोग र टोपीको साथ 402 प्राप्त गर्नुहुन्छ।

तपाईँले PNG, JPG, WEBP, GIF, BMP, TIFF, र बहु-पृष्ठ PDF पठाउन सक्नुहुन्छ। परिणाम txt, md, docx, pdf (searchable), csv, वा json रूपमा डाउनलोड डाउनलोड अन्त बिन्दुको ढाँचा परामिति मार्फत डाउनलोड गर्नुहोस्।

४०० हराइरहेको फाइल, असमर्थित प्रकार, वा फाइल धेरै ठूलो छ; ४०० हराइरहेको वा अवैध टोकन; ४०० पृष्ठ बाहिर; ४०० अज्ञात काम UUID; र ४०० काम समाप्त हुनु अघि डाउनलोड अनुरोध । त्रुटि मुख्य भागमा छोटो सन्देश समावेश हुन्छ ।

स्थिति, तह, भाषा, पृष्ठ गणना, र औसत विश्वास, साथै पूरा पाठ र मार्कडाउनसँग काम वस्तु । पृष्ठ एरेले प्रत्येक पृष्ठलाई तिनीहरूको पाठ, बाउन्डिङ बाकस (bbox), र प्रति-ब्लक विश्वाससँग खण्डमा विच्छेद गर्दछ ।

सफा मुद्रित कागजातहरूको छिटो, कम लागत पहिचानका लागि cpu (पूर्वनिर्धारित) प्रयोग गर्नुहोस् । vlm प्रयोग गर्नुहोस्, हातलेखनका लागि, जटिल वा बहु- स्तम्भ सजावट, गणित र अनुवादका लागि प्रिमियम AI इन्जिन, जहाँ यो धेरै बढी सही छ ।

एक slug संग उपकरण पास (उदाहरणका लागि सारांश-pdf वा सोध्नुहोस्-pdf) त्यो कार्यको लागि chat को पूर्व-फ्रेम गर्न, त्यसैले सहायक सारांश वा कागजात बारेमा प्रश्नहरू जवाफ गर्न ट्यून गरिएको छ।

पोस्ट प्रतिक्रिया मा5पृष्ठ वा कम फिर्ता inline फाइलहरू. ठूलो फाइलहरू प्रतीक्षा वा प्रक्रिया रूपमा तुरुन्तै फिर्ता आउन, र तपाईं पोल GET /api/v1/ocr/<uuid>/ स्थिति सम्म गरियो वा असफल छ। भुक्तानी योजना प्रति-फाइल पृष्ठ टोपी बढाउनुहोस्।

एपीआई HTTPS भन्दा सामान्य REST छ, त्यसैले यो HTTP ग्राहक संग कुनै पनि भाषा देखि काम गर्दछ, पाइथन, Node.js, र cURL उदाहरण माथि हेर्नुहोस्। स्थापना गर्न कुनै एसडीके छैन; मानक HTTP कोड को केही लाइनहरू तपाईंलाई आवश्यक छ।