OCR.chat API

Jeden HTTP požadavek změní obrázek nebo PDF na čistý text, Markdown, tabulky, a JSON?i ve 100+ jazycích. Metered na stránku, žádné překvapení.

Přehled

The OCR.chat API is a small REST interface. You POST a file and get back a job with the recognized text and a per-page breakdown (text, bounding boxes, confidence). Jobs of 5 pages or fewer return inline; larger jobs return immediately with a pending status that you poll until done.

  • Base URL: https://ocr.chat
  • Formats in: PNG, JPG, WEBP, GIF, BMP, TIFF, and multi-page PDF
  • Formats out: txt, md, docx, pdf, csv, json
  • Engines: cpu (fast, printed docs) and vlm (premium AI, handwriting, complex layout, math)

Ověření

Authenticate with your API token (find it on your account page) as a Bearer header:

Authorization: Bearer YOUR_API_TOKEN

You can also pass ?api_token=… as a query parameter. Usage is metered against your account's page balance.

Odeslání dokumentu

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

curl -X POST https://ocr.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 with the text; larger files come back pending/processing, poll the status 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 } ] } ]
}

Získejte výsledek

GET /api/v1/ocr/<uuid>/, poll until status is done or failed.

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

Stáhnout formát

GET /api/v1/ocr/<uuid>/download/?format=md, export the result. format is one of txt, md, docx, pdf, csv, json.

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

Chat s dokumentem

Ptejte se na hotovou práci. Odpovědi jsou uzemněny pouze ve vytaženém textu a citujte zdrojovou stránku. Vyžaduje, aby byl účet uveden jako webu chat.

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

curl -X POST https://ocr.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?"}'

Vrací zprávu asistenta s odpovědí a seznam citovaných stránek:

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

GET /api/v1/chat/<uuid>/history/, Přineste kompletní přepis konverzace pro práci.

Příklady kódů

import requests, time

API = "https://ocr.chat/api/v1/ocr/"
H = {"Authorization": "Bearer YOUR_API_TOKEN"}

# Submit
with open("invoice.pdf", "rb") as f:
    job = requests.post(API, headers=H,
        files={"file": f}, data={"tier": "vlm"}).json()

# Poll until done
while job["status"] in ("pending", "processing"):
    time.sleep(2)
    job = requests.get(API + job["uuid"] + "/", headers=H).json()

print(job["markdown"])

# Download as DOCX
r = requests.get(API + job["uuid"] + "/download/",
                 headers=H, params={"format": "docx"})
open("result.docx", "wb").write(r.content)
import fs from "fs";

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

const form = new FormData();
form.append("file", new Blob([fs.readFileSync("invoice.pdf")]), "invoice.pdf");
form.append("tier", "vlm");

let job = await (await fetch(API, { method: "POST", headers: H, body: form })).json();

while (["pending", "processing"].includes(job.status)) {
  await new Promise(r => setTimeout(r, 2000));
  job = await (await fetch(API + job.uuid + "/", { headers: H })).json();
}
console.log(job.markdown);
# 1. Submit
curl -X POST https://ocr.chat/api/v1/ocr/ \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F "file=@invoice.pdf" -F "tier=vlm"

# 2. Poll  (use the uuid from step 1)
curl https://ocr.chat/api/v1/ocr/UUID/ \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# 3. Download
curl -L "https://ocr.chat/api/v1/ocr/UUID/download/?format=md" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o result.md

Parametry

FieldTypeDescription
filefileRequired. The image or PDF to process.
tierstringcpu (default, fast/printed) or vlm (premium AI: handwriting, layout, math).
languagestringauto (default) or a language code (en, ch, ja, ar, …).
toolstringOptional tool slug (e.g. extract-tables, handwriting-to-text) to apply that tool's preset.
translate_tostringFor the translate tool, target language code.

Omezení chyb

CodeMeaning
400No file, unsupported type, or file too large.
401Missing or invalid API token.
402Out of pages, daily/monthly free limit reached, or no credits. The body includes used/cap.
404Job UUID not found.
409Download requested before the job finished.

Each page processed costs credits (1/page on the fast tier, more on premium). Paid plans raise per-file page caps and add priority. See pricing.

Často kladené otázky

Create a free account and open your account page, your token is shown there with a copy button.

Yes, files of 5 pages or fewer return the full result inline in the POST response, so no polling is needed for most images and short PDFs.

Over 100, including Latin, CJK, Arabic, Cyrillic and Indic scripts. Use language=auto to detect, or pass a specific code.

Uploads are processed for OCR and deleted automatically. We never sell, share, or train on your documents.

Použití je odměřována na stránku proti vašemu účtu: anonymní hovory získat denní příspěvek na IP, volné účty měsíční kbelík, a placené plány používat zakoupené úvěry s vyšší per-souborové stránky čepice a priority. Když dojde dostanete 402 s použitým a čepice v těle.

Můžete odeslat PNG, JPG, WEBOP, GIF, BMP, TIFF, a vícestránkový PDF. Výsledky stáhnout jako txt, md, docx, pdf (vyhledatelný), csv, nebo json přes parametr formátu download.

400 je chybějící soubor, nepodporovaný typ, nebo soubor příliš velký; 401 chybějící nebo neplatný žeton; 402 z stránek; 404 neznámé zaměstnání UUID; a 409 ke stažení požadované před dokončením práce. Chybové těla obsahují krátkou zprávu.

Objekt práce se statusem, úrovní, jazykem, storno_count a střední_condience, plus celý text a markdown. Série stránek rozbije každou stránku do bloků s textem, vázaným boxem (bbox) a důvěrou v jednotlivé bloky.

Použijte Cpu (default) pro rychlé, levné rozpoznávání čistých tištěných dokumentů. Použijte vlm, prémiový AI motor, pro rukopis, komplexní nebo více-sloupců rozvržení, matematika, a překlad, kde je mnohem přesnější.

Nástroj Pass s kulkou (například extract-tables nebo rukopis-to-text) použít nástroj je naladěný přednastavený. Pro přeložit nástroj, také projít translate_to s cílovým jazykem kód získat uznávaný text zpět přeložen.

Soubory 5 stran nebo méně návratů v odpovědi POST. Větší soubory se vrátí okamžitě jako probíhající nebo zpracování, a budete volit GET /api / v1/ocr /<uuid>/ dokud se stav neudělá nebo nezdaří. Placené plány zvýší uzávěr záložky v jednotlivých souborech.

API je jednoduchý REST přes HTTPS, takže funguje z jakéhokoli jazyka s HTTP klientem?? viz Python, Node.js, a CURL příklady výše. Neexistuje žádný SDK k instalaci; několik řádků standardního HTTP kódu jsou vše, co potřebujete.