API OCR.chat

Ny fangatahana HTTP iray dia manova sary na PDF ho lasa lahatsoratra tsotra, Markdown, tabilao, ary JSON — amin'ny teny mihoatra ny 100.

Fanoritsoritana

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)

Fanamarinana

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.

Hampiditra tahirin-kevitra

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

Hahazo valiny

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"

Maka lamina iray

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

Miresaka amin'ny tahirin-kevitra iray

Mametraka fanontaniana momba ny asa vita. Ny valinteny dia mifototra amin'ny lahabolana nalaina ihany ary milaza ny pejy loharano. Mila kaonty iray ny fanontaniana - miankina amin'ny kaonty ny fiteny.

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

Mandefa ny hafatra amin'ny mpanampy miaraka amin'ny valinteny sy ny lisitr'ireo pejy voalaza:

{"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/, maka ny dikan-teny feno amin'ny resaka ho an'ny asa iray.

Ohatran'ny soratra

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

Mpizahaky ny macro

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.

Tsy fetezana sy fetra

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.

Fanontaniana matetika

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.

Ny fampiasana dia mitombo arakaraka ny pejy amin'ny alalan'ny tahirin'ny kaontinao: mahazo alalana isan'andro isaky ny IP ny antso tsy fantatra anarana, mahazo isaky ny volana ny kaonty maimaimpoana, ary mampiasa ny karatra mividy amin'ny fetra ambony kokoa sy ny laharam-pahamehana isaky ny pejy ny kaonty. Raha tsy ampy ny kaontinao dia mahazo 402 miaraka amin'ny ampiasaina sy ny fetra ao amin'ny vatana ianao.

Azonao alefa amin'ny endrika PNG, JPG, WEBP, GIF, BMP, TIFF, ary PDF maro pejy ny valiny. Afaka alefa amin'ny endrika txt, md, docx, pdf (azo karohina), csv, na json amin'ny alalan'ny lamin'ny farany amin'ny fidinana ny valiny.

400 dia rakitra tsy hita, karazana tsy raisina an-tànana, na rakitra lehibe loatra; 401 dia marika tsy hita na tsy mety ampiasaina; 402 dia tsy misy pejy; 404 dia UUID tsy fantatra ho an'ny asa; ary 409 dia fangatahana fampidinana natao talohan'ny nanombohan'ny asa. Misy hafatra fohy ao anatin'ny vatana tsy fetezana.

Zavatra iray misy ny toe-draharaha, ny ambaratonga, ny teny, ny page_count, ary ny mean_confidence, ary ny lahabolana feno sy ny markdown. Mizara ho vondrona misy ny lahabolana, ny takila voafaritra (bbox), ary ny fitoniana isan-tokony ny pejy tsirairay ny filaharan'ny pejy.

Ampiasao ny cpu (tsotra) ho an'ny fanamarinana haingana sy mora ny tahirin-kevitra an-tsoratra. Ampiasao ny vlm, ilay milina AI premium, ho an'ny fanoratana an-tànana, ny famolavolana sarotra na maro fariana, ny matematika, ary ny fandikàna teny, izay tena mety kokoa amin'izany.

Mampahafaty fitaovana iray miaraka amin'ny slug (ohatra: extract-tables na handwriting-to-text) mba hametrahana ny safidy mialohan'io fitaovana io. Raha ny fitaovana fandikàna teny, dia omeo translate_to miaraka amin'ny famaha ny teny iantefana mba hahazoana ny lahabolana fantatra.

Miverina anatin'ny filaharan'ny valin'ny POST ireo rakitra manana pejy 5 na latsaka. Miverina avy hatrany ho toy ny miandry na miasa ireo rakitra lehibe kokoa, ary mandefa antso GET /api/v1/ocr/ ianao<uuid>/ mandra-pahatongan'ny zava-misy vita na tsy nahomby. Mampita ny fetra ho an'ny pejy isaky ny rakitra ny drafitra mividy.

REST tsotra amin'ny HTTPS ny API, ka miasa amin'ny teny rehetra miaraka amin'ny mpizara HTTP izy — jereo ny ohatra Python, Node.js, ary cURL etsy ambony. Tsy misy SDK azo apetraka; andalana vitsy amin'ny kaody HTTP mahazatra no ilainao.