---
title: "Create Split Job"
method: POST
path: "/api/v1/split/jobs"
tags: ["Split"]
---

# Create Split Job

`POST /api/v1/split/jobs`

## Request

- Base URL: `https://api.cloud.llamaindex.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cloud.llamaindex.ai/api/v1/split/jobs`
- Auth: HTTP bearer

Create a split job.

## Document input

Set `file_input` to a file ID or a completed parse job ID (`pjb-...`). Supplying a parse job reuses its output instead of reading the document again.

## Page selection

`configuration.target_pages` selects which pages of a supplied parse job to split (1-based; `1-50`, `1,3,5-7`). Pages are read in ascending document order, and each segment's `pages` are the parse job's own page numbers, so segments map straight back to the original document. Requires a parse job as `file_input`; passing it with a file ID returns 400.

## Parse settings

`configuration.parse_tier` and `configuration.parse_config_id` control how the document is read before splitting; both are ignored when a parse job is supplied. A parse configuration restricted to a page subset (`target_pages` or `max_pages`) is rejected, since split results always number pages relative to the full document.

The job runs asynchronously. Poll `GET /split/jobs/{split_job_id}` or register a webhook to monitor completion.

## Query parameters

- `project_id` string, uuid, nullable
- `organization_id` string, uuid, nullable

## Cookies

- `session` string, nullable

## Request body

- SplitCreateRequest: Create a split job.
  - `transaction_id` string, nullable: Idempotency key scoped to the project. Reusing a key returns the original job; the new request body is ignored.
  - `webhook_configuration_ids` string[], nullable: IDs of saved webhook configurations to notify for this job.
  - `webhook_configurations` WebhookConfiguration[], nullable: Outbound webhook endpoints to notify on job status changes
    - `webhook_url` string, nullable: URL to receive webhook POST notifications
    - `webhook_headers` object, nullable: Custom HTTP headers sent with each webhook request (e.g. auth tokens)
    - `webhook_signing_secret` string, nullable: Shared signing secret used to sign webhook deliveries. When set, each request includes an HMAC-SHA256 signature of the request body in the 'LC-Signature' header (value 'sha256=<hex>'). Recompute the HMAC over the raw request body with this secret to verify the delivery is authentic.
    - `webhook_events` string[], nullable: Events to subscribe to (e.g. 'parse.success', 'extract.error'). If null, all events are delivered.
    - `webhook_output_format` string, nullable: Response format sent to the webhook: 'string' (default) or 'json'
  - `configuration_id` string, nullable: Saved configuration ID
  - `configuration` SplitConfiguration: Split configuration with categories and splitting strategy.
    - `categories` SplitCategory[], required: Categories to split documents into.
      - `name` string, required: Name of the category.
      - `description` string, nullable: Optional description of what content belongs in this category.
    - `splitting_strategy` SplitStrategy: Configuration for how to split the document.
      - `allow_uncategorized` 'include' | 'forbid' | 'omit': Controls handling of pages that don't match any category. 'include': pages can be grouped as 'uncategorized' and included in results. 'forbid': all pages must be assigned to a defined category. 'omit': pages can be classified as 'uncategorized' but are excluded from results.
      - `min_pages_per_split` integer: Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.
      - `custom_instructions` string, nullable: Free-form guidance for where segment boundaries are placed.
    - `version` string, nullable: Split version to run. Omit for the current release. Preview versions are selectable by name and never resolved automatically.
    - `parse_tier` 'fast' | 'cost_effective' | 'agentic' | 'agentic_plus', nullable: Parse tier used to read the document before splitting. Defaults to fast. Ignored when a completed parse job is supplied as file_input.
    - `parse_config_id` string, nullable: Saved parse configuration ID to control how the document is parsed before splitting. Takes precedence over parse_tier. Configurations that restrict pages (`target_pages` or `max_pages` on the parse configuration) are rejected: split results number pages relative to the full document. Ignored when a completed parse job is supplied as file_input.
    - `target_pages` string, nullable: Comma-separated page numbers or ranges to split (1-based). Pages are split in the order listed. Omit to split all pages. Requires a completed parse job as file_input.
  - `file_input` string, required: File ID or parse job ID

## Response `201`

Successful Response

- SplitJobResponse: A split job.
  - `id` string, required: Unique identifier for the split job.
  - `created_at` string, date-time, nullable: Creation datetime
  - `updated_at` string, date-time, nullable: Update datetime
  - `transaction_id` string, nullable: Idempotency key scoped to the project, if one was provided.
  - `file_input` string, required: File ID or parse job ID
  - `project_id` string, required: Project this job belongs to.
  - `user_id` string, required: User who created this job.
  - `configuration_id` string, nullable: Split configuration ID used for this job.
  - `document_input_type` 'url' | 'file_id' | 'parse_job_id', required: Whether the input was a file or parse job
  - `categories` SplitCategory[], required: Categories used for splitting.
    - `name` string, required: Name of the category.
    - `description` string, nullable: Optional description of what content belongs in this category.
  - `splitting_strategy` SplitStrategy: Configuration for how to split the document.
    - `allow_uncategorized` 'include' | 'forbid' | 'omit': Controls handling of pages that don't match any category. 'include': pages can be grouped as 'uncategorized' and included in results. 'forbid': all pages must be assigned to a defined category. 'omit': pages can be classified as 'uncategorized' but are excluded from results.
    - `min_pages_per_split` integer: Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.
    - `custom_instructions` string, nullable: Free-form guidance for where segment boundaries are placed.
  - `parse_tier` string, nullable: Parse tier requested for this job, if any.
  - `parse_config_id` string, nullable: Saved parse configuration ID requested for this job, if any.
  - `target_pages` string, nullable: Page selection requested for this job, if any.
  - `version` string, required: Split version used for this job.
  - `status` string, required: Current job status. Valid values are: pending, processing, completed, failed, cancelled.
  - `result` SplitResultResponse: Result of a completed split job.
    - `segments` SplitSegmentResponse[], required: List of document segments.
      - `category` string, required: Category name this split belongs to.
      - `pages` integer[], required: Page numbers in this segment, as numbered by the input document.
      - `confidence_category` string, required: Categorical confidence level. Valid values are: high, medium, low.
  - `error_message` string, nullable: Error message if the job failed.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `eacba11f3303`: 1 info
  - added the required property `version` to the response with the `201` status
- **2026-10-16** `a38b684f8e1b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/run-llama/apis/llama-platform/changes/api/v1/split/jobs/post.md)

---

[API](https://skmtc.dev/run-llama/apis/llama-platform.md) · [All operations](https://skmtc.dev/run-llama/apis/llama-platform/llms.txt) · [OpenAPI document](https://skmtc.dev/run-llama/apis/llama-platform/revisions/eacba11f3303?raw)
