Split File (Async)

Split a document into multiple parts using an existing splitter or an inline configuration. The request returns immediately with a `PROCESSING` status. Use webhooks or poll the [Get Split Run](https://docs.extend.ai/2026-02-09/developers/api-reference/endpoints/split/get-split-run) endpoint for results. See [Async Processing](https://docs.extend.ai/2026-02-09/developers/async-processing) for a full guide on polling helpers and webhooks. ## Polling with the SDK The SDK provides a `createAndPoll` / `create_and_poll` method that handles polling automatically, returning when the run reaches a terminal state (`PROCESSED`, `FAILED`, or `CANCELLED`): <Tabs> <Tab title="TypeScript"> ```typescript const result = await client.splitRuns.createAndPoll({ splitter: { id: "spl_abc123" }, file: { url: "https://..." } }); // Returns when the run reaches a terminal state console.log(result.output); ``` </Tab> <Tab title="Python"> ```python result = client.split_runs.create_and_poll( splitter={"id": "spl_abc123"}, file={"url": "https://..."} ) # Returns when the run reaches a terminal state print(result.output) ``` </Tab> <Tab title="Java"> ```java var result = client.splitRuns().createAndPoll(SplitRunCreateRequest.builder() .splitter(SplitterInput.builder().id("spl_abc123").build()) .file(FileInput.builder().url("https://...").build()) .build()); // Returns when the run reaches a terminal state System.out.println(result.getOutput()); ``` </Tab> </Tabs>

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

x-extend-api-version"2026-02-09"Optional

API version to use for the request. If you’re using an SDK, you can ignore this parameter. If you are not using an SDK and do not specify a version, you will either receive a 400 Bad Request or be set to a previous legacy version. See API Versioning for more details.

Request

This endpoint expects an object.
fileobjectRequired
The file to be split. Files can be provided as a URL or an Extend file ID.
splitterobjectOptional

Reference to an existing splitter. One of splitter or config must be provided.

configobjectOptional

Inline splitter configuration. One of splitter or config must be provided.

priorityintegerOptional1-100Defaults to 50
An optional value used to determine the relative order of runs when rate limiting is in effect. Lower values will be prioritized before higher values.
metadatamap from strings to anyOptional
An optional object that can be passed in to identify the run. It will be returned back to you in the response and webhooks. Maximum size is 10KB. To categorize runs for billing and usage tracking, include `extend:usage_tags` with an array of string values (e.g., `{"extend:usage_tags": ["production", "team-eng", "customer-123"]}`). Tags must contain only alphanumeric characters, hyphens, and underscores; any special characters will be automatically removed.

Response

Split completed successfully
objectenum

The type of object. Will always be "split_run".

Allowed values:
idstring

The unique identifier for this split run.

Example: "splr_Xj8mK2pL9nR4vT7qY5wZ"

splitterobject or null

The splitter that was used for this run.

Availability: Present when a splitter reference was provided. Not present when using inline config.

splitterVersionobject or null

The version of the splitter that was used for this run.

Availability: Present when a splitter reference was provided. Not present when using inline config.

statusenum
The status of a processor run (extract, classify, or split): * `"PROCESSING"` - The run is in progress * `"PROCESSED"` - The run completed successfully * `"FAILED"` - The run failed * `"CANCELLED"` - The run was cancelled
Allowed values:
outputobject or null

The final output, either reviewed or initial.

Availability: Present when status is "PROCESSED".

initialOutputobject or null

The initial output from the split run, before any review edits.

Availability: Present when reviewed is true.

reviewedOutputobject or null

The output after human review.

Availability: Present when reviewed is true.

failureReasonstring or null
The reason for failure. **Availability:** Present when `status` is `"FAILED"`. Possible values include: * `ABORTED` - The run was aborted by the user * `INTERNAL_ERROR` - An unexpected internal error occurred * `FAILED_TO_PROCESS_FILE` - Failed to process the file (e.g., OCR failure, file access issues) * `INVALID_PROCESSOR` - The processor configuration is invalid * `INVALID_CONFIGURATION` - The provided configuration is incompatible with the selected model * `PARSING_ERROR` - Failed to parse the splitting output * `PRE_PROCESSING_FAILURE` - An error occurred during preprocessing * `POST_PROCESSING_FAILURE` - An error occurred during postprocessing * `OUT_OF_CREDITS` - Insufficient credits to run the splitter **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown values gracefully.
failureMessagestring or null

A detailed message about the failure.

Availability: Present when status is "FAILED".

metadatamap from strings to any or null

Any metadata that was provided when creating the split run.

Availability: Present when metadata was provided during creation.

reviewedboolean
Indicates whether the run has been reviewed by a human.
editedboolean
Indicates whether the run results have been edited during review.
configobject
The configuration used for this split run.
fileobject
The file that was processed.
parseRunIdstring or null

The ID of the parse run that was used for this split run.

Availability: Present when a parse run was created.

dashboardUrlstring
The URL to view the split run in the Extend dashboard.
usageobject or null

Usage credits consumed by this run.

Availability: Present when status is "PROCESSED".

createdAtstringformat: "date-time"

The time (in UTC) at which the object was created. Will follow the RFC 3339 format.

Example: "2024-03-21T16:45:00Z"

updatedAtstringformat: "date-time"

The time (in UTC) at which the object was last updated. Will follow the RFC 3339 format.

Example: "2024-03-21T16:45:00Z"

Errors