Extend Split API

The Split API from Extend — 3 operation(s) for split.

OpenAPI Specification

extend-ai-split-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Extend Batch Split API
  description: The Extend API turns documents into high quality structured data. It exposes file management, synchronous and asynchronous document processors (parse, extract, classify, split), reusable processor definitions (extractors, classifiers, splitters), durable multi-step workflows and workflow runs, evaluation sets, and batch processing. All requests are authenticated with a Bearer API token and should pin an API version via the x-extend-api-version header.
  termsOfService: https://www.extend.ai
  contact:
    name: Extend Support
    url: https://docs.extend.ai
  version: '2026-02-09'
servers:
- url: https://api.extend.ai
  description: Extend production API
security:
- BearerAuth: []
tags:
- name: Split
paths:
  /split:
    post:
      operationId: splitFile
      tags:
      - Split
      summary: Split a file (synchronous)
      description: Synchronously split a multi-document file into subdocuments and classify each. Five minute timeout; use POST /split_runs for production.
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitRequest'
      responses:
        '200':
          description: A processed split run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorRun'
        default:
          $ref: '#/components/responses/ApiError'
  /split_runs:
    post:
      operationId: createSplitRun
      tags:
      - Split
      summary: Create a split run (asynchronous)
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitRequest'
      responses:
        '200':
          description: The created split run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorRun'
        default:
          $ref: '#/components/responses/ApiError'
  /split_runs/{id}:
    get:
      operationId: getSplitRun
      tags:
      - Split
      summary: Get a split run
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: The requested split run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorRun'
        default:
          $ref: '#/components/responses/ApiError'
components:
  schemas:
    FileInput:
      oneOf:
      - $ref: '#/components/schemas/FileFromUrl'
      - $ref: '#/components/schemas/FileFromId'
      - $ref: '#/components/schemas/FileFromText'
    RunMetadata:
      type: object
      additionalProperties: true
      description: Custom metadata for a run, up to 10KB.
    FileFromUrl:
      type: object
      required:
      - url
      properties:
        url:
          type: string
        name:
          type: string
        settings:
          type: object
          properties:
            password:
              type: string
    RunStatus:
      type: string
      enum:
      - PENDING
      - PROCESSING
      - PROCESSED
      - FAILED
      - CANCELLED
      - NEEDS_REVIEW
      - REJECTED
    ProcessorRun:
      type: object
      properties:
        object:
          type: string
          example: processor_run
        id:
          type: string
        status:
          $ref: '#/components/schemas/RunStatus'
        type:
          type: string
          enum:
          - EXTRACT
          - CLASSIFY
          - SPLIT
        file:
          type: object
        output:
          type: object
          additionalProperties: true
        config:
          type: object
        usage:
          type: object
        dashboardUrl:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    FileFromId:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    SplitRequest:
      type: object
      required:
      - file
      properties:
        file:
          $ref: '#/components/schemas/FileInput'
        splitter:
          type: object
          properties:
            id:
              type: string
            version:
              type: string
            overrideConfig:
              type: object
        config:
          type: object
          description: Inline split config with splitClassifications, splitRules, baseProcessor.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
    FileFromText:
      type: object
      required:
      - text
      properties:
        text:
          type: string
    ApiError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        retryable:
          type: boolean
        requestId:
          type: string
  parameters:
    PathId:
      name: id
      in: path
      required: true
      schema:
        type: string
    ApiVersion:
      name: x-extend-api-version
      in: header
      required: false
      description: API version to pin the request to, for example 2026-02-09.
      schema:
        type: string
        example: '2026-02-09'
  responses:
    ApiError:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Provide your Extend API token as a Bearer token in the Authorization header.