# Split

## Create Split Job

`client.split.create(SplitCreateParamsparams, RequestOptionsoptions?): SplitCreateResponse`

**post** `/api/v1/split/jobs`

Create a document split job.

### Parameters

- `params: SplitCreateParams`

  - `file_input: string`

    Body param: File ID or parse job ID

  - `organization_id?: string | null`

    Query param

  - `project_id?: string | null`

    Query param

  - `configuration?: Configuration | null`

    Body param: Split configuration with categories and splitting strategy.

    - `categories: Array<SplitCategory>`

      Categories to split documents into.

      - `name: string`

        Name of the category.

      - `description?: string | null`

        Optional description of what content belongs in this category.

    - `splitting_strategy?: SplittingStrategy`

      Strategy for splitting documents.

      - `allow_uncategorized?: "forbid" | "include" | "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.

        - `"forbid"`

        - `"include"`

        - `"omit"`

      - `custom_instructions?: string | null`

        Free-form guidance for where segment boundaries are placed.

      - `min_pages_per_split?: number`

        Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `configuration_id?: string | null`

    Body param: Saved configuration ID

  - `transaction_id?: string | null`

    Body param: Idempotency key scoped to the project. Reusing a key returns the original job; the new request body is ignored.

  - `webhook_configuration_ids?: Array<string> | null`

    Body param: IDs of saved webhook configurations to notify for this job.

  - `webhook_configurations?: Array<WebhookConfiguration> | null`

    Body param: Outbound webhook endpoints to notify on job status changes

    - `webhook_events?: Array<"batch.cancelled" | "batch.error" | "batch.pending" | 30 more> | null`

      Events to subscribe to (e.g. 'parse.success', 'extract.error'). If null, all events are delivered.

      - `"batch.cancelled"`

      - `"batch.error"`

      - `"batch.pending"`

      - `"batch.running"`

      - `"batch.success"`

      - `"classify.cancelled"`

      - `"classify.error"`

      - `"classify.partial_success"`

      - `"classify.pending"`

      - `"classify.running"`

      - `"classify.success"`

      - `"extract.cancelled"`

      - `"extract.error"`

      - `"extract.partial_success"`

      - `"extract.pending"`

      - `"extract.success"`

      - `"parse.cancelled"`

      - `"parse.error"`

      - `"parse.partial_success"`

      - `"parse.pending"`

      - `"parse.running"`

      - `"parse.success"`

      - `"sheets.cancelled"`

      - `"sheets.error"`

      - `"sheets.partial_success"`

      - `"sheets.pending"`

      - `"sheets.success"`

      - `"split.cancelled"`

      - `"split.error"`

      - `"split.pending"`

      - `"split.processing"`

      - `"split.success"`

      - `"unmapped_event"`

    - `webhook_headers?: Record<string, string> | null`

      Custom HTTP headers sent with each webhook request (e.g. auth tokens)

    - `webhook_output_format?: string | null`

      Response format sent to the webhook: 'string' (default) or 'json'

    - `webhook_signing_secret?: string | null`

      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_url?: string | null`

      URL to receive webhook POST notifications

### Returns

- `SplitCreateResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const split = await client.split.create({ file_input: 'dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' });

console.log(split.id);
```

#### Response

```json
{
  "id": "id",
  "categories": [
    {
      "name": "x",
      "description": "x"
    }
  ],
  "document_input_type": "file_id",
  "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "project_id": "project_id",
  "status": "status",
  "user_id": "user_id",
  "configuration_id": "configuration_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "segments": [
      {
        "category": "category",
        "confidence_category": "confidence_category",
        "pages": [
          0
        ]
      }
    ]
  },
  "splitting_strategy": {
    "allow_uncategorized": "forbid",
    "custom_instructions": "Start a new segment at every signature page.",
    "min_pages_per_split": 1
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## List Split Jobs

`client.split.list(SplitListParamsquery?, RequestOptionsoptions?): PaginatedCursor<SplitListResponse>`

**get** `/api/v1/split/jobs`

List document split jobs.

### Parameters

- `query: SplitListParams`

  - `created_at_on_or_after?: string | null`

    Include items created at or after this timestamp (inclusive)

  - `created_at_on_or_before?: string | null`

    Include items created at or before this timestamp (inclusive)

  - `job_ids?: Array<string> | null`

    Filter by specific job IDs

  - `organization_id?: string | null`

  - `page_size?: number | null`

  - `page_token?: string | null`

  - `project_id?: string | null`

  - `status?: "cancelled" | "completed" | "failed" | 2 more | null`

    Filter by job status (pending, processing, completed, failed, cancelled)

    - `"cancelled"`

    - `"completed"`

    - `"failed"`

    - `"pending"`

    - `"processing"`

### Returns

- `SplitListResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const splitListResponse of client.split.list()) {
  console.log(splitListResponse.id);
}
```

#### Response

```json
{
  "items": [
    {
      "id": "id",
      "categories": [
        {
          "name": "x",
          "description": "x"
        }
      ],
      "document_input_type": "file_id",
      "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "project_id": "project_id",
      "status": "status",
      "user_id": "user_id",
      "configuration_id": "configuration_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "error_message": "error_message",
      "result": {
        "segments": [
          {
            "category": "category",
            "confidence_category": "confidence_category",
            "pages": [
              0
            ]
          }
        ]
      },
      "splitting_strategy": {
        "allow_uncategorized": "forbid",
        "custom_instructions": "Start a new segment at every signature page.",
        "min_pages_per_split": 1
      },
      "transaction_id": "transaction_id",
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```

## Get Split Job

`client.split.get(stringsplitJobID, SplitGetParamsquery?, RequestOptionsoptions?): SplitGetResponse`

**get** `/api/v1/split/jobs/{split_job_id}`

Get a document split job.

### Parameters

- `splitJobID: string`

- `query: SplitGetParams`

  - `organization_id?: string | null`

  - `project_id?: string | null`

### Returns

- `SplitGetResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const split = await client.split.get('split_job_id');

console.log(split.id);
```

#### Response

```json
{
  "id": "id",
  "categories": [
    {
      "name": "x",
      "description": "x"
    }
  ],
  "document_input_type": "file_id",
  "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "project_id": "project_id",
  "status": "status",
  "user_id": "user_id",
  "configuration_id": "configuration_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "segments": [
      {
        "category": "category",
        "confidence_category": "confidence_category",
        "pages": [
          0
        ]
      }
    ]
  },
  "splitting_strategy": {
    "allow_uncategorized": "forbid",
    "custom_instructions": "Start a new segment at every signature page.",
    "min_pages_per_split": 1
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Delete Split Job

`client.split.delete(stringsplitJobID, SplitDeleteParamsparams?, RequestOptionsoptions?): SplitDeleteResponse`

**delete** `/api/v1/split/jobs/{split_job_id}`

Delete a split job and its results.

### Parameters

- `splitJobID: string`

- `params: SplitDeleteParams`

  - `organization_id?: string | null`

  - `project_id?: string | null`

### Returns

- `SplitDeleteResponse = unknown`

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const split = await client.split.delete('split_job_id');

console.log(split);
```

#### Response

```json
{}
```

## Cancel Split Job

`client.split.cancel(stringsplitJobID, SplitCancelParamsparams?, RequestOptionsoptions?): SplitCancelResponse`

**post** `/api/v1/split/jobs/{split_job_id}/cancel`

Cancel a running split job.

Requests cancellation; the job transitions to CANCELLED asynchronously once processing stops. Returns the job, which may still be in its current non-terminal state. Jobs already in a terminal state (COMPLETED, FAILED, CANCELLED) cannot be cancelled.

### Parameters

- `splitJobID: string`

- `params: SplitCancelParams`

  - `organization_id?: string | null`

  - `project_id?: string | null`

### Returns

- `SplitCancelResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Example

```typescript
import LlamaCloud from '@llamaindex/llama-cloud';

const client = new LlamaCloud({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const response = await client.split.cancel('split_job_id');

console.log(response.id);
```

#### Response

```json
{
  "id": "id",
  "categories": [
    {
      "name": "x",
      "description": "x"
    }
  ],
  "document_input_type": "file_id",
  "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "project_id": "project_id",
  "status": "status",
  "user_id": "user_id",
  "configuration_id": "configuration_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "segments": [
      {
        "category": "category",
        "confidence_category": "confidence_category",
        "pages": [
          0
        ]
      }
    ]
  },
  "splitting_strategy": {
    "allow_uncategorized": "forbid",
    "custom_instructions": "Start a new segment at every signature page.",
    "min_pages_per_split": 1
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Domain Types

### Split Create Response

- `SplitCreateResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Split List Response

- `SplitListResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Split Get Response

- `SplitGetResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime

### Split Delete Response

- `SplitDeleteResponse = unknown`

### Split Cancel Response

- `SplitCancelResponse`

  A split job.

  - `id: string`

    Unique identifier for the split job.

  - `categories: Array<SplitCategory>`

    Categories used for splitting.

    - `name: string`

      Name of the category.

    - `description?: string | null`

      Optional description of what content belongs in this category.

  - `document_input_type: "file_id" | "parse_job_id" | "url"`

    Whether the input was a file or parse job

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    File ID or parse job ID

  - `project_id: string`

    Project this job belongs to.

  - `status: string`

    Current job status. Valid values are: pending, processing, completed, failed, cancelled.

  - `user_id: string`

    User who created this job.

  - `configuration_id?: string | null`

    Split configuration ID used for this job.

  - `created_at?: string | null`

    Creation datetime

  - `error_message?: string | null`

    Error message if the job failed.

  - `result?: SplitResultResponse | null`

    Result of a completed split job.

    - `segments: Array<SplitSegmentResponse>`

      List of document segments.

      - `category: string`

        Category name this split belongs to.

      - `confidence_category: string`

        Categorical confidence level. Valid values are: high, medium, low.

      - `pages: Array<number>`

        1-indexed page numbers in this split.

  - `splitting_strategy?: SplittingStrategy`

    Strategy used for splitting.

    - `allow_uncategorized?: "forbid" | "include" | "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.

      - `"forbid"`

      - `"include"`

      - `"omit"`

    - `custom_instructions?: string | null`

      Free-form guidance for where segment boundaries are placed.

    - `min_pages_per_split?: number`

      Minimum pages per segment. Shorter segments are merged into an adjacent segment; 1 disables merging.

  - `transaction_id?: string | null`

    Idempotency key scoped to the project, if one was provided.

  - `updated_at?: string | null`

    Update datetime
