> ## 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.

# VLM strategy

> The VLM strategy uses a vision language model to deliver the highest-quality partitioning for image-heavy file types including PDFs, images, and scanned documents.

*Type*: `partition`

*Subtype*: `vlm`

## Settings

<ParamField body="provider" type="string">
  VLM provider to use. 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. 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 the 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 `false` to use the VLM strategy.
</ParamField>

<ParamField body="allow_fast" type="boolean">
  If `true`, allows pages to be routed to Fast partitioning as needed for better performance and cost savings. Default: `true`.
</ParamField>

<RequestExample>
  ```python Python SDK theme={null}
  vlm_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": False,
          "allow_fast": <True|False>
      }
  )
  ```

  ```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": false,
          "allow_fast": <true|false>
      }
  }
  ```
</RequestExample>
