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

# Auto partition strategy

> The Auto strategy dynamically routes each page to the Fast, High Res, or VLM partitioning strategy at runtime, optimizing for the highest quality at the lowest cost.

*Type*: `partition`

*Subtype*: `vlm`

For more information about how the various partitioning strategies balance output quality, speed, and cost, see [Partitioning](/concepts/partitioning).

## Usage guidance

Use the Auto strategy when source documents have unknown or varied characteristics; for example, documents containing a mix of forms, tables, scanned pages, and extractable text. Each page is independently evaluated and routed to VLM, High Res, or Fast partitioning.

Pages with tables are routed to High Res to support downstream enrichment nodes such as [Table to HTML](/api-reference/workflow/nodes/enhancement/prompter-table-to-html).

For uniformly image-heavy or visually complex documents, use the [VLM](/api-reference/workflow/nodes/transform/partitioner-vlm) strategy instead.

## Settings

<ParamField body="provider" type="string">
  VLM provider to use if Auto routing selects the VLM strategy. Allowed values: `anthropic`, `auto`, `bedrock`, `openai`, `vertexai`. Default: `anthropic`.
</ParamField>

<ParamField body="provider_api_key" type="string">
  If specified, overrides the default API key used for VLM provider calls. Default: none (uses Unstructured's internal default).
</ParamField>

<ParamField body="model" type="string">
  VLM model to use if Auto routing selects the VLM strategy. Default: `claude-sonnet-4-20250514`.

  For a full list of the models available in Unstructured, see [Available models](/api-reference/workflow/models).
</ParamField>

<ParamField body="output_format" type="string">
  Format of the partitioner response. Allowed values: `text/html`, `application/json`. Default: `text/html`.
</ParamField>

<ParamField body="format_html" type="boolean">
  If `true`, applies Beautiful Soup's `prettify` method to any HTML generated by the VLM partitioner, adding indentation for readability. Default: `true`.
</ParamField>

<ParamField body="unique_element_ids" type="boolean">
  If `true`, assigns UUIDs to element IDs, guaranteeing uniqueness (useful when used as database primary keys). If `false`, assigns a SHA-256 hash of the element's text as its ID. Default: `true`.
</ParamField>

<ParamField body="is_dynamic" type="boolean" required>
  Must be `true` to enable dynamic routing of pages to Fast, High Res, or VLM as needed for optimal performance and cost.
</ParamField>

<ParamField body="allow_fast" type="boolean" required>
  Must be `true` to allow routing of pages to Fast partitioning for better performance and cost savings.
</ParamField>

<RequestExample>
  ```python Python SDK theme={null}
  auto_partitioner_workflow_node = WorkflowNode(
      name="Partitioner",
      subtype="vlm",
      type="partition",
      settings={
          "provider": "<provider>",
          "provider_api_key": None,
          "model": "<model>",
          "output_format": "<output-format>",
          "format_html": <True|False>,
          "unique_element_ids": <True|False>,
          "is_dynamic": True,
          "allow_fast": True
      }
  )
  ```

  ```json cURL theme={null}
  {
      "name": "Partitioner",
      "type": "partition",
      "subtype": "vlm",
      "settings": {
          "provider": "<provider>",
          "provider_api_key": null,
          "model": "<model>",
          "output_format": "<output-format>",
          "format_html": <true|false>,
          "unique_element_ids": <true|false>,
          "is_dynamic": true,
          "allow_fast": true
      }
  }
  ```
</RequestExample>
