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

# Configuration Overview

> How Reducto's configuration system works

Reducto's APIs have various configuration options that let you control how your documents are processed. This section covers all available configurations across the platform.

## Configuration by Endpoint

<Tabs>
  <Tab title="Parse">
    Parse converts documents into structured content. Options are grouped by purpose:

    | Group         | Purpose                           | Pages                                                                                                                     |
    | ------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
    | `enhance`     | AI-powered accuracy               | [Agentic Modes](/configs/parse/agentic-modes), [Chart Extraction](/configs/parse/chart-extraction)                        |
    | `retrieval`   | RAG optimization                  | [Chunking Methods](/configs/parse/chunking-methods)                                                                       |
    | `formatting`  | Detecting styling & output format | [Table Formats](/configs/parse/table-output-formats), [Additional Document Data](/configs/parse/additional-document-data) |
    | `spreadsheet` | Excel/CSV handling                | [Spreadsheet Processing](/configs/parse/spreadsheet)                                                                      |
    | `settings`    | Processing controls               | [Processing Settings](/configs/parse/ocr-settings), [Page Ranges](/configs/parse/page-ranges)                             |

    ```python theme={null}
    result = client.parse.run(
        input=upload,
        enhance={...},
        retrieval={...},
        formatting={...},
        spreadsheet={...},
        settings={...}
    )
    ```
  </Tab>

  <Tab title="Extract">
    Extract pulls structured data from documents using a JSON schema.

    | Group          | Purpose                     | Pages                                                                                          |
    | -------------- | --------------------------- | ---------------------------------------------------------------------------------------------- |
    | `instructions` | Schema and system prompt    | (base config)                                                                                  |
    | `settings`     | Citations, array extraction | [Array Extraction](/configs/extract/array-extraction), [Citations](/configs/extract/citations) |
    | `parsing`      | Document processing         | All Parse options                                                                              |

    ```python theme={null}
    result = client.extract.run(
        input=upload,
        instructions={"schema": {...}, "system_prompt": "..."},
        settings={"array_extract": True, "citations": {"enabled": True}},
        parsing={...}
    )
    ```
  </Tab>

  <Tab title="Split">
    Split divides documents into logical sections.

    | Group               | Purpose                | Pages                                               |
    | ------------------- | ---------------------- | --------------------------------------------------- |
    | `split_description` | Section definitions    | [Split Configuration](/configs/split/configuration) |
    | `split_rules`       | Splitting logic prompt | [Split Configuration](/configs/split/configuration) |
    | `settings`          | Table handling         | [Split Configuration](/configs/split/configuration) |
    | `parsing`           | Document processing    | All Parse options                                   |

    ```python theme={null}
    result = client.split.run(
        input=upload,
        split_description=[{"name": "...", "description": "..."}],
        split_rules="...",
        settings={"table_cutoff": "truncate"}
    )
    ```
  </Tab>

  <Tab title="Classify">
    Classify determines document type based on natural language criteria.

    | Group                   | Purpose               | Pages                                                     |
    | ----------------------- | --------------------- | --------------------------------------------------------- |
    | `classification_schema` | Category definitions  | [Classify Configuration](/configs/classify/configuration) |
    | `page_range`            | Pages used as context | [Classify Configuration](/configs/classify/configuration) |

    ```python theme={null}
    response = client.classify.run(
        input=upload,
        classification_schema=[
            {"category": "invoice", "criteria": ["billing info", "itemized charges"]},
            {"category": "contract", "criteria": ["legal terms", "signatures"]},
        ]
    )
    ```
  </Tab>

  <Tab title="Edit">
    Edit fills forms and modifies documents.

    | Option              | Purpose                       | Pages                                    |
    | ------------------- | ----------------------------- | ---------------------------------------- |
    | `edit_instructions` | Natural language instructions | (base config)                            |
    | `form_schema`       | Pre-defined field locations   | [Form Schema](/configs/edit/form-schema) |
    | `edit_options`      | Highlight color, overflow     | (base config)                            |

    ```python theme={null}
    result = client.edit.run(
        document_url=upload,
        edit_instructions="Fill name: John Doe, date: 2024-01-15",
        form_schema=[...],
        edit_options={"color": "#FF0000"}
    )
    ```
  </Tab>
</Tabs>

## Common Patterns

<AccordionGroup>
  <Accordion title="RAG-optimized parsing" icon="magnifying-glass">
    Variable chunking with embedding optimization for vector search:

    ```python theme={null}
    result = client.parse.run(
        input=upload,
        retrieval={
            "chunking": {"chunk_mode": "variable", "chunk_size": 1000},
            "embedding_optimized": True
        },
        formatting={"table_output_format": "dynamic"}
    )
    ```
  </Accordion>

  <Accordion title="High-accuracy processing" icon="bullseye">
    Enable agentic mode for both text and tables:

    ```python theme={null}
    result = client.parse.run(
        input=upload,
        enhance={
            "agentic": [{"scope": "text"}, {"scope": "table"}]
        }
    )
    ```
  </Accordion>

  <Accordion title="Complete extraction with citations" icon="quote-left">
    Array extraction with source locations for long documents:

    ```python theme={null}
    result = client.extract.run(
        input=upload,
        instructions={"schema": schema},
        settings={
            "array_extract": True,
            "citations": {"enabled": True}
        }
    )
    ```
  </Accordion>
</AccordionGroup>

## Migrating from v2

If you're using the legacy configuration format, use this converter to transform your v2 config to v3:

<div style={{ margin:"1.5em 0",border:"1px solid #e5e7eb",borderRadius:"8px",overflow:"hidden" }}>
  <iframe src="https://reductoai-dev--v2-to-v3-converter-run.modal.run/" style={{ width:"100%",minHeight:"600px",border:"none" }} title="Reducto V2 to V3 Config Converter" allow="clipboard-read; clipboard-write" />
</div>

See the [Migration Guide](/v/legacy/migration-guide) for complete mapping tables and examples.
