Send PDFs and images to /parse and get searchable text, reading order, and coordinates for every word. OCR runs automatically for image-only files; force OCR tells Parse to ignore an unreliable embedded text layer and read the page pixels instead.
OCR recognizes text in PDFs and images and returns content you can search, copy, and index. It runs through the Parse endpoint, which also preserves reading order and the position of each recognized word.
Teams digitizing scanned archives, faxes, receipts, and photographed documents that need reliable text out of low-quality images.
Traditional OCR often loses accuracy on skewed, noisy, or handwritten pages and discards where each word appeared. Unsiloed reads the page visually and links recognized words to their original positions.
Digitize decades of paper into searchable text without re-keying a single page.
Read skewed, speckled, and low-resolution pages that classic OCR garbles.
Recognize text in phone photos of receipts, crumpled forms, and other uneven page images.
Recognize legible handwritten notes and signatures alongside printed text in the same pass.
Return text and coordinates from image-only PDFs for search, indexing, and document viewers.
Every token comes back with a bounding box for highlighting, redaction, and citations.
Images and scanned PDFs are read automatically. When a PDF contains an unreliable embedded text layer, force OCR reads the page pixels instead.
The vision model ranks first on the public benchmark for document OCR across varied page types and layouts.
Word-level coordinates come back with the text, so you can highlight a match, redact a region, or ground a citation to the precise spot on the page.
Reading content and layout together helps with skewed scans, noisy faxes, phone photos, and legible handwriting.
Multi-column pages are re-threaded into the order a human reads, not streamed left-to-right across the columns.
Documents and page images use the same asynchronous Parse workflow and return the same structured result shape.
POST the file to /parse with your api-key header and capture the job ID from the response.
The model recognizes text and layout together while preserving the page’s reading order.
GET /parse/{job_id} until the job status is Succeeded. A Failed status includes an error message.
Read Markdown from each chunk’s segments[].markdown and word-level OCR coordinates from each segment’s ocr array.
1 import os, time, requests 2 3 BASE = "https://prod.visionapi.unsiloed.ai" 4 HEADERS = {"api-key": os.environ["UNSILOED_API_KEY"]} 5 6 # 1. submit the scanned document 7 with open("scanned_invoice.pdf", "rb") as file: 8 response = requests.post( 9 f"{BASE}/parse", headers=HEADERS,10 files={"file": file}11 )12 response.raise_for_status()13 job_id = response.json()["job_id"]14 15 # 2. poll until OCR finishes16 for _ in range(60):17 response = requests.get(18 f"{BASE}/parse/{job_id}", headers=HEADERS)19 response.raise_for_status()20 result = response.json()21 if result["status"] == "Succeeded": break22 if result["status"] == "Failed":23 raise RuntimeError(24 result.get("message", "OCR failed"))25 time.sleep(5)26 else:27 raise TimeoutError("OCR did not finish in 5 minutes")28 29 # 3. read text and word-level coordinates30 for chunk in result["chunks"]:31 for segment in chunk["segments"]:32 print(segment.get("markdown") or segment.get("content", ""))33 print(segment.get("ocr", []))Use the same submit-and-poll workflow from prototype through production. Page-based pricing starts with a free tier, with managed, VPC, on-premises, and air-gapped deployment options for larger workloads.
Read the docsuptime target on enterprise plans.
OCR uses the same authentication and billing as every other capability. Combine it with Parse, Extract, Split, and Classify, or call it on its own.
Tell us a little about your workflow and share a sample document.
We’ll use it to show you a structured output during the call.
The accuracy, especially on tables, is meaningfully better than anything we tested. We evaluated over 15 solutions and Unsiloed was the only one that worked reliably.
Head of AI
Fortune 150 Bank, NY