PDF.chat API

Upload a PDF and chat with it from your own app — ask questions and get answers cited to the page, in 100+ languages. Metered per page, no surprises.

Огляд

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 (прем' єм, почерк, складна розкладка, математика)

Розпізнавання

Розпізнавання з вашою Ключ 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"

Returns the job. For ≤5-page files it is already 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 (прем'єр- Ай: почерк, розкладка, математика).
languagestringauto (типовий) або код мови (en, ch, ja, ar...)
toolstringНеобов' язковий інструмент слимака (наприклад, summarize-pdf, ask-pdfЩоб поставити chat на передній план для цього завдання.

Помилки і обмеження

КодЗначення
400Без файла, не підтримується тип, або файл завеликий.
401Відсутній або некоректний ключ API.
402На сторінках не вистачає щоденних/ місячних обмежень або кредитів. Серед них і тіло. used/cap.
404Завдання UUID не знайдено.
409Надійшов запит на звантаження перед завершенням завдання.

Кожна оброблена сторінка коштує 1/ page за швидкий прив' язок, більше за внесок. Плани Paid піднімають шапки на одну сторінку і додають пріоритет. Див. розділ Ціноутворення.

Часті запитання

Створити вільний рахунок і відкрити ваш обліковий запис Сторінка облікового запису, там буде показано ваш ключ з кнопкою копіювання.

Так, файли з 5 сторінок або менше навертають результат до введеного рядка у відповідь POST, отже для більшості зображень і коротких PDF не потрібно проводити опитування.

Понад 100, включаючи латинські, CJK, арабські, кирилицею та індічні скрипти. language=auto виявляти, або передавати певний код.

Вивантаження оброблятимуться лише для того, щоб відповісти на ваші питання і вилучити їх автоматично. Ми ніколи не продаємо, не продаємо і не тренуємо у ваших документах.

Використання вимірюється на сторінку з балансом на рахунок: анонімні дзвінки отримують щодня 1 і 3 і 5/ 3 (для кожної сторінки), вільні рахунки на місяць, а платні плани використовують куплені кредити з вищими шапками на файл і пріоритетом сторінок. Коли ви завершите роботу, програма отримає 402 з використанням і шапкою у тілі.

Ви можете надіслати PNG, JPG, WEBP, GIF, BMP, TIFF і багатосторінку PDF. Результати звантажено як txt, md, docx, pdf (дошуканий), csv, або json за допомогою параметра формату кінцевої точки звантаження.

400 - це відсутній файл, не підтримується тип або файл завеликий; 401 - відсутній або некоректний ключ; 402 - зі сторінок; 404 - невідомий UUID; і 409 - запит на звантаження перед завершенням завдання. Серед повідомлень про помилки є коротке повідомлення.

Об' єкт завдання зі станом, сіткою, мовою, логікою сторінки і значенням_ самовпевненості, а також повним текстом і позначенням з вирівнянням. Масив сторінок розбиває кожну сторінку на блоки з текстом, обмежуючим полем (bbox) і довірою до кожного з блоків.

Використовувати cpu (типове значення) для швидкого, низьковартісного розпізнавання чистих надрукованих документів. Скористайтеся vlm, вбудованим рушієм компонування, для написання, комплексного або багатоколонкового компонування, математичних та перекладів, де він набагато точніший.

Інструмент пропуску з слимом (наприклад, підкреслення- pdf або запит- pdf) для попереднього обрамлення chat для цього завдання, отже помічника буде налаштовано на підсумування або відповідь на питання щодо документа.

Файли з 5 сторінок або менше повернення у відповідь POST. Великі файли негайно повертаються у режим очікування або обробки, а ви опитуєте GET / api/ v1/ocr /<uuid>/ до завершення стану або невдачі. За допомогою параметра Paid можна підняти шапку на кожну з файлів сторінок.

API - це простий REST через HTTPS, отже, він працює з будь- якої мови з клієнтом HTTP, перегляньте приклади Python, вузол. js і cURL. Немає SDK для встановлення; вам потрібно лише декілька рядків стандартного коду HTTP.