Skip to main content
Instead of configuring ocr_engine, segment_processing, agentic_ocr, and merge_tables individually, you can apply a preset mode that bundles a recommended combination of all four. The parser ships with four:

Fast

Optimized for speed. Best for standard documents with clean text and simple tables.

Accurate

Balanced accuracy and performance. Ideal for complex layouts and detailed tables.

Agentic Lite

An agent reviews each segment, flags low-confidence text, and re-reads it against the source to resolve errors at faster speeds. Best for text-heavy documents.

Agentic

An agent reviews every segment, reasons over ambiguous or low-confidence text, and re-reads until resolved for maximum accuracy. Best for critical documents requiring the highest fidelity.

Choosing a Mode

The four modes trade speed for fidelity. The response shape is the same across them in most cases, though jobs submitted with merge_tables (Agentic Lite and Agentic) can return a cached cross-page merged result instead (see the parse job status reference). Start with Fast and step up only when the output misses detail your pipeline depends on.
ModeSpeedTable handlingReach for it when
FastFastestSingle-pass tablesDocuments are clean and digital: typed invoices, receipts, and simple tables.
AccurateModerateHigher-fidelity single-pass tablesLayouts are complex or multi-column, but tables stay within a page.
Agentic LiteSlowerCross-page tables merged; each segment agentically re-readText-heavy documents that need verification, including tables spanning pages.
AgenticSlowestCross-page tables merged; every segment re-read and reasoned overEvery value has to be right: contracts, regulatory filings, and low-quality scans.
Cross-page table merging (merge_tables) is on only for Agentic Lite and Agentic — Fast and Accurate leave it off. If a table spans pages and you need it stitched into one segment, use an Agentic mode or pass merge_tables=true alongside your chosen mode’s parameters.

Mode Parameters

Each mode is shorthand for a specific set of parameters. To use a mode, pass the values from its column in your /parse request.
ParameterFastAccurateAgentic LiteAgentic
ocr_engineUnsiloedBetaUnsiloedBetaUnsiloedBetaUnsiloedBeta
segment_processing.Table.htmlVLMVLMVLMVLM
segment_processing.Table.model_idastra_liteastra_v2astraastra_v3
agentic_ocrnullnullstandardadvanced
merge_tablesfalsefalsetruetrue
Modes are preset configurations. You can override any individual parameter after applying one. See the Parse API reference for the full parameter list.

Applying a Mode

The submit-and-poll flow is the same as in the Quickstart; only the request body differs. The snippets below show each mode in Python — translate to JavaScript or cURL by changing the request body shape, not the parameter values.
import os
import requests

API_KEY = os.environ["UNSILOED_API_KEY"]
BASE_URL = "https://prod.visionapi.unsiloed.ai"

with open("document.pdf", "rb") as f:
    response = requests.post(
        f"{BASE_URL}/parse",
        headers={"api-key": API_KEY},
        files={"file": ("document.pdf", f, "application/pdf")},
        data={
            "ocr_engine": "UnsiloedBeta",
            "merge_tables": "false",
            "agentic_ocr": "",
            "segment_processing": '{"Table": {"html": "VLM", "model_id": "astra_lite"}}',
        },
    )
response.raise_for_status()
job_id = response.json()["job_id"]
print(f"Job submitted: {job_id}")