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

# Splitting Response Format

> Understand the Split response: the split run's top-level fields and the splits array, with its type, page range, identifier, and file ID.

A split run returns one entry per detected sub-document, each with its type, page range, an optional extracted identifier, and a standalone `fileId` you can pass into other endpoints. This page explains every field in the response.

---

## Response structure

A completed split run looks like this (truncated to two splits for brevity). The result lives in `output.splits`.

```json
{
  "object": "split_run",
  "id": "splr_Xj8mK2pL9nR4vT7qY5wZ",
  "status": "PROCESSED",
  "file": {
    "object": "file",
    "id": "file_GzKUy0VDhHscv7tweODYb",
    "name": "loan_application.pdf"
  },
  "output": {
    "splits": [
      {
        "id": "splt_xK9mLPqRtN3vS8wF5hB2cQ",
        "classificationId": "loan_application",
        "type": "loan_application",
        "startPage": 1,
        "endPage": 5,
        "identifier": "Jordan Avery",
        "observation": "Pages 1-5 are a Uniform Residential Loan Application.",
        "fileId": "file_8sLPqRtN3vS2wF5hB2cQ"
      },
      {
        "id": "splt_2pL9nR4vT7qY5wZj8mK2",
        "classificationId": "bank_statement",
        "type": "bank_statement",
        "startPage": 6,
        "endPage": 9,
        "identifier": "Jordan Avery",
        "observation": "Pages 6-9 are a monthly bank statement.",
        "fileId": "file_R4vT7qY5wZj8mK2pL9nR"
      }
    ]
  },
  "reviewed": false,
  "edited": false,
  "usage": { "credits": 3 }
}
```

### Top-level fields

| Field                              | Type           | Description                                                                                                                                                |
| ---------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `object`                           | string         | Always `"split_run"`.                                                                                                                                      |
| `id`                               | string         | Unique identifier for the run (e.g. `splr_...`). Use it to [fetch results](/api-reference/endpoints/split/get-split-run) later.                            |
| `file`                             | object         | The processed file (`id`, `name`). Reusable as input to other endpoints.                                                                                   |
| `status`                           | string         | `PENDING`, `PROCESSING`, `PROCESSED`, `FAILED`, or `CANCELLED`.                                                                                            |
| `output`                           | object \| null | The split result. Present when `status` is `PROCESSED`. Contains `splits`.                                                                                 |
| `reviewed` / `edited`              | boolean        | Whether a human reviewed the run, and whether they changed the result. When `reviewed` is `true`, `initialOutput` and `reviewedOutput` are also populated. |
| `splitter` / `splitterVersion`     | object \| null | The splitter and version used for the run. Present when a splitter reference was provided; not present when using inline `config`.                         |
| `config`                           | object         | The full configuration used, including defaults that were applied.                                                                                         |
| `parseRunId`                       | string \| null | The ID of the parse run used for this split run.                                                                                                           |
| `dashboardUrl`                     | string         | Link to view the run in the Extend dashboard.                                                                                                              |
| `usage`                            | object         | Credits consumed (`usage.credits`).                                                                                                                        |
| `failureReason` / `failureMessage` | string \| null | Machine-readable code and human-readable message. Present when `status` is `FAILED`.                                                                       |

---

## The splits array

`output.splits` contains one object per detected sub-document, in document order. Each split describes a contiguous page range and the type the splitter assigned to it.

```json
{
  "id": "splt_xK9mLPqRtN3vS8wF5hB2cQ",
  "classificationId": "loan_application",
  "type": "loan_application",
  "startPage": 1,
  "endPage": 5,
  "identifier": "Jordan Avery",
  "observation": "Pages 1-5 are a Uniform Residential Loan Application.",
  "fileId": "file_8sLPqRtN3vS2wF5hB2cQ"
}
```

### Split fields

| Field              | Type    | Description                                                                                                              |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| `id`               | string  | Unique ID for this split.                                                                                                |
| `classificationId` | string  | The `id` of the classification that matched (set in the config). Branch your logic on this — it's stable, unlike `type`. |
| `type`             | string  | The document type, corresponding to the `classificationId`.                                                              |
| `startPage`        | integer | The start page of the sub-document.                                                                                      |
| `endPage`          | integer | The end page of the sub-document.                                                                                        |
| `identifier`       | string  | The extracted identifier (e.g. an invoice number), driven by the classification's `identifierKey`.                       |
| `observation`      | string  | A short explanation of why these pages were grouped as this type.                                                        |
| `fileId`           | string  | The file ID of the standalone sub-document, usable as input to other endpoints.                                          |
| `name`             | string  | Optional name for the split.                                                                                             |

The `fileId` on each split points to a real, separate file. The common pattern is to split once, then feed each split's `fileId` into [Parse](/parsing/overview), [Extract](/extraction/overview), or a [Workflow](/workflows/overview).