> This page is for version v2026-02-09 (default).
> For other versions, use one of these documentation indexes:
> - v2026-02-09 (default): https://docs.extend.ai/2026-02-09/llms.txt
> - v2025-04-21: https://docs.extend.ai/2025-04-21/llms.txt
> - v2024-12-23: https://docs.extend.ai/2024-12-23/llms.txt

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.extend.ai/llms.txt
> Use this file to discover all available pages before exploring further.
>
> ## API version
> The current API version is `2026-02-09`, served at the site root (no version prefix in URLs).
> If this page URL contains `/2025-04-21/` or `/2024-12-23/`, you are reading an older API version.
> Prefer the current docs at https://docs.extend.ai/llms.txt unless the user explicitly needs that older version.
> Do not treat older-version pages as the source of truth for new integrations.

# Workflow Deleted

POST 

Reference: https://docs.extend.ai/api-reference/webhook-events/workflow/workflow-deleted-webhook

## Request

### Payload

- `eventId` (string, required) — Unique identifier for the event
- `payload` (Workflow, required) — A workflow with its draft version and steps.

## Types

### Workflow

A workflow with its draft version and steps.

- `object` (enum, required) — The type of object. Always `"workflow"`.
  - Allowed values: `workflow`
- `id` (string, required) — The ID of the workflow.
- `name` (string, required) — The name of the workflow.
- `createdAt` (string, required) — The time (in UTC) at which the object was created. Will follow the RFC 3339 format. Example: `"2024-03-21T16:45:00Z"`
- `updatedAt` (string, required) — The time (in UTC) at which the object was last updated. Will follow the RFC 3339 format. Example: `"2024-03-21T16:45:00Z"`
- `draftVersion` (WorkflowVersion, required) — A workflow version with its step definitions.
- `createdBy` (CreatedBy, required) — The actor that created this resource. * `user` — the resource was created via the studio by a logged-in user. The user's `email` is exposed. * `api_key` — the resource was created via the API using an API key. The key's `name` is exposed. May be `null` for resources created before attribution.

### WorkflowVersion

A workflow version with its step definitions.

- `object` (enum, required) — The type of object. Always `"workflow_version"`.
  - Allowed values: `workflow_version`
- `id` (string, required) — The ID of the workflow version.
- `version` (string, required) — The version number as a string, or `"draft"` for the draft version.
- `name` (string, required, nullable) — The name of the workflow version.
- `steps` (list of WorkflowStepDefinition, required) — The step definitions for this version.
- `createdAt` (string, required) — The time (in UTC) at which the object was created. Will follow the RFC 3339 format. Example: `"2024-03-21T16:45:00Z"`
- `createdBy` (CreatedBy, required) — The actor that created this resource. * `user` — the resource was created via the studio by a logged-in user. The user's `email` is exposed. * `api_key` — the resource was created via the API using an API key. The key's `name` is exposed. May be `null` for resources created before attribution.

### CreatedBy

The actor that created this resource. * `user` — the resource was created via the studio by a logged-in user. The user's `email` is exposed. * `api_key` — the resource was created via the API using an API key. The key's `name` is exposed. May be `null` for resources created before attribution.

- `type`: `user` (user)
  - `email` (string, required) — The email address of the user who created the resource.
- `type`: `api_key` (api_key)
  - `name` (string, required) — The name of the API key that created the resource.

### WorkflowStepDefinition

A workflow step definition used when creating, updating, deploying, and retrieving workflow versions. See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for routing patterns and examples.

### TriggerStepDefinition

The entry point of the workflow. Every workflow must have exactly one trigger step, and it must route to exactly one `PARSE` step. See the [Trigger step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#trigger).

- `name` (string, required) — Unique name for this step.
- `type` (enum, required)
  - Allowed values: `TRIGGER`
- `next` (list of SimpleNextEntry, optional) — Must contain exactly one downstream step, and that step should be the workflow's `PARSE` step.

### ParseStepDefinition

Parses file content (OCR, text extraction). Every workflow should have exactly one parse step immediately after the trigger. See the [Parse step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#parse).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `PARSE`
- `config` (ParseStepDefinitionConfig, optional)
- `next` (list of SimpleNextEntry, optional)

### ExtractStepDefinition

Extracts structured data from parsed content using an extractor. The step's extractor can be specified in one of two ways: - **Saved reference** (`extractor`): references a saved extractor by ID. The reference must include an explicit `version` — `"latest"`, `"draft"`, or a specific semver string (e.g. `"1.0"`). - **Inline config** (`extractorConfig`): embeds the full extractor configuration directly in the step. No saved extractor is needed, so the workflow definition contains no workspace-specific processor IDs and is portable across workspaces. See the [Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#extract).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `EXTRACT`
- `config` (ExtractStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `extractor` (saved processor reference) or `extractorConfig` (inline configuration) — not both.
- `next` (list of SimpleNextEntry, optional) — Can only be set when `config` is present.

### ClassifyStepDefinition

Classifies documents using a classifier. Routes to different next steps based on classification result. The step's classifier can be specified in one of two ways: - **Saved reference** (`classifier`): references a saved classifier by ID. The reference must include a pinned `version` — `"latest"` is not supported for `CLASSIFY` steps. Use a specific semver string (e.g. `"0.1"`) or `"draft"`. This is because classification IDs used for routing are tied to a specific processor version's config. - **Inline config** (`classifierConfig`): embeds the full classifier configuration directly in the step. No saved classifier is needed, so the workflow definition contains no workspace-specific processor IDs and is portable across workspaces. Routing (`next[].classificationId`) validates against the inline `classifications` array. See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `CLASSIFY`
- `config` (ClassifyStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `classifier` (saved processor reference) or `classifierConfig` (inline configuration) — not both. The `next[].classificationId` values must match classification `id` values (not `type` strings) from the classifier's configuration — the referenced version's config for a saved reference, or the inline `classifications` array for an inline config. For example, if the classifier defines `{ "id": "cls_invoice", "type": "invoice" }`, use `"cls_invoice"` as the `classificationId`. See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).
- `next` (list of ClassificationNextEntry, optional) — Can only be set when `config` is present. Each entry must include a `classificationId` matching a classification `id` from the classifier's configuration (saved or inline). Use the classification's stable `id` (e.g. `"cls_invoice"`), not the `type` string. See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).

### SplitStepDefinition

Splits a multi-document file into individual documents using a splitter. Routes to different next steps based on split type. The step's splitter can be specified in one of two ways: - **Saved reference** (`splitter`): references a saved splitter by ID. The reference must include a pinned `version` — `"latest"` is not supported for `SPLIT` steps. Use a specific semver string (e.g. `"0.1"`) or `"draft"`. This is because classification IDs used for routing are tied to a specific processor version's config. - **Inline config** (`splitterConfig`): embeds the full splitter configuration directly in the step. No saved splitter is needed, so the workflow definition contains no workspace-specific processor IDs and is portable across workspaces. Routing (`next[].classificationId`) validates against the inline `splitClassifications` array. See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `SPLIT`
- `config` (SplitStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `splitter` (saved processor reference) or `splitterConfig` (inline configuration) — not both. The `next[].classificationId` values must match split classification `id` values (not `type` strings) from the splitter's configuration — the referenced version's config for a saved reference, or the inline `splitClassifications` array for an inline config. For example, if the splitter defines `{ "id": "cls_receipt", "type": "receipt" }`, use `"cls_receipt"` as the `classificationId`. See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).
- `next` (list of ClassificationNextEntry, optional) — Can only be set when `config` is present. Each entry must include a `classificationId` matching a split classification `id` from the splitter's configuration (saved or inline). Use the classification's stable `id` (e.g. `"cls_receipt"`), not the `type` string. See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).

### MergeExtractStepDefinition

Merges extraction outputs from multiple upstream extract steps. See the [Merge Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#merge-extract).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `MERGE_EXTRACT`
- `config` (MergeExtractStepDefinitionConfig, optional)
- `next` (list of SimpleNextEntry, optional)

### ConditionalStepDefinition

Routes to different next steps based on ordered conditional branches evaluated against upstream step outputs. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `CONDITIONAL`
- `config` (ConditionalStepDefinitionConfig, required)
- `next` (list of ConditionalNextEntry, optional) — Each entry should include a `conditionId` matching a `config.conditions[].id` value. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).

### ConditionalExtractStepDefinition

Runs extractors based on formula conditions. Each extractor reference must include an explicit `version`. Valid values are `"latest"`, `"draft"`, or a specific semver string (e.g. `"1.0"`). Rules only support saved extractor references — inline configs are not supported in `CONDITIONAL_EXTRACT` rules. See the [Conditional Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `CONDITIONAL_EXTRACT`
- `config` (ConditionalExtractStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.
- `next` (list of SimpleNextEntry, optional) — Can only be set when `config` is present.

### ExternalDataValidationStepDefinition

Sends extraction data to an external HTTP endpoint for validation. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `EXTERNAL_DATA_VALIDATION`
- `config` (ExternalDataValidationStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.
- `next` (list of SimpleNextEntry, optional) — Can only be set when `config` is present.

### WebhookResponseStepDefinition

A terminal step that triggers webhook delivery of the workflow results. See the [Webhook Response step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#webhook-response).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `WEBHOOK_RESPONSE`

### RuleValidationStepDefinition

Validates extraction outputs against formula-based rules. Routes to pass/fail next steps. See the [Rule Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `RULE_VALIDATION`
- `config` (RuleValidationStepDefinitionConfig, optional) — Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.
- `next` (list of RuleValidationNextEntry, optional) — Can only be set when `config` is present. Each entry must include a `result` of `"pass"` or `"fail"` to route based on whether all validation rules passed. See the [Rule Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).

### ValidationStepDefinition

Evaluates code and semantic validation blocks and routes to pass or fail next steps.

- `name` (string, required) — Unique name for this step.
- `type` (enum, required)
  - Allowed values: `VALIDATION`
- `config` (ValidationStepDefinitionConfig, optional) — Optional. Omit on update to preserve the step's existing validation blocks. Omitted in responses when no blocks are configured.
- `next` (list of ValidationNextEntry, optional) — Routes to downstream steps based on whether all validation blocks passed.

### RouterStepDefinition

Evaluates branch predicates in order and routes through the first matching branch. Uses the `"otherwise"` route when no branch matches.

- `name` (string, required) — Unique name for this step.
- `type` (enum, required)
  - Allowed values: `ROUTER`
- `config` (RouterStepDefinitionConfig, optional) — Optional. Omit on update to preserve the step's existing branches.
- `next` (list of RouterNextEntry, optional) — Routes to downstream steps by branch ID, including the reserved `"otherwise"` route.

### HumanReviewStepDefinition

Pauses the workflow for human review in the dashboard. See the [Human Review step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#human-review).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `HUMAN_REVIEW`
- `next` (list of SimpleNextEntry, optional)

### CollectStepDefinition

Collects outputs from multiple upstream branches before continuing. See the [Collect step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#collect).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `COLLECT`
- `next` (list of SimpleNextEntry, optional)

### FileConversionStepDefinition

Converts files to a different format. See the [File Conversion step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#file-conversion).

- `name` (string, required)
- `type` (enum, required)
  - Allowed values: `FILE_CONVERSION`
- `config` (FileConversionStepDefinitionConfig, optional)
- `next` (list of SimpleNextEntry, optional)

### SimpleNextEntry

A next entry for non-branching steps. Routes to the target step unconditionally.

- `step` (string, required) — The name of the target step.

### ParseStepDefinitionConfig

- `parseConfig` (ParseConfig, optional) — Configuration options for the parsing process. Defaults depend on the selected parser engine and version.

### ExtractStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `extractor` (saved processor reference) or `extractorConfig` (inline configuration) — not both.

- `extractor` (ExtractorRef, optional) — Reference to a saved extractor. Provide either this or `extractorConfig`, not both.
- `extractorConfig` (WorkflowInlineExtractConfig, optional) — Inline extractor configuration. Provide either this or `extractor`, not both. Unlike the run endpoints, `schema` is required — schema-less extraction is not supported in workflows. Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is involved).

### ClassifyStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `classifier` (saved processor reference) or `classifierConfig` (inline configuration) — not both. The `next[].classificationId` values must match classification `id` values (not `type` strings) from the classifier's configuration — the referenced version's config for a saved reference, or the inline `classifications` array for an inline config. For example, if the classifier defines `{ "id": "cls_invoice", "type": "invoice" }`, use `"cls_invoice"` as the `classificationId`. See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).

- `classifier` (ClassifierRef, optional) — Reference to a saved classifier. Provide either this or `classifierConfig`, not both. The `version` is required and must be a pinned version (semver like `"0.1"` or `"draft"`). `"latest"` is not allowed.
- `classifierConfig` (ClassifyConfig, optional) — Inline classifier configuration. Provide either this or `classifier`, not both. Same shape as the `config` accepted by [Create Classify Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/create-classify-run). Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is involved).

### ClassificationNextEntry

A next entry for `CLASSIFY` and `SPLIT` steps. Routes based on the classification result. See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for end-to-end examples.

- `step` (string, required) — The name of the target step.
- `classificationId` (string, required) — Must match a classification `id` from the referenced classifier's or splitter's configuration (e.g. `"cls_invoice"`). Classification IDs are stable across renames — if a classification type is renamed, the ID stays the same and routing continues to work.

### SplitStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured. When present, must contain exactly one of `splitter` (saved processor reference) or `splitterConfig` (inline configuration) — not both. The `next[].classificationId` values must match split classification `id` values (not `type` strings) from the splitter's configuration — the referenced version's config for a saved reference, or the inline `splitClassifications` array for an inline config. For example, if the splitter defines `{ "id": "cls_receipt", "type": "receipt" }`, use `"cls_receipt"` as the `classificationId`. See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).

- `splitter` (SplitterRef, optional) — Reference to a saved splitter. Provide either this or `splitterConfig`, not both. The `version` is required and must be a pinned version (semver like `"0.1"` or `"draft"`). `"latest"` is not allowed.
- `splitterConfig` (SplitConfig, optional) — Inline splitter configuration. Provide either this or `splitter`, not both. Same shape as the `config` accepted by [Create Split Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/split/create-split-run). Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is involved).

### MergeExtractStepDefinitionConfig

- `mergeOrder` (enum, optional) — How to order fields when merging. Defaults to confidence. See the [Merge Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#merge-extract).
  - Allowed values: `confidence`, `alphabetic`, `first_to_execute`, `last_to_execute`

### ConditionalStepDefinitionConfig

- `conditions` (list of ConditionalStepDefinitionConfigConditionsItems, required) — Ordered conditional branches for this step. Use `IF` for the first branch, `ELSE_IF` for additional branches, and `ELSE` for the fallback branch. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).

### ConditionalNextEntry

A next entry for `CONDITIONAL` steps. Routes based on which condition branch matched. See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for end-to-end examples.

- `step` (string, required) — The name of the target step.
- `conditionId` (string, required) — Must match one of the `config.conditions[].id` values on the conditional step.

### ConditionalExtractStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.

- `rules` (list of ConditionalExtractStepDefinitionConfigRulesItems, required) — Formula-based extractor rules for this step. Each rule pairs a formula with an extractor reference. The last rule must have `formula: "TRUE"` as a default catch-all. See the [Conditional Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract).

### ExternalDataValidationStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.

- `requestOptions` (ExternalDataValidationStepDefinitionConfigRequestOptions, required) — HTTP request configuration for the external validation call. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
- `failureBehavior` (enum, optional) — Whether to continue or exit the workflow on validation failure. Defaults to `CONTINUE`. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
  - Allowed values: `CONTINUE`, `EXIT`

### RuleValidationStepDefinitionConfig

Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is not yet configured.

- `rules` (list of RuleValidationStepDefinitionConfigRulesItems, required) — Validation rules for this step. Each rule defines a name and a boolean formula. See the [Rule Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).

### RuleValidationNextEntry

A next entry for `RULE_VALIDATION` steps. Routes based on whether all validation rules passed. See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for end-to-end examples.

- `step` (string, required) — The name of the target step.
- `result` (enum, required) — Routes based on whether all validation rules passed.
  - Allowed values: `pass`, `fail`

### ValidationStepDefinitionConfig

Optional. Omit on update to preserve the step's existing validation blocks. Omitted in responses when no blocks are configured.

- `blocks` (list of ValidationBlockInput, required) — Validation blocks for this step. All blocks must pass for the step to be valid.

### ValidationNextEntry

A next entry for `VALIDATION` steps. Routes based on whether all validation blocks passed.

- `step` (string, required) — The name of the target step.
- `result` (enum, required) — Use `"pass"` when all validation blocks passed, or `"fail"` otherwise.
  - Allowed values: `pass`, `fail`

### RouterStepDefinitionConfig

Optional. Omit on update to preserve the step's existing branches.

- `branches` (list of RouterStepDefinitionConfigBranchesItems, required) — Branch predicates in evaluation order.

### RouterNextEntry

A next entry for `ROUTER` steps. Routes based on the first matching branch.

- `step` (string, required) — The name of the target step.
- `branchId` (string, required) — Must match a `config.branches[].id` value, or `"otherwise"` for the route taken when no branch matches.

### FileConversionStepDefinitionConfig

- `failureBehavior` (enum, optional) — Whether to continue or exit the workflow if file conversion fails. Defaults to `EXIT`. See the [File Conversion step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#file-conversion).
  - Allowed values: `CONTINUE`, `EXIT`

### ParseConfig

Configuration options for the parsing process. Defaults depend on the selected parser engine and version.

- `target` (enum, optional, default: markdown) — The target format for the parsed content. Supported values: * `markdown`: True markdown with logical reading order (headings, lists, tables, checkboxes). Best default for LLMs/RAG and enables section-based chunking. * `spatial`: Layout/position-preserving text that uses markdown elements for block types but is not strictly markdown due to whitespace/tabs used to maintain placement. Only page-based chunking is supported. Guidance: * Prefer `markdown` for most documents, multi-column reading order, and retrieval use cases * Prefer `spatial` for messy/scanned/handwritten or skewed documents, when you need near 1:1 layout fidelity, or for BOL-like logistics docs See “Markdown vs Spatial” in the [Parse guide](https://docs.extend.ai/2026-02-09/parsing/configuration#target-format) for details.
  - Allowed values: `markdown`, `spatial`
- `chunkingStrategy` (ParseConfigChunkingStrategy, optional) — Strategy for dividing the document into chunks.
- `engine` (enum, optional, default: parse_performance) — The parsing engine to use. Supported values: * `parse_performance`: Full-featured parsing engine with highest accuracy (default) * `parse_light`: Lightweight parsing engine optimized for high-volume, cost-sensitive ingestion. Uses the new layout model with full layout support and the markdown target at lower cost and latency, but performs worse than `parse_performance` on lower-quality scans, harder handwriting, larger tables, non-Latin-based languages, and dense checkbox regions. * `parse_auto`: Adaptive parsing that classifies difficulty and routes work per page — simple pages are parsed with the parse_light model pipeline while complex pages get performance-level model treatment. Billed per page by complexity.
  - Allowed values: `parse_performance`, `parse_light`, `parse_auto`
- `engineVersion` (string, optional, default: latest) — Pin a specific parser engine version for reproducibility. When set to `latest`, the most recent stable version of the selected engine is used.
- `blockOptions` (ParseConfigBlockOptions, optional) — Options for controlling how different block types are processed.
- `advancedOptions` (ParseConfigAdvancedOptions, optional)

### ExtractorRef

A reference to an extractor.

- `id` (string, required) — The extractor ID.
- `version` (string, required) — The extractor version to use: `"latest"` (most recent published version), `"draft"`, or a specific semver string (e.g. `"1.0"`).

### WorkflowInlineExtractConfig

An inline extractor configuration for an `EXTRACT` workflow step. Same shape as the `config` accepted by [Create Extract Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/create-extract-run), except `schema` is required — schema-less extraction (inferring the schema from the file at run time) is not supported in workflows.

- `schema` (map from string to any, required) — JSON Schema definition of the data to extract. Required for inline workflow configs. See the [JSON Schema guide](https://docs.extend.ai/2026-02-09/extraction/schema) for details and examples of schema configuration.
- `baseProcessor` (enum, optional, default: extraction_performance) — The base processor to use. For extractors, this can be `"extraction_performance"`, `"extraction_light"`, or `"extraction_operator"`. Defaults to `"extraction_performance"` if not provided. See [Extraction Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more details. `"extraction_operator"` selects [Operator](https://docs.extend.ai/2026-02-09/extraction/operator).
  - Allowed values: `extraction_performance`, `extraction_light`, `extraction_operator`
- `baseVersion` (string, optional) — The version of the `"extraction_performance"`, `"extraction_light"`, or `"extraction_operator"` processor to use. If not provided, the latest stable version will be used. See [Extraction Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more details.
- `extractionRules` (string, optional) — Custom rules to guide the extraction process in natural language.
- `advancedOptions` (ExtractAdvancedOptions, optional) — Advanced configuration options.
- `parseConfig` (ParseConfig, optional) — Configuration options for the parsing process.

### ClassifierRef

A reference to a classifier.

- `id` (string, required) — The classifier ID.
- `version` (string, required) — The classifier version to use: `"draft"` or a specific semver string (e.g. `"0.1"`). `"latest"` is not allowed because classification IDs used for routing are tied to a specific version's config.

### ClassifyConfig

- `classifications` (list of Classification, required) — Array of possible classifications. Must provide at least one classification. At least one classification must have the type `"other"`. Each classification item must have a unique id.
- `baseProcessor` (enum, optional, default: classification_performance) — The base processor to use. For classifiers, this can be either `"classification_performance"` or `"classification_light"`. Defaults to `"classification_performance"` if not provided. See [Classification Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for more details.
  - Allowed values: `classification_performance`, `classification_light`
- `baseVersion` (string, optional) — The version of the `"classification_performance"` or `"classification_light"` processor to use. If not provided, the latest stable version for the selected `baseProcessor` will be used automatically. See [Classification Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for more details.
- `classificationRules` (string, optional) — Custom rules to guide the classification process in natural language.
- `advancedOptions` (ClassifyAdvancedOptions, optional) — Advanced configuration options.
- `parseConfig` (ParseConfig, optional) — Configuration options for the parsing process.

### SplitterRef

A reference to a splitter.

- `id` (string, required) — The splitter ID.
- `version` (string, required) — The splitter version to use: `"draft"` or a specific semver string (e.g. `"0.1"`). `"latest"` is not allowed because classification IDs used for routing are tied to a specific version's config.

### SplitConfig

- `splitClassifications` (list of SplitClassification, required) — Array of split classifications that define the possible types of document sections. Must provide at least one classification. At least one classification must have the type `"other"`. Each classification item must have a unique id.
- `baseProcessor` (enum, optional, default: splitting_performance) — The base processor to use. For splitters, this can be either `"splitting_performance"` or `"splitting_light"`. Defaults to `"splitting_performance"` if not provided. See [Splitting Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more details.
  - Allowed values: `splitting_performance`, `splitting_light`
- `baseVersion` (string, optional) — The version of the `"splitting_performance"` or `"splitting_light"` processor to use. If not provided, the latest stable version for the selected `baseProcessor` will be used automatically. See [Splitting Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more details.
- `splitRules` (string, optional) — Custom rules to guide the document splitting process in natural language.
- `advancedOptions` (SplitAdvancedOptions, optional) — Advanced configuration options.
- `parseConfig` (ParseConfig, optional) — Configuration options for the parsing process.

### ConditionalStepDefinitionConfigConditionsItems

- `id` (string, required) — Unique ID for this condition branch.
- `type` (enum, required)
  - Allowed values: `IF`, `ELSE_IF`, `ELSE`
- `operation` (enum, optional) — The comparison operation for this branch. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
  - Allowed values: `EQUALS`, `GTE`, `LTE`, `IS_NULL`, `CONTAINS`, `NO_OP`
- `leftOperand` (string, optional) — The left operand expression. This is typically a workflow variable or dynamic expression. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
- `rightOperand` (string, optional) — The right operand value. This is typically a literal comparison value and is omitted for fallback branches like `ELSE`. See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).

### ConditionalExtractStepDefinitionConfigRulesItems

- `formula` (string, required) — The formula that determines when this extractor runs. See the [Conditional Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract) and [Formulas](https://docs.extend.ai/2026-02-09/workflows/formulas).
- `extractor` (ExtractorRef, required) — A reference to an extractor.
- `name` (string, optional)

### ExternalDataValidationStepDefinitionConfigRequestOptions

HTTP request configuration for the external validation call. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).

- `url` (string, required) — The URL to send the validation request to.
- `method` (enum, required)
  - Allowed values: `GET`, `POST`, `PUT`
- `headers` (map from string to string, optional) — Optional HTTP headers to include on the external validation request. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
- `contentType` (enum, optional) — Content type of the request body sent to the external endpoint. See the [External Data Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
  - Allowed values: `application/json`, `text/plain`

### RuleValidationStepDefinitionConfigRulesItems

- `name` (string, required)
- `formula` (string, required) — Boolean formula used to validate the workflow data for this rule. See the [Rule Validation step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation) and [Formulas](https://docs.extend.ai/2026-02-09/workflows/formulas).
- `description` (string, optional)

### ValidationBlockInput

A code or semantic validation block. References to upstream steps in code and prompt text use public step names.

- `blockType`: `code` (code)
  - `code` (ValidationCodeBlockInputCode, required)
  - `name` (string, required) — The name of the validation block.
  - `id` (string, optional) — The block ID. Generated when omitted.
- `blockType`: `semantic` (semantic)
  - `name` (string, required) — The name of the validation block.
  - `semantic` (ValidationSemanticBlockInputSemantic, required)
  - `id` (string, optional) — The block ID. Generated when omitted.

### RouterStepDefinitionConfigBranchesItems

- `id` (string, required) — Unique branch ID within this step. `"otherwise"` is reserved for the implicit fall-through route.
- `name` (string, optional) — The branch name. Omit on update to preserve its existing name.
- `block` (ValidationBlockInput, optional) — The branch predicate. Omit to preserve an existing branch's block; new branches receive a default JavaScript block that returns true.

### ParseConfigChunkingStrategy

Strategy for dividing the document into chunks.

- `type` (enum, optional, default: page) — The type of chunking strategy. Supported values: * `page`: Chunk document by pages. * `document`: Entire document is a single chunk. Essentially no chunking. * `section`: Split by logical sections. Not supported for target=spatial.
  - Allowed values: `page`, `document`, `section`
- `options` (ParseConfigChunkingStrategyOptions, optional) — Additional options for the chunking strategy.

### ParseConfigBlockOptions

Options for controlling how different block types are processed.

- `figures` (ParseConfigBlockOptionsFigures, optional) — Options for figure blocks.
- `tables` (ParseConfigBlockOptionsTables, optional) — Options for table blocks.
- `text` (ParseConfigBlockOptionsText, optional) — Options for text blocks.
- `keyValue` (ParseConfigBlockOptionsKeyValue, optional) — Options for key-value pair blocks.
- `barcodes` (ParseConfigBlockOptionsBarcodes, optional) — Options for barcode blocks.
- `formulas` (ParseConfigBlockOptionsFormulas, optional) — Options for formula blocks.

### ParseConfigAdvancedOptions

- `pageRotationEnabled` (boolean, optional, default: true) — Whether to automatically detect and correct page rotation.
- `pageRanges` (list of PageRangesItems, optional) — Limit processing to the specified page ranges. See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
- `excelParsingMode` (enum, optional) — Controls how Excel files are parsed. * `basic`: Fast, deterministic parsing. * `advanced`: Enable layout block detection for complex spreadsheets. This mode incurs additional credits when enabled. For `.xls` files, `basic` mode is always used.
  - Allowed values: `basic`, `advanced`
- `excelSkipHiddenContent` (boolean, optional, default: false) — Whether to exclude hidden rows, columns, and sheets when parsing Excel files.
- `excelUseRawCellValues` (boolean, optional, default: false) — Whether to return raw calculated cell values instead of locale-formatted values when parsing Excel files. Useful when downstream processing needs the underlying numeric or unformatted data.
- `excelSkipCalculation` (boolean, optional, default: true) — Whether to skip formula recalculation when opening Excel workbooks. Significantly improves parsing speed for formula-heavy spreadsheets. Disable if cell values depend on volatile functions like NOW() or TODAY().
- `excelIncludeCellMetadata` (boolean, optional, default: false) — Whether to include spreadsheet cell provenance when parsing Excel files in advanced mode. When enabled, table cell block details include source cell references and formulas, text or heading block details can include source ranges, and HTML table output includes `data-cell` and `data-formula` attributes.
- `excelIncludeCellFormatting` (boolean, optional, default: false) — Whether to include spreadsheet cell formatting when parsing Excel files in advanced mode. When enabled, table cell block details include structured formatting such as bold, italic, font color, and background color, and HTML table output preserves inline cell styles.
- `verticalGroupingThreshold` (double, optional, default: 1) — Multiplier for the Y-axis threshold used to determine if text blocks should be placed on the same line or not (0.1-5.0, default 1.0). Higher values group elements that are further apart vertically. Only applies when the spatial target is set.
- `returnOcr` (ParseConfigAdvancedOptionsReturnOcr, optional) — Options for returning raw OCR data in the response.
- `alwaysConvertToPdf` (boolean, optional, default: false) — Whether to convert supported file types (images, Word documents, PowerPoint, Excel, HTML) to PDF before parsing. This can improve parsing quality for some file types and ensures spatial output with bounding boxes.
- `enrichmentFormat` (enum, optional, default: xml) — The format used for enrichment annotations in the output. * `xml`: Use XML-style tags for enrichment annotations, e.g. 1 or 1234567890 * `bracket`: Use bracket-style notation for enrichment annotations, e.g. \[page\_number: 1] or \[barcode: 1234567890]
  - Allowed values: `xml`, `bracket`
- `imageConversionQuality` (enum, optional, default: medium) — Controls the quality level when converting images or documents to PDF for parsing. * `high`: Maximum quality, can add some latency for large/dense documents * `medium`: Balanced quality and speed * `low`: Lower quality, smaller file sizes, faster processing
  - Allowed values: `high`, `medium`, `low`
- `formattingDetection` (list of ParseConfigAdvancedOptionsFormattingDetectionItems, optional) — Enable detection of formatting-based annotations in the document. Currently supports change tracking detection. When enabled, detected changes are represented inline within the `content` field of applicable blocks using standard HTML change-tracking elements: [`<ins>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins) for insertions and [`<del>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del) for deletions, grouped inside a `<change>` wrapper. Affected block types: `text`, `heading`, `section_heading`, `header`, `footer`. **Note:** Requires `engine: "parse_performance"` with `engineVersion >= "2.0.0"`.

### ExtractAdvancedOptions

- `modelReasoningInsightsEnabled` (boolean, optional) — Whether to enable model reasoning insights.
- `advancedMultimodalEnabled` (boolean, optional) — Whether to enable advanced multimodal features.
- `citationsEnabled` (boolean, optional) — Whether to enable citations in the output.
- `citationMode` (enum, optional, default: line) — Controls the granularity of citations returned alongside extracted values. Requires `citationsEnabled=true` and a base processor version that supports bounding box citations. - `line`: Use OCR lines for citations. This can return one or more relevant OCR lines for each citation. This is the default mode. - `word`: Narrow each matched citation down to the relevant OCR word span when possible. Note: this might still return line citations in cases where the citation model is unable to reliably narrow down to a word-level citation. Typically, this only makes sense when you are doing array extraction and want precise word citations from a given cell in a table to match an array property, e.g. `line_items.total`. - `block`: Use parser blocks (e.g. full paragraphs, key-val regions, tables, lists, etc.) and return block-level polygons for each citation. Will have highest recall in terms of overlap with the extracted value source, but least granularity.
  - Allowed values: `line`, `word`, `block`
- `arrayCitationStrategy` (enum, optional) — Granularity for array citations. Requires turning on citations: `citationsEnabled=true`. - `item`: Creates item-level citations for array fields. This will return a single bbox citation for each "item" in the array e.g. line_items[0], line_items[1], etc. - `property`: Creates property-level citations (cell-level citations) for array fields. This will return a citation for each property/cell for every item/row in the array, e.g. line_items[0].description, line_items[1].price, etc.
  - Allowed values: `item`, `property`
- `arrayStrategy` (ArrayStrategy, optional) — Strategy for handling large arrays in documents.
- `chunkingOptions` (ExtractChunkingOptions, optional) — Options controlling how documents are chunked before extraction.
- `excelSheetRanges` (list of ExcelSheetRange, optional) — Ranges of sheet indices to extract from Excel documents.
- `excelSheetSelectionStrategy` (enum, optional) — Strategy for selecting sheets from Excel documents.
  - Allowed values: `intelligent`, `all`, `first`, `last`
- `pageRanges` (list of PageRangesItems, optional) — Limit processing to the specified page ranges. See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
- `reviewAgent` (ExtractAdvancedOptionsReviewAgent, optional) — Configuration for the review agent that analyzes extraction results. When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5) and may include additional `insights` of type `issue` or `review_summary` to help identify fields that may need manual review. Enabling the review agent incurs additional credits. To learn more, view the [Review Agent Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
- `currentDateEnabled` (boolean, optional) — Whether to include the current date as context for the model during extraction. Defaults to `false`.

### Classification

- `id` (string, required) — Unique identifier for the classification. We recommend lowercase, underscore-separated format.
- `type` (string, required) — Type identifier for the classification.
- `description` (string, required) — A detailed description of the classification.

### ClassifyAdvancedOptions

- `context` (enum, optional, default: default) — The context to use for classification.
  - Allowed values: `default`, `max`
- `advancedMultimodalEnabled` (boolean, optional, default: true) — Enable advanced multimodal processing for better handling of visual elements during classification.
- `memoryEnabled` (boolean, optional, default: false) — Enable memory for enhanced processing by learning from past successful classifications.
- `pageRanges` (list of PageRangesItems, optional) — Limit processing to the specified page ranges. See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).

### SplitClassification

A classification for document splitting. Extends the base Classification with an optional `identifierKey` field for per-type identifier extraction rules.

- `id` (string, required) — Unique identifier for the classification. We recommend lowercase, underscore-separated format.
- `type` (string, required) — Type identifier for the classification.
- `description` (string, required) — A detailed description of the classification.
- `identifierKey` (string, optional) — A natural-language rule describing how to extract a unique identifier for subdocuments of this type. For example, `"Extract the invoice number from the document header"`. When provided, the splitter will extract the specified identifier for each subdocument of this type and include it in the output as the `identifier` field. This enables merging of related subdocuments that share the same extracted identifier. **Availability:** Supported on `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0. If provided on older versions, this field is accepted but ignored.

### SplitAdvancedOptions

- `splitExcelDocumentsBySheetEnabled` (boolean, optional, default: false) — For Excel documents, split by worksheet.
- `pageRanges` (list of PageRangesItems, optional) — Limit processing to the specified page ranges. See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
- `pageOverlapEnabled` (boolean, optional, default: false) — When enabled, the splitter will allow for page overlap when splitting a document such that a page can occur in multiple adjacent splits when context from the previous split is on the page and context from the next split is on the page. **Availability:** Supported on `splitting_light` >= 1.1.0 and `splitting_performance` >= 1.2.0. If provided on older versions, this field is accepted but ignored.
- `strictIdentifierModeEnabled` (boolean, optional) — When enabled, adjacent candidate sub-documents that share the same type and the same extracted identifier are merged into a single split before the splitter finalizes its boundaries. Use it when one logical document repeats its identifier across its pages — for example a multi-page invoice whose invoice number appears on every page. Identifiers come from the `identifierKey` rule on the matching classification in `splitClassifications` when one is defined. The splitter will always define a short descriptive identifier for each sub-document — make sure to define `identifierKey` on any classification you intend to merge by, so the identifier is a stable document-level value. **Default:** When omitted, this setting is enabled on `splitting_performance` >= 1.6.2 and `splitting_light` >= 1.4.1, and disabled on earlier versions. **Availability:** all `splitting_performance` versions and `splitting_light` >= 1.3.0
- `splitIdentifierRules` (string, optional, deprecated) — Custom rules for identifying split points. **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, use the `identifierKey` field on each classification in `splitClassifications` instead. This provides per-type identifier extraction rules rather than a single global rule. On those versions, this field is accepted but ignored if provided.
- `splitMethod` (enum, optional, default: high_precision, deprecated) — The method to use for splitting documents. `high_precision` is more accurate but slower, while `basic_precision` is faster but less precise. **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, this field has no impact and is ignored if provided. It is still accepted for compatibility with older integrations.
  - Allowed values: `high_precision`, `basic_precision`

### ValidationCodeBlockInputCode

- `language` (enum, required) — The code language. Only JavaScript is currently executable; Python blocks return an error when evaluated.
  - Allowed values: `javascript`, `python`
- `code` (string, required) — Code to evaluate against the workflow context. Router predicates must return a boolean or a boolean with reasoning.

### ValidationSemanticBlockInputSemantic

- `promptText` (string, required) — Natural-language instructions for validating the workflow data.

### ParseConfigChunkingStrategyOptions

Additional options for the chunking strategy.

- `minCharacters` (integer, optional, default: 500) — Specify a minimum number of characters per chunk.
- `maxCharacters` (integer, optional, default: 10000) — Specify a maximum number of characters per chunk.

### ParseConfigBlockOptionsFigures

Options for figure blocks.

- `enabled` (boolean, optional, default: true) — Whether to include figures in the output.
- `figureImageClippingEnabled` (boolean, optional, default: true) — Whether to clip and extract images from figures.
- `advancedChartExtractionEnabled` (boolean, optional, default: false) — Whether to enable advanced chart extraction using vision models for improved data extraction from charts.
- `customInstructions` (string, optional) — Custom instructions injected into the vision model prompt used to analyze and summarize figures. Use to steer figure descriptions toward your use case (e.g. domain terminology, details to always capture). Requires `enabled: true`. Available on `parse_performance` >= `2.0.0` and `parse_light` >= `1.0.0`.

### ParseConfigBlockOptionsTables

Options for table blocks.

- `targetFormat` (enum, optional, default: html) — The target format for the table blocks. Supported values: * `markdown`: Convert table to Markdown format * `html`: Convert table to HTML format
  - Allowed values: `markdown`, `html`
- `tableHeaderContinuationEnabled` (boolean, optional, default: false) — Whether to automatically copy table headers to headerless tables on subsequent pages when they have matching column counts. Useful for multi-page tables.
- `cellBlocksEnabled` (boolean, optional, default: false) — Whether to include individual table cell blocks in the output. When enabled, each cell in a table will be represented as a separate block with its own bounding box and content and will be `children` of the table block. Only supported on `parse_performance` engineVersion `1.0.1`.
- `agentic` (ParseConfigBlockOptionsTablesAgentic, optional) — Options for agentic table processing using VLM-based review and correction. Enabling this incurs additional credits on pages where agentic table correction is triggered.
- `enabled` (boolean, optional, default: true, deprecated) — This option is deprecated and will have no effect. It will be removed in the next API version.

### ParseConfigBlockOptionsText

Options for text blocks.

- `signatureDetectionEnabled` (boolean, optional, default: false) — Whether an additional vision model will be utilized for advanced signature detection. Recommended for most use cases, but should be disabled if signature detection is not necessary and latency is a concern.
- `agentic` (ParseConfigBlockOptionsTextAgentic, optional) — Options for agentic text processing using VLM-based review and correction. Enabling this incurs additional credits on pages where agentic text correction is triggered.

### ParseConfigBlockOptionsKeyValue

Options for key-value pair blocks.

- `blankFieldFormattingEnabled` (boolean, optional, default: false) — Whether to preserve blank field formatting for key-value pairs with empty values.

### ParseConfigBlockOptionsBarcodes

Options for barcode blocks.

- `imageClippingEnabled` (boolean, optional, default: false) — Whether to clip and extract images of barcodes. When enabled, barcode images will be available in the `imageUrl` field of BarcodeDetails.
- `readingEnabled` (boolean, optional, default: false) — Whether to decode and read barcode values. When enabled, decoded values will be available in the `decodedValue` field of BarcodeDetails.

### ParseConfigBlockOptionsFormulas

Options for formula blocks.

- `enabled` (boolean, optional, default: false) — Whether to enable formula detection and parsing. When enabled, mathematical formulas and equations are detected and their LaTeX representations are included in the output. When disabled, formulas will be detected as text blocks and may not be accurately parsed.

### PageRangesItems

- `start` (integer, required) — The start page of the range.
- `end` (integer, required, default: 750) — The end page of the range.

### ParseConfigAdvancedOptionsReturnOcr

Options for returning raw OCR data in the response.

- `words` (boolean, optional, default: false) — Whether to include word-level OCR data in the response, including word bounding boxes and confidence scores. This meaningfully impacts the response size, consider using the signed url return format.

### ParseConfigAdvancedOptionsFormattingDetectionItems

- `type` (enum, required) — The type of formatting detection to enable. * `"change_tracking"` — Detect tracked changes (insertions, deletions, substitutions) indicated by strikethroughs, colored text, or underlines in the source document.
  - Allowed values: `change_tracking`

### ArrayStrategy

- `type` (enum, required) — The strategy type for handling large array use cases. For most use cases this should be left null, or should be set to `large_array_heuristics`. If you're unsure of what your use case needs, reach out to the Extend team for help. - `large_array_heuristics`: Optimized for documents with very large arrays, but where latency matters. This strategy uses specialized heuristics around chunking, tables, and merging to handle large arrays efficiently over large documents. - `large_array_max_context`: Optimizes for accuracy over latency in documents with very large arrays. This strategy will do multiple passes through the entire document to ensure there is no context loss across any chunks/pages, maximizing accuracy for complex array extraction, but adding material latency. This strategy incurs additional extraction credits when enabled. - `large_array_overlap_context`: Balances accuracy and latency in documents with very large arrays. This strategy will always maintain surrounding/overlapping page context for every chunk/page that is extracted, eliminating array failure modes from context loss across page boundaries.
  - Allowed values: `large_array_heuristics`, `large_array_max_context`, `large_array_overlap_context`

### ExtractChunkingOptions

Options controlling how documents are chunked before extraction.

- `chunkingStrategy` (enum, optional) — The strategy to use for chunking the document.
  - Allowed values: `standard`, `semantic`, `contextual`
- `pageChunkSize` (integer, optional) — The size of page chunks.
- `chunkSelectionStrategy` (enum, optional) — The strategy to use for selecting chunks.
  - Allowed values: `intelligent`, `confidence`, `take_first`, `take_last`
- `customSemanticChunkingRules` (string, optional) — Custom rules for semantic chunking.

### ExcelSheetRange

- `start` (integer, required) — The starting sheet index (0-based).
- `end` (integer, required) — The ending sheet index (0-based). Must be greater than or equal to start.

### ExtractAdvancedOptionsReviewAgent

Configuration for the review agent that analyzes extraction results. When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5) and may include additional `insights` of type `issue` or `review_summary` to help identify fields that may need manual review. Enabling the review agent incurs additional credits. To learn more, view the [Review Agent Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)

- `enabled` (boolean, optional) — Whether to enable the review agent.

### ParseConfigBlockOptionsTablesAgentic

Options for agentic table processing using VLM-based review and correction. Enabling this incurs additional credits on pages where agentic table correction is triggered.

- `enabled` (boolean, optional, default: false) — Whether to enable agentic table processing.
- `customInstructions` (string, optional) — Custom instructions to guide the agentic table processing.

### ParseConfigBlockOptionsTextAgentic

Options for agentic text processing using VLM-based review and correction. Enabling this incurs additional credits on pages where agentic text correction is triggered.

- `enabled` (boolean, optional, default: false) — Whether to enable agentic text processing for OCR corrections.
- `customInstructions` (string, optional) — Custom instructions to guide the agentic text processing.