> ## Documentation Index
> Fetch the complete documentation index at: https://www.unsiloed.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Processing Modes

> Preset parameter bundles for the /parse endpoint: Fast, Accurate, Agentic Lite, and Agentic.

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](https://www.unsiloed.ai/docs/api-reference/parser/get-parse-job-status.md)). Start with Fast and step up only when the output misses detail your pipeline depends on.

| Mode | Speed | Table handling | Reach for it when |
| - | - | - | - |
| **Fast** | Fastest | Single-pass tables | Documents are clean and digital: typed invoices, receipts, and simple tables. |
| **Accurate** | Moderate | Higher-fidelity single-pass tables | Layouts are complex or multi-column, but tables stay within a page. |
| **Agentic Lite** | Slower | Cross-page tables merged; each segment agentically re-read | Text-heavy documents that need verification, including tables spanning pages. |
| **Agentic** | Slowest | Cross-page tables merged; every segment re-read and reasoned over | Every value has to be right: contracts, regulatory filings, and low-quality scans. |

> [!WARNING]
>
> 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.

| Parameter | Fast | Accurate | Agentic Lite | Agentic |
| - | - | - | - | - |
| `ocr_engine` | `UnsiloedBeta` | `UnsiloedBeta` | `UnsiloedBeta` | `UnsiloedBeta` |
| `segment_processing.Table.html` | `VLM` | `VLM` | `VLM` | `VLM` |
| `segment_processing.Table.model_id` | `astra_lite` | `astra_v2` | `astra` | `astra_v3` |
| `agentic_ocr` | `null` | `null` | `standard` | `advanced` |
| `merge_tables` | `false` | `false` | `true` | `true` |

> [!NOTE]
>
> Modes are preset configurations. You can override any individual parameter after applying one. See the [Parse API reference](https://www.unsiloed.ai/docs/api-reference/parser/parse-document.md) for the full parameter list.

> [!NOTE]
>
> Modes don't set `segmentation_version` — it's orthogonal and composes with all four. Add `segmentation_version=v2` to any mode above when the documents are forms and you want `KeyValuePair` segments. See [Segmentation Version](https://www.unsiloed.ai/docs/api-reference/parser/parse-document.md#segmentation-version).

## Applying a Mode

The submit-and-poll flow is the same as in the [Quickstart](https://www.unsiloed.ai/docs/quickstart.md); 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.

```python Fast theme={null}
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}")
```

```python Accurate theme={null}
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_v2"}}',
        },
    )
response.raise_for_status()
job_id = response.json()["job_id"]
print(f"Job submitted: {job_id}")
```

```python Agentic Lite theme={null}
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": "true",
            "agentic_ocr": "standard",
            "segment_processing": '{"Table": {"html": "VLM", "model_id": "astra"}}',
        },
    )
response.raise_for_status()
job_id = response.json()["job_id"]
print(f"Job submitted: {job_id}")
```

```python Agentic theme={null}
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": "true",
            "agentic_ocr": "advanced",
            "segment_processing": '{"Table": {"html": "VLM", "model_id": "astra_v3"}}',
        },
    )
response.raise_for_status()
job_id = response.json()["job_id"]
print(f"Job submitted: {job_id}")
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.