openapi: 3.1.0
info:
  title: API Reference
  version: 1.0.0
paths:
  /files/upload:
    post:
      operationId: upload
      summary: Upload File
      description: >
        Upload and create a new file in Extend.


        This endpoint accepts file contents and registers them as a File in Extend, which can be used for [running
        workflows](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/create-workflow-run), [creating
        evaluation set
        items](https://docs.extend.ai/2026-02-09/api-reference/endpoints/evaluation/create-evaluation-set-item),
        [parsing](https://docs.extend.ai/2026-02-09/api-reference/endpoints/parse/parse-file), etc.


        If an uploaded file is detected as a Word or PowerPoint document, it will be automatically converted to a PDF.


        Supported file types can be found [here](https://docs.extend.ai/2026-02-09/general/supported-file-types).


        This endpoint requires multipart form encoding. Most HTTP clients will handle this encoding automatically (see
        the examples).
      tags:
        - files
      parameters:
        - name: convertToPdf
          in: query
          description: >-
            When true, converts the uploaded file to PDF. Supported file types include images (JPEG, PNG, TIFF, GIF,
            BMP, WebP, HEIC/HEIF), Word documents, PowerPoint, Excel, and HTML.
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully uploaded file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The file contents to upload
                password:
                  type: string
                  description: The password to unlock a password-protected PDF.
              required:
                - file
  /files/{id}:
    get:
      operationId: retrieve
      summary: Get File
      description: Fetch a file by its ID.
      tags:
        - files
      parameters:
        - name: id
          in: path
          description: |
            ID for the file. It will always start with `"file_"`.

            Example: `"file_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: rawText
          in: query
          description: >
            **Deprecated:** Use `POST /parse_runs` instead to parse file contents and get contents or `GET
            /parse_runs/{id}` to retrieve the results async if file is already parsed. Files parsed with versions >2.x
            will not support this parameter.


            If set to true, the raw text content of the file will be included in the response.
          required: false
          schema:
            type: boolean
            default: false
        - name: markdown
          in: query
          description: >
            **Deprecated:** Use `POST /parse_runs` instead to parse file contents and get contents or `GET
            /parse_runs/{id}` to retrieve the results async if file is already parsed. Files parsed with versions >2.x
            will not support this parameter.


            If set to true, the markdown content of the file will be included in the response.


            Only available for files with a type of PDF, IMG, or DOCX files that were auto-converted to PDFs.
          required: false
          schema:
            type: boolean
            default: false
        - name: html
          in: query
          description: >
            **Deprecated:** Use `POST /parse_runs` instead to parse file contents and get contents or `GET
            /parse_runs/{id}` to retrieve the results async if file is already parsed. Files parsed with versions >2.x
            will not support this parameter.


            If set to true, the html content of the file will be included in the response.


            Only available for files with a type of DOCX.
          required: false
          schema:
            type: boolean
            default: false
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Retrieved file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete File
      description: >
        Delete a file and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - files
      parameters:
        - name: id
          in: path
          description: |
            The ID of the file to delete.

            Example: `"file_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/files_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /files:
    get:
      operationId: list
      summary: List Files
      description: List files.
      tags:
        - files
      parameters:
        - name: nameContains
          in: query
          description: |
            Filters files to only include those that contain the given string in the name.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of files
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/files_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /parse:
    post:
      operationId: parse
      summary: Parse File (Sync)
      description: >
        Parse a file synchronously, waiting for the result before returning. This endpoint has a **5-minute timeout** —
        if processing takes longer, the request will fail.


        **Note:** This endpoint is intended for onboarding and testing only. For production workloads, use `POST
        /parse_runs` with [polling or webhooks](https://docs.extend.ai/2026-02-09/general/async-processing) instead, as
        it provides better reliability for large files and avoids timeout issues.


        The Parse endpoint allows you to convert documents into structured, machine-readable formats with fine-grained
        control over the parsing process. This endpoint is ideal for extracting cleaned document content to be used as
        context for downstream processing, e.g. RAG pipelines, custom ingestion pipelines, embeddings classification,
        etc.


        For more details, see the [Parse File guide](https://docs.extend.ai/2026-02-09/parsing/overview).
      tags:
        - ''
      parameters:
        - name: responseType
          in: query
          description: |
            Controls the format of the response chunks. Defaults to `json` if not specified.
            * `json` - Returns parsed outputs in the response body
            * `url` - Return a presigned URL to the parsed content in the response body
          required: false
          schema:
            $ref: '#/components/schemas/ParsePostParametersResponseType'
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully parsed file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/ParsePostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be parsed. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/ParseConfig'
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
                dataRetention:
                  $ref: '#/components/schemas/DataRetention'
              required:
                - file
  /parse_runs:
    post:
      operationId: create
      summary: Parse File (Async)
      description: >
        Parse files to get cleaned, chunked target content (e.g. markdown).


        The Parse endpoint allows you to convert documents into structured, machine-readable formats with fine-grained
        control over the parsing process. This endpoint is ideal for extracting cleaned document content to be used as
        context for downstream processing, e.g. RAG pipelines, custom ingestion pipelines, embeddings classification,
        etc.


        For more details, see the [Parse File guide](https://docs.extend.ai/2026-02-09/parsing/overview). See [Async
        Processing](https://docs.extend.ai/2026-02-09/general/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` or `FAILED`):


        <Tabs>

        <Tab title="TypeScript">

        ```typescript

        const result = await client.parseRuns.createAndPoll({
          file: { url: "https://..." }
        });

        // Returns when the run reaches a terminal state

        console.log(result.output);

        ```

        </Tab>

        <Tab title="Python">

        ```python

        result = client.parse_runs.create_and_poll(
            file={"url": "https://..."}
        )

        # Returns when the run reaches a terminal state

        print(result.output)

        ```

        </Tab>

        <Tab title="Java">

        ```java

        var result = client.parseRuns().createAndPoll(ParseRunsCreateRequest.builder()
            .file(ParseRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .build());
        // Returns when the run reaches a terminal state

        System.out.println(result.getOutput());

        ```

        </Tab>

        </Tabs>
      tags:
        - parseRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully parsed file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/ParseRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be parsed. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/ParseConfig'
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
                dataRetention:
                  $ref: '#/components/schemas/DataRetention'
              required:
                - file
    get:
      operationId: list
      summary: List Parse Runs
      description: >
        List parse runs, with optional filters for status, batch ID, source, and file name.


        Returns a paginated list of parse runs. Use `GET /parse_runs/{id}` to retrieve the full result including output
        for a specific run.
      tags:
        - parseRuns
      parameters:
        - name: status
          in: query
          description: Filter parse runs by status.
          required: false
          schema:
            $ref: '#/components/schemas/ParseRunsGetParametersStatus'
        - name: batchId
          in: query
          description: >
            Filter parse runs by the batch they belong to. Use this after submitting a batch via `POST
            /parse_runs/batch` to retrieve individual run results.


            Example: `"bpar_Xj8mK2pL9nR4vT7qY5wZ"`
          required: false
          schema:
            type: string
        - name: source
          in: query
          description: |
            Filters parse runs by the source that created them. If not provided, runs from all sources are returned.

            **Note:** When `batchId` is provided, it takes precedence and this filter is ignored.
          required: false
          schema:
            $ref: '#/components/schemas/ParseRunSource'
        - name: sourceId
          in: query
          description: Filters runs by the source ID.
          required: false
          schema:
            $ref: '#/components/schemas/RunSourceId'
        - name: fileNameContains
          in: query
          description: |
            Filters runs by the name of the file. Only returns runs where the file name contains this string.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved parse runs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/parseRuns_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /parse_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Parse Run
      description: >
        Retrieve the status and results of a parse run.


        Use this endpoint to get results for a parse run that has already completed, or to check on the status of a
        parse run initiated by the [Create Parse
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/parse/create-parse-run) endpoint.
      tags:
        - parseRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for the parse run.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: responseType
          in: query
          description: >
            Controls how the output is delivered. Defaults to `inline`.

            * `json` - Returns the output directly in the `output` field of the response body.

            * `url` - Returns a presigned URL in the `outputUrl` field to download the output as a JSON file. The URL
            expires after 15 minutes. Useful for large outputs.
          required: false
          schema:
            $ref: '#/components/schemas/ParseRunsIdGetParametersResponseType'
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved parse run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete Parse Run
      description: >
        Delete a parse run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - parseRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the parse run to delete.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted parse run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/parseRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /parse_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Parse Run
      description: >
        Cancel an in-progress parse run.


        Note: Only parse runs with a status of `"PROCESSING"` can be cancelled. Parse runs that have already completed,
        failed, or been cancelled cannot be cancelled again.
      tags:
        - parseRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the parse run to cancel.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Parse run cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extract:
    post:
      operationId: extract
      summary: Extract File (Sync)
      description: >
        Extract structured data from a file synchronously, waiting for the result before returning. This endpoint has a
        **5-minute timeout** — if processing takes longer, the request will fail.


        **Note:** This endpoint is intended for onboarding and testing only. For production workloads, use `POST
        /extract_runs` with [polling or webhooks](https://docs.extend.ai/2026-02-09/general/async-processing) instead,
        as it provides better reliability for large files and avoids timeout issues.


        The Extract endpoint allows you to extract structured data from files using an existing extractor, an inline
        configuration, or no configuration at all. When neither is provided, Extend automatically infers a schema from
        the document before extraction — no extractor or schema is required.


        Pass `file` for a single document, or `package` to extract from multiple files in a single run. Exactly one of
        `file` or `package` must be provided.


        For more details, see the [Extract File guide](https://docs.extend.ai/2026-02-09/extraction/overview).
      tags:
        - ''
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully extracted data from file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                extractor:
                  $ref: '#/components/schemas/ExtractPostRequestBodyContentApplicationJsonSchemaExtractor'
                  description: >
                    Reference to an existing extractor. Mutually exclusive with `config` — provide one or the other, or
                    omit both to have Extend infer a schema from the document.
                config:
                  $ref: '#/components/schemas/ExtractConfigJson'
                  description: >
                    Inline extract configuration. Mutually exclusive with `extractor` — provide one or the other, or
                    omit both to have Extend infer a schema from the document.
                file:
                  $ref: '#/components/schemas/ExtractPostRequestBodyContentApplicationJsonSchemaFile'
                  description: |
                    The file to be extracted from. Mutually exclusive with `package` — provide one or the other.

                    Files can be provided as a URL, Extend file ID, or raw text.
                package:
                  $ref: '#/components/schemas/MultiFileRunPackage'
                  description: >
                    A collection of files to extract from together in a single run. Mutually exclusive with `file` —
                    provide one or the other.


                    See [Multifile Extraction](https://docs.extend.ai/2026-02-09/extraction/multifile) for details.
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
  /extract_runs:
    post:
      operationId: create
      summary: Extract File (Async)
      description: >
        Extract structured data from a file using an existing extractor, an inline configuration, or no configuration at
        all. When neither is provided, Extend automatically infers a schema from the document before extraction — no
        extractor or schema is required.


        The request returns immediately with a `PROCESSING` status. Use webhooks or poll the [Get Extract
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/get-extract-run) endpoint for results.
        See [Async Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for a full guide on polling
        helpers and webhooks.


        Pass `file` for a single document, or `package` to extract from multiple files in a single run. Exactly one of
        `file` or `package` must be provided. See [Multifile
        Extraction](https://docs.extend.ai/2026-02-09/extraction/multifile) for details.


        If you need to process many independent files, consider using the [Batch Extract
        endpoint](https://docs.extend.ai/2026-02-09/api-reference/endpoints/batch/batch-create-extract-runs) instead.


        ## 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.extractRuns.createAndPoll({
          extractor: { id: "ex_abc123" },
          file: { url: "https://..." }
        });

        // Returns when the run reaches a terminal state

        console.log(result.output?.value);

        ```

        </Tab>

        <Tab title="Python">

        ```python

        result = client.extract_runs.create_and_poll(
            extractor={"id": "ex_abc123"},
            file={"url": "https://..."}
        )

        # Returns when the run reaches a terminal state

        print(result.output.value)

        ```

        </Tab>

        <Tab title="Java">

        ```java

        var result = client.extractRuns().createAndPoll(ExtractRunsCreateRequest.builder()
            .file(ExtractRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .extractor(ExtractRunsCreateRequestExtractor.builder().id("ex_abc123").build())
            .build());
        // Returns when the run reaches a terminal state

        result.getOutput().ifPresent(output ->
            System.out.println(((ExtractOutputJson) output.get()).getValue()));
        ```

        </Tab>

        </Tabs>
      tags:
        - extractRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Extract completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                extractor:
                  $ref: '#/components/schemas/ExtractRunsPostRequestBodyContentApplicationJsonSchemaExtractor'
                  description: >
                    Reference to an existing extractor. Mutually exclusive with `config` — provide one or the other, or
                    omit both to have Extend infer a schema from the document.
                config:
                  $ref: '#/components/schemas/ExtractConfigJson'
                  description: >
                    Inline extract configuration. Mutually exclusive with `extractor` — provide one or the other, or
                    omit both to have Extend infer a schema from the document.
                file:
                  $ref: '#/components/schemas/ExtractRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: |
                    The file to be extracted from. Mutually exclusive with `package` — provide one or the other.

                    Files can be provided as a URL, Extend file ID, or raw text.
                package:
                  $ref: '#/components/schemas/MultiFileRunPackage'
                  description: >
                    A collection of files to extract from together in a single run. Mutually exclusive with `file` —
                    provide one or the other.


                    See [Multifile Extraction](https://docs.extend.ai/2026-02-09/extraction/multifile) for details.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
    get:
      operationId: list
      summary: List Extract Runs
      description: >
        List all extract runs.


        Returns a summary of each run. Use `GET /extract_runs/{id}` to retrieve the full object including `output` and
        `config`.
      tags:
        - extractRuns
      parameters:
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorRunStatus'
        - name: extractorId
          in: query
          description: |
            Filters extract runs by the extractor ID. If not provided, all extract runs are returned.

            Example: `"ex_BMdfq_yWM3sT-ZzvCnA3f"`
          required: false
          schema:
            type: string
        - name: batchId
          in: query
          description: |
            Filters runs by the batch they belong to. Only returns runs created as part of the specified batch.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: false
          schema:
            type: string
        - name: sourceId
          in: query
          description: Filters runs by the source ID.
          required: false
          schema:
            $ref: '#/components/schemas/RunSourceId'
        - name: source
          in: query
          description: Filters runs by the source that created them. If not provided, runs from all sources are returned.
          required: false
          schema:
            $ref: '#/components/schemas/RunSource'
        - name: fileNameContains
          in: query
          description: |
            Filters runs by the name of the file. Only returns runs where the file name contains this string.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: >
            You will get a list of summaries for each extract run. These are shortened versions of the full extract run
            object.


            To get the full object, use the [Get Extract
            Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/get-extract-run) endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/extractRuns_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extract_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Extract Run
      description: >
        Retrieve details about a specific extract run, including its status, outputs, and any edits made during review.


        A common use case for this endpoint is to poll for the status and final output of an extract run when using the
        [Create Extract Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/create-extract-run)
        endpoint. For instance, if you do not want to not configure webhooks to receive the output via
        completion/failure events.
      tags:
        - extractRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for this extract run.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved extract run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete Extract Run
      description: >
        Delete an extract run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - extractRuns
      parameters:
        - name: id
          in: path
          description: The ID of the extract run.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Extractor run deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/extractRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extract_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Extract Run
      description: >
        Cancel an in-progress extract run.


        Note: Only extract runs with a status of `"PROCESSING"` can be cancelled. Extractor runs that have already
        completed, failed, or been cancelled cannot be cancelled again.
      tags:
        - extractRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the extract run to cancel.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Extractor run cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extractors:
    post:
      operationId: create
      summary: Create Extractor
      description: >
        Create a new extractor.


        You can optionally provide a `generate` object to automatically generate an extraction schema from sample
        documents using AI. `generate` is mutually exclusive with `config` and `cloneExtractorId`.
      tags:
        - extractors
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Extractor created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Extractor'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the extractor.
                cloneExtractorId:
                  type: string
                  description: >
                    The ID of an existing extractor to clone. If provided, the new extractor will be created with the
                    same config as the extractor with this ID. Cannot be provided together with `config` or `generate`.


                    Example: `"ex_BMdfq_yWM3sT-ZzvCnA3f"`
                config:
                  $ref: '#/components/schemas/ExtractConfigJson'
                  description: >
                    The configuration for the extractor. Cannot be provided together with `cloneExtractorId` or
                    `generate`.
                generate:
                  $ref: '#/components/schemas/ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerate'
                  description: >
                    If provided, an extraction schema is automatically generated from the supplied sample documents and
                    applied to the extractor's draft. The response includes the extractor with the generated schema
                    already in place.


                    Cannot be provided together with `config` or `cloneExtractorId`.
              required:
                - name
    get:
      operationId: list
      summary: List Extractors
      description: >
        List all extractors.


        Returns a summary of each extractor. Use `GET /extractors/{id}` to retrieve the full object including
        `draftVersion`.
      tags:
        - extractors
      parameters:
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved extractors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/extractors_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extractors/{id}:
    get:
      operationId: retrieve
      summary: Get Extractor
      description: Get details of an extractor.
      tags:
        - extractors
      parameters:
        - name: id
          in: path
          description: |
            The ID of the extractor to get.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Extractor details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Extractor'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Extractor
      description: Update an existing extractor.
      tags:
        - extractors
      parameters:
        - name: id
          in: path
          description: |
            The ID of the extractor to update.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Extractor updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Extractor'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the extractor.
                config:
                  $ref: '#/components/schemas/ExtractConfigJson'
                  description: The new configuration for the extractor. This will update the draft version of the extractor.
  /extractors/{extractorId}/versions:
    post:
      operationId: create
      summary: Create Extractor Version
      description: >
        This endpoint allows you to publish a new version of an existing extractor. Publishing a new version creates a
        snapshot of the extractor's current configuration and makes it available for use in workflows.


        Publishing a new version does not automatically update existing workflows using this extractor. You may need to
        manually update workflows to use the new version if desired.
      tags:
        - extractorVersions
      parameters:
        - name: extractorId
          in: path
          description: |
            The ID of the extractor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully published extractor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractorVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                releaseType:
                  $ref: '#/components/schemas/ReleaseType'
                description:
                  $ref: '#/components/schemas/VersionDescription'
                config:
                  $ref: '#/components/schemas/ExtractConfigJson'
                  description: The configuration for this version of the extractor.
              required:
                - releaseType
    get:
      operationId: list
      summary: List Extractor Versions
      description: >
        This endpoint allows you to fetch all versions of a given extractor, including the current `draft` version.


        Versions are returned in descending order of creation (newest first) with the `draft` version first. The `draft`
        version is the latest unpublished version of the extractor, which can be published to create a new version. It
        might not have any changes from the last published version.
      tags:
        - extractorVersions
      parameters:
        - name: extractorId
          in: path
          description: |
            The ID of the extractor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved extractor versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/extractorVersions_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /extractors/{extractorId}/versions/{versionId}:
    get:
      operationId: retrieve
      summary: Get Extractor Version
      description: Retrieve a specific version of an extractor in Extend
      tags:
        - extractorVersions
      parameters:
        - name: extractorId
          in: path
          description: |
            The ID of the extractor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: versionId
          in: path
          description: |
            The version to retrieve. Accepts any of the following:

            - `"draft"` — returns the current draft version
            - `"latest"` — returns the latest published version (falls back to draft if none published)
            - A version number (e.g. `"0.1"`, `"1.0"`) — returns that specific published version
            - A version ID (e.g. `"extv_QYk6jgHA_8CsO8rVWhyNC"`) — returns that specific version by ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved extractor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractorVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classify:
    post:
      operationId: classify
      summary: Classify File (Sync)
      description: >
        Classify a document synchronously, waiting for the result before returning. This endpoint has a **5-minute
        timeout** — if processing takes longer, the request will fail.


        **Note:** This endpoint is intended for onboarding and testing only. For production workloads, use `POST
        /classify_runs` with [polling or webhooks](https://docs.extend.ai/2026-02-09/general/async-processing) instead,
        as it provides better reliability for large files and avoids timeout issues.


        The Classify endpoint allows you to classify documents using an existing classifier or an inline configuration.


        For more details, see the [Classify File guide](https://docs.extend.ai/2026-02-09/classification/configuration).
      tags:
        - ''
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully classified file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifyRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                classifier:
                  $ref: '#/components/schemas/ClassifyPostRequestBodyContentApplicationJsonSchemaClassifier'
                  description: |
                    Reference to an existing classifier. One of `classifier` or `config` must be provided.
                config:
                  $ref: '#/components/schemas/ClassifyConfig'
                  description: |
                    Inline classify configuration. One of `classifier` or `config` must be provided.
                file:
                  $ref: '#/components/schemas/ClassifyPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be classified. Files can be provided as a URL, an Extend file ID, or raw text.
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
              required:
                - file
  /classify_runs:
    post:
      operationId: create
      summary: Classify File (Async)
      description: >
        Classify a document using an existing classifier or an inline configuration.


        The request returns immediately with a `PROCESSING` status. Use webhooks or poll the [Get Classify
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/get-classify-run) endpoint for results.
        See [Async Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for a full guide on polling
        helpers and webhooks.


        If you're processing multiple files, consider using the [Batch Classify
        endpoint](https://docs.extend.ai/2026-02-09/api-reference/endpoints/batch/batch-create-classify-runs) instead.


        ## 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.classifyRuns.createAndPoll({
          classifier: { id: "cl_abc123" },
          file: { url: "https://..." }
        });

        // Returns when the run reaches a terminal state

        console.log(result.output);

        ```

        </Tab>

        <Tab title="Python">

        ```python

        result = client.classify_runs.create_and_poll(
            classifier={"id": "cl_abc123"},
            file={"url": "https://..."}
        )

        # Returns when the run reaches a terminal state

        print(result.output)

        ```

        </Tab>

        <Tab title="Java">

        ```java

        var result = client.classifyRuns().createAndPoll(ClassifyRunsCreateRequest.builder()
            .file(ClassifyRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .classifier(ClassifyRunsCreateRequestClassifier.builder().id("cl_abc123").build())
            .build());
        // Returns when the run reaches a terminal state

        System.out.println(result.getOutput());

        ```

        </Tab>

        </Tabs>
      tags:
        - classifyRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Classification completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifyRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                classifier:
                  $ref: '#/components/schemas/ClassifyRunsPostRequestBodyContentApplicationJsonSchemaClassifier'
                  description: |
                    Reference to an existing classifier. One of `classifier` or `config` must be provided.
                config:
                  $ref: '#/components/schemas/ClassifyConfig'
                  description: |
                    Inline classify configuration. One of `classifier` or `config` must be provided.
                file:
                  $ref: '#/components/schemas/ClassifyRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be classified. Files can be provided as a URL, an Extend file ID, or raw text.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
              required:
                - file
    get:
      operationId: list
      summary: List Classify Runs
      description: >
        List all classify runs.


        Returns a summary of each run. Use `GET /classify_runs/{id}` to retrieve the full object including `output` and
        `config`.
      tags:
        - classifyRuns
      parameters:
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorRunStatus'
        - name: classifierId
          in: query
          description: |
            Filters classify runs by the classifier ID. If not provided, all classify runs are returned.

            Example: `"cl_BMdfq_yWM3sT-ZzvCnA3f"`
          required: false
          schema:
            type: string
        - name: batchId
          in: query
          description: |
            Filters runs by the batch they belong to. Only returns runs created as part of the specified batch.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: false
          schema:
            type: string
        - name: sourceId
          in: query
          description: Filters runs by the source ID.
          required: false
          schema:
            $ref: '#/components/schemas/RunSourceId'
        - name: source
          in: query
          description: Filters runs by the source that created them. If not provided, runs from all sources are returned.
          required: false
          schema:
            $ref: '#/components/schemas/RunSource'
        - name: fileNameContains
          in: query
          description: |
            Filters runs by the name of the file. Only returns runs where the file name contains this string.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: >
            You will get a list of summaries for each classify run. These are shortened versions of the full classify
            run object.


            To get the full object, use the [Get Classify
            Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/get-classify-run) endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/classifyRuns_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classify_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Classify Run
      description: >
        Retrieve details about a specific classify run, including its status and outputs.


        A common use case for this endpoint is to poll for the status and final output of a classify run when using the
        [Create Classify Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/create-classify-run)
        endpoint. For instance, if you do not want to not configure webhooks to receive the output via
        completion/failure events.
      tags:
        - classifyRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for this classify run.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved classify run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifyRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete Classify Run
      description: >
        Delete a classify run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - classifyRuns
      parameters:
        - name: id
          in: path
          description: The ID of the classify run.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Classifier run deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/classifyRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classify_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Classify Run
      description: >
        Cancel an in-progress classify run.


        Note: Only classify runs with a status of `"PROCESSING"` can be cancelled. Classifier runs that have already
        completed, failed, or been cancelled cannot be cancelled again.
      tags:
        - classifyRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the classify run to cancel.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Classifier run cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifyRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classifiers:
    post:
      operationId: create
      summary: Create Classifier
      description: Create a new classifier.
      tags:
        - classifiers
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Classifier created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Classifier'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the classifier.
                cloneClassifierId:
                  type: string
                  description: >
                    The ID of an existing classifier to clone. If provided, the new classifier will be created with the
                    same config as the classifier with this ID. Cannot be provided together with `config`.


                    Example: `"cl_BMdfq_yWM3sT-ZzvCnA3f"`
                config:
                  $ref: '#/components/schemas/ClassifyConfig'
                  description: |
                    The configuration for the classifier. Cannot be provided together with `cloneClassifierId`.
              required:
                - name
    get:
      operationId: list
      summary: List Classifiers
      description: >
        List all classifiers.


        Returns a summary of each classifier. Use `GET /classifiers/{id}` to retrieve the full object including
        `draftVersion`.
      tags:
        - classifiers
      parameters:
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved classifiers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/classifiers_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classifiers/{id}:
    get:
      operationId: retrieve
      summary: Get Classifier
      description: Get details of a classifier.
      tags:
        - classifiers
      parameters:
        - name: id
          in: path
          description: |
            The ID of the classifier to get.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Classifier details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Classifier'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Classifier
      description: Update an existing classifier.
      tags:
        - classifiers
      parameters:
        - name: id
          in: path
          description: |
            The ID of the classifier to update.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Classifier updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Classifier'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the classifier.
                config:
                  $ref: '#/components/schemas/ClassifyConfig'
                  description: The new configuration for the classifier. This will update the draft version of the classifier.
  /classifiers/{classifierId}/versions:
    post:
      operationId: create
      summary: Create Classifier Version
      description: >
        This endpoint allows you to publish a new version of an existing classifier. Publishing a new version creates a
        snapshot of the classifier's current configuration and makes it available for use in workflows.


        Publishing a new version does not automatically update existing workflows using this classifier. You may need to
        manually update workflows to use the new version if desired.
      tags:
        - classifierVersions
      parameters:
        - name: classifierId
          in: path
          description: |
            The ID of the classifier.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully published classifier version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifierVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                releaseType:
                  $ref: '#/components/schemas/ReleaseType'
                description:
                  $ref: '#/components/schemas/VersionDescription'
                config:
                  $ref: '#/components/schemas/ClassifyConfig'
                  description: The configuration for this version of the classifier.
              required:
                - releaseType
    get:
      operationId: list
      summary: List Classifier Versions
      description: >
        This endpoint allows you to fetch all versions of a given classifier, including the current `draft` version.


        Versions are returned in descending order of creation (newest first) with the `draft` version first. The `draft`
        version is the latest unpublished version of the classifier, which can be published to create a new version. It
        might not have any changes from the last published version.
      tags:
        - classifierVersions
      parameters:
        - name: classifierId
          in: path
          description: |
            The ID of the classifier.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved classifier versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/classifierVersions_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /classifiers/{classifierId}/versions/{versionId}:
    get:
      operationId: retrieve
      summary: Get Classifier Version
      description: Retrieve a specific version of a classifier in Extend
      tags:
        - classifierVersions
      parameters:
        - name: classifierId
          in: path
          description: |
            The ID of the classifier.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: versionId
          in: path
          description: |
            The version to retrieve. Accepts any of the following:

            - `"draft"` — returns the current draft version
            - `"latest"` — returns the latest published version (falls back to draft if none published)
            - A version number (e.g. `"0.1"`, `"1.0"`) — returns that specific published version
            - A version ID (e.g. `"clsv_QYk6jgHA_8CsO8rVWhyNC"`) — returns that specific version by ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved classifier version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifierVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /split:
    post:
      operationId: split
      summary: Split File (Sync)
      description: >
        Split a document synchronously, waiting for the result before returning. This endpoint has a **5-minute
        timeout** — if processing takes longer, the request will fail.


        **Note:** This endpoint is intended for onboarding and testing only. For production workloads, use `POST
        /split_runs` with [polling or webhooks](https://docs.extend.ai/2026-02-09/general/async-processing) instead, as
        it provides better reliability for large files and avoids timeout issues.


        The Split endpoint allows you to split documents into multiple parts using an existing splitter or an inline
        configuration.


        For more details, see the [Split File guide](https://docs.extend.ai/2026-02-09/splitting/configuration).
      tags:
        - ''
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully split file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                splitter:
                  $ref: '#/components/schemas/SplitPostRequestBodyContentApplicationJsonSchemaSplitter'
                  description: |
                    Reference to an existing splitter. One of `splitter` or `config` must be provided.
                config:
                  $ref: '#/components/schemas/SplitConfig'
                  description: |
                    Inline splitter configuration. One of `splitter` or `config` must be provided.
                file:
                  $ref: '#/components/schemas/SplitPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be split. Files can be provided as a URL or an Extend file ID.
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
              required:
                - file
  /split_runs:
    post:
      operationId: create
      summary: Split File (Async)
      description: >
        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/api-reference/endpoints/split/get-split-run) endpoint for results. See
        [Async Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for a full guide on polling
        helpers and webhooks.


        If you're processing multiple files, consider using the [Batch Split
        endpoint](https://docs.extend.ai/2026-02-09/api-reference/endpoints/batch/batch-create-split-runs) instead.


        ## 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(SplitRunsCreateRequest.builder()
            .file(SplitRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .splitter(SplitRunsCreateRequestSplitter.builder().id("spl_abc123").build())
            .build());
        // Returns when the run reaches a terminal state

        System.out.println(result.getOutput());

        ```

        </Tab>

        </Tabs>
      tags:
        - splitRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Split completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                splitter:
                  $ref: '#/components/schemas/SplitRunsPostRequestBodyContentApplicationJsonSchemaSplitter'
                  description: |
                    Reference to an existing splitter. One of `splitter` or `config` must be provided.
                config:
                  $ref: '#/components/schemas/SplitConfig'
                  description: |
                    Inline splitter configuration. One of `splitter` or `config` must be provided.
                file:
                  $ref: '#/components/schemas/SplitRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be split. Files can be provided as a URL or an Extend file ID.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
              required:
                - file
    get:
      operationId: list
      summary: List Split Runs
      description: >
        List all split runs.


        Returns a summary of each run. Use `GET /split_runs/{id}` to retrieve the full object including `output` and
        `config`.
      tags:
        - splitRuns
      parameters:
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorRunStatus'
        - name: splitterId
          in: query
          description: |
            Filters split runs by the splitter ID. If not provided, all split runs are returned.

            Example: `"spl_BMdfq_yWM3sT-ZzvCnA3f"`
          required: false
          schema:
            type: string
        - name: batchId
          in: query
          description: |
            Filters runs by the batch they belong to. Only returns runs created as part of the specified batch.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: false
          schema:
            type: string
        - name: sourceId
          in: query
          description: Filters runs by the source ID.
          required: false
          schema:
            $ref: '#/components/schemas/RunSourceId'
        - name: source
          in: query
          description: Filters runs by the source that created them. If not provided, runs from all sources are returned.
          required: false
          schema:
            $ref: '#/components/schemas/RunSource'
        - name: fileNameContains
          in: query
          description: |
            Filters runs by the name of the file. Only returns runs where the file name contains this string.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: >
            You will get a list of summaries for each split run. These are shortened versions of the full split run
            object.


            To get the full object, use the [Get Split
            Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/split/get-split-run) endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/splitRuns_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /split_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Split Run
      description: >
        Retrieve details about a specific split run, including its status and outputs.


        A common use case for this endpoint is to poll for the status and final output of a split run when using the
        [Create Split Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/split/create-split-run) endpoint.
        For instance, if you do not want to not configure webhooks to receive the output via completion/failure events.
      tags:
        - splitRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for this split run.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved split run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete Split Run
      description: >
        Delete a split run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - splitRuns
      parameters:
        - name: id
          in: path
          description: The ID of the split run.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Splitter run deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/splitRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /split_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Split Run
      description: >
        Cancel an in-progress split run.


        Note: Only split runs with a status of `"PROCESSING"` can be cancelled. Splitter runs that have already
        completed, failed, or been cancelled cannot be cancelled again.
      tags:
        - splitRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the split run to cancel.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Splitter run cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /splitters:
    post:
      operationId: create
      summary: Create Splitter
      description: Create a new splitter.
      tags:
        - splitters
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Splitter created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Splitter'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the splitter.
                cloneSplitterId:
                  type: string
                  description: >
                    The ID of an existing splitter to clone. If provided, the new splitter will be created with the same
                    config as the splitter with this ID. Cannot be provided together with `config`.


                    Example: `"spl_BMdfq_yWM3sT-ZzvCnA3f"`
                config:
                  $ref: '#/components/schemas/SplitConfig'
                  description: |
                    The configuration for the splitter. Cannot be provided together with `cloneSplitterId`.
              required:
                - name
    get:
      operationId: list
      summary: List Splitters
      description: >
        List all splitters.


        Returns a summary of each splitter. Use `GET /splitters/{id}` to retrieve the full object including
        `draftVersion`.
      tags:
        - splitters
      parameters:
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved splitters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/splitters_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /splitters/{id}:
    get:
      operationId: retrieve
      summary: Get Splitter
      description: Get details of a splitter.
      tags:
        - splitters
      parameters:
        - name: id
          in: path
          description: |
            The ID of the splitter to get.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Splitter details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Splitter'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Splitter
      description: Update an existing splitter.
      tags:
        - splitters
      parameters:
        - name: id
          in: path
          description: |
            The ID of the splitter to update.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Splitter updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Splitter'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the splitter.
                config:
                  $ref: '#/components/schemas/SplitConfig'
                  description: The new configuration for the splitter. This will update the draft version of the splitter.
  /splitters/{splitterId}/versions:
    post:
      operationId: create
      summary: Create Splitter Version
      description: >
        This endpoint allows you to publish a new version of an existing splitter. Publishing a new version creates a
        snapshot of the splitter's current configuration and makes it available for use in workflows.


        Publishing a new version does not automatically update existing workflows using this splitter. You may need to
        manually update workflows to use the new version if desired.
      tags:
        - splitterVersions
      parameters:
        - name: splitterId
          in: path
          description: |
            The ID of the splitter.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully published splitter version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitterVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                releaseType:
                  $ref: '#/components/schemas/ReleaseType'
                description:
                  $ref: '#/components/schemas/VersionDescription'
                config:
                  $ref: '#/components/schemas/SplitConfig'
                  description: The configuration for this version of the splitter.
              required:
                - releaseType
    get:
      operationId: list
      summary: List Splitter Versions
      description: >
        This endpoint allows you to fetch all versions of a given splitter, including the current `draft` version.


        Versions are returned in descending order of creation (newest first) with the `draft` version first. The `draft`
        version is the latest unpublished version of the splitter, which can be published to create a new version. It
        might not have any changes from the last published version.
      tags:
        - splitterVersions
      parameters:
        - name: splitterId
          in: path
          description: |
            The ID of the splitter.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved splitter versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/splitterVersions_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /splitters/{splitterId}/versions/{versionId}:
    get:
      operationId: retrieve
      summary: Get Splitter Version
      description: Retrieve a specific version of a splitter in Extend
      tags:
        - splitterVersions
      parameters:
        - name: splitterId
          in: path
          description: |
            The ID of the splitter.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: versionId
          in: path
          description: |
            The version to retrieve. Accepts any of the following:

            - `"draft"` — returns the current draft version
            - `"latest"` — returns the latest published version (falls back to draft if none published)
            - A version number (e.g. `"0.1"`, `"1.0"`) — returns that specific published version
            - A version ID (e.g. `"splv_QYk6jgHA_8CsO8rVWhyNC"`) — returns that specific version by ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved splitter version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitterVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /edit:
    post:
      operationId: edit
      summary: Edit File (Sync)
      description: >
        Edit a file synchronously, waiting for the result before returning. This endpoint has a **5-minute timeout** —
        if processing takes longer, the request will fail.


        **Note:** This endpoint is intended for onboarding and testing only. For production workloads, use `POST
        /edit_runs` with [polling or webhooks](https://docs.extend.ai/2026-02-09/general/async-processing) instead, as
        it provides better reliability for large files and avoids timeout issues.


        The Edit endpoint allows you to detect and fill form fields in PDF documents.


        For more details, see the [Edit File guide](https://docs.extend.ai/2026-02-09/editing/overview). See [Editing
        Error Handling](https://docs.extend.ai/2026-02-09/editing/error-handling) for HTTP errors and run failure
        reasons.
      tags:
        - ''
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully edited file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/EditPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be edited. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/EditConfig'
              required:
                - file
  /edit_runs:
    post:
      operationId: create
      summary: Edit File (Async)
      description: >
        Edit and manipulate PDF documents by detecting and filling form fields.


        The Edit Runs endpoint allows you to convert and edit documents and get an edit run ID that can be used to check
        status and retrieve results with the [Get Edit
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/edit/get-edit-run) endpoint.


        For more details, see the [Edit File guide](https://docs.extend.ai/2026-02-09/editing/overview). See [Async
        Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for polling helpers and webhooks, and
        [Editing Error Handling](https://docs.extend.ai/2026-02-09/editing/error-handling) for HTTP errors and failed
        runs.


        ## 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` or `FAILED`):


        <Tabs>

        <Tab title="TypeScript">

        ```typescript

        const result = await client.editRuns.createAndPoll({
          file: { url: "https://..." },
          config: { /* edit config */ }
        });

        // Returns when the run reaches a terminal state

        console.log(result.output);

        ```

        </Tab>

        <Tab title="Python">

        ```python

        result = client.edit_runs.create_and_poll(
            file={"url": "https://..."},
            config={ ... }  # edit config
        )

        # Returns when the run reaches a terminal state

        print(result.output)

        ```

        </Tab>

        <Tab title="Java">

        ```java

        var result = client.editRuns().createAndPoll(EditRunsCreateRequest.builder()
            .file(EditRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .config(EditConfig.builder().instructions("Fill out the form").build())
            .build());
        // Returns when the run reaches a terminal state

        System.out.println(result.getOutput());

        ```

        </Tab>

        </Tabs>
      tags:
        - editRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully initiated edit run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/EditRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to be edited. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/EditConfig'
              required:
                - file
  /edit_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Edit Run
      description: >
        Retrieve the status and results of an edit run.


        Use this endpoint to get results for an edit run that has already completed, or to check on the status of an
        edit run initiated via the [Create Edit
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/edit/create-edit-run) endpoint.
      tags:
        - editRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for the edit run.

            Example: `"edr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved edit run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: delete
      summary: Delete Edit Run
      description: >
        Delete an edit run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than relying on automated
        data retention policies, or to make one-off deletions for your downstream customers.
      tags:
        - editRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the edit run to delete.

            Example: `"edr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted edit run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/editRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /edit_templates/{id}:
    get:
      operationId: retrieve
      summary: Get Edit Template
      description: >
        Retrieve a saved edit template by ID.


        Use this endpoint to inspect the source file, default edit configuration, and optional schema generation
        configuration saved on an edit template. You can reuse the returned `config` with `POST /edit` or `POST
        /edit_runs`, and reuse `schemaConfig` with `POST /detect_form` or `POST /form_detection_runs`.
      tags:
        - editTemplates
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for the edit template.

            Example: `"edt_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved edit template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditTemplate'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /edit_schemas/generate:
    post:
      operationId: generate
      summary: Generate Edit Schema
      description: >
        **Deprecated:** Use `POST /detect_form` for synchronous form detection or `POST /form_detection_runs` for
        asynchronous processing.


        Detect fields in a PDF form and synchronously return an edit schema payload.


        Use this endpoint when you want Extend to bootstrap an `EditRootJSON` schema from an existing form, optionally
        mapping an existing schema onto the detected fields.


        This endpoint returns the generated schema directly. There are no schema generation run resources to poll or
        delete.


        For more details, see the [Detect Form guide](https://docs.extend.ai/2026-02-09/editing/detect-form) and the
        [Edit File guide](https://docs.extend.ai/2026-02-09/editing/overview).
      tags:
        - editSchemas
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully generated edit schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditSchemaGenerationResponse'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/EditSchemasGeneratePostRequestBodyContentApplicationJsonSchemaFile'
                  description: The file to analyze. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/EditSchemaGenerationConfig'
              required:
                - file
  /detect_form:
    post:
      operationId: detect-form
      summary: Detect Form (Sync)
      description: >
        Detect fields in a PDF form and wait for the generated edit schema before returning. This endpoint has a
        **5-minute timeout** — if processing takes longer, the request will fail.


        **Note:** For production workloads, use `POST /form_detection_runs` and poll `GET /form_detection_runs/{id}`
        instead. The asynchronous API is more reliable for large files and avoids request timeout issues.


        The response is a completed `form_detection_run`. Its `output.schema` can be passed directly to `POST /edit` or
        `POST /edit_runs`.


        For more details, see the [Detect Form guide](https://docs.extend.ai/2026-02-09/editing/detect-form). See
        [Editing Error Handling](https://docs.extend.ai/2026-02-09/editing/error-handling) for HTTP errors and run
        failure reasons.
      tags:
        - ''
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully detected the form and generated an edit schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormDetectionRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/DetectFormPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The PDF form to analyze. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/EditSchemaGenerationConfig'
              required:
                - file
  /form_detection_runs:
    post:
      operationId: create
      summary: Detect Form (Async)
      description: >
        Start detecting fields in a PDF form and return immediately with a `form_detection_run` resource, typically in
        the `PROCESSING` state.


        Poll the [Get Form Detection
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/edit/get-form-detection-run) endpoint until the
        status is `PROCESSED` or `FAILED`. When processing succeeds, `output.schema` contains an edit schema you can
        pass directly to `POST /edit` or `POST /edit_runs`.


        See [Async Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for polling guidance and
        [Editing Error Handling](https://docs.extend.ai/2026-02-09/editing/error-handling) for HTTP errors and failed
        runs.
      tags:
        - formDetectionRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully initiated form detection run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormDetectionRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/FormDetectionRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: The PDF form to analyze. Files can be provided as a URL or an Extend file ID.
                config:
                  $ref: '#/components/schemas/EditSchemaGenerationConfig'
              required:
                - file
  /form_detection_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Form Detection Run
      description: >
        Retrieve the status and results of a form detection run.


        Use this endpoint to poll a run created with `POST /form_detection_runs`. When `status` is `PROCESSED`,
        `output.schema` contains the generated edit schema.
      tags:
        - formDetectionRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for the form detection run.

            Example: `"sgr_xK9mLPqRtN3vS8wF5hB2cQ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved form detection run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormDetectionRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflow_runs:
    post:
      operationId: create
      summary: Run Workflow
      description: >
        Run a workflow. A workflow is a sequence of steps that process files and data in a specific order to achieve a
        desired outcome. See [Async Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for a full
        guide on polling helpers and webhooks.


        Pass `file` for a single document use case (more common), or `package` to process 2–50 files together as one
        package in a single run where context across files is used together to determine final output. Exactly one of
        `file` or `package` must be provided. See [Package
        runs](https://docs.extend.ai/2026-02-09/workflows/overview#package-runs) for details.


        ## 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`, `CANCELLED`, `NEEDS_REVIEW`, or `REJECTED`):


        <Tabs>

        <Tab title="TypeScript">

        ```typescript

        const result = await client.workflowRuns.createAndPoll({
          workflow: { id: "wf_abc123" },
          file: { url: "https://..." }
        });

        // Returns when the workflow run reaches a terminal state

        console.log(result.status);

        console.log(result.stepRuns);

        ```

        </Tab>

        <Tab title="Python">

        ```python

        result = client.workflow_runs.create_and_poll(
            workflow={"id": "wf_abc123"},
            file={"url": "https://..."}
        )

        # Returns when the workflow run reaches a terminal state

        print(result.status)

        print(result.step_runs)

        ```

        </Tab>

        <Tab title="Java">

        ```java

        var result = client.workflowRuns().createAndPoll(WorkflowRunsCreateRequest.builder()
            .workflow(WorkflowReference.builder().id("wf_abc123").build())
            .file(WorkflowRunsCreateRequestFile.of(FileFromUrl.builder().url("https://...").build()))
            .build());
        // Returns when the workflow run reaches a terminal state

        System.out.println(result.getStatus());

        System.out.println(result.getStepRuns());

        ```

        </Tab>

        </Tabs>


        <Warning>Workflow runs can take a long time. Complex workflows may run for hours. For long-running workflows,
        consider using [webhooks](https://docs.extend.ai/2026-02-09/webhooks/configuration) instead of
        polling.</Warning>
      tags:
        - workflowRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                workflow:
                  $ref: '#/components/schemas/WorkflowReference'
                file:
                  $ref: '#/components/schemas/WorkflowRunsPostRequestBodyContentApplicationJsonSchemaFile'
                  description: >-
                    The file to be processed. Supported file types can be found
                    [here](https://docs.extend.ai/2026-02-09/general/supported-file-types). Files can be provided as a
                    URL, an Extend file ID, or raw text. Mutually exclusive with `package` — provide one or the other.
                    If you wish to process many files as independent runs, consider using the [Batch Run
                    Workflow](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/batch-create-workflow-runs)
                    endpoint.
                package:
                  $ref: '#/components/schemas/WorkflowRunPackage'
                  description: >-
                    A set of 2–50 files to process together in a single workflow run. Mutually exclusive with `file` —
                    provide one or the other.
                outputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/WorkflowRunsPostRequestBodyContentApplicationJsonSchemaOutputsItems'
                  description: >-
                    Predetermined outputs to be used for the workflow run. Generally not recommended for most use cases,
                    however, can be useful in cases of overriding a classification in a workflow, or a subset of
                    extraction fields when data is known. Not supported on package runs — a package run produces a
                    single merged result across all files and cannot accept pre-supplied per-processor outputs.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
                metadata:
                  $ref: '#/components/schemas/RunMetadata'
                secrets:
                  $ref: '#/components/schemas/RunSecrets'
              required:
                - workflow
    get:
      operationId: list
      summary: List Workflow Runs
      description: >
        List runs of a Workflow. Workflows are sequences of steps that process files and data in a specific order to
        achieve a desired outcome. A WorkflowRun represents a single execution of a workflow against a file.
      tags:
        - workflowRuns
      parameters:
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/WorkflowRunStatus'
        - name: workflowId
          in: query
          description: |
            Filters workflow runs by the workflow ID. If not provided, runs for all workflows are returned.

            Example: `"workflow_BMdfq_yWM3sT-ZzvCnA3f"`
          required: false
          schema:
            type: string
        - name: batchId
          in: query
          description: >
            Filters workflow runs by the batch ID. This is useful for fetching all runs for a given batch created via
            the [Batch Run
            Workflow](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/batch-create-workflow-runs)
            endpoint.


            Example: `"batch_7Ws31-F5"`
          required: false
          schema:
            type: string
        - name: fileNameContains
          in: query
          description: |
            Filters runs by the name of the file. Only returns runs where the file name contains this string.

            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: >
            You will get a list of summaries for each workflow run. These are shortened versions of the full WorkflowRun
            object.


            To get the full object, use the [Get
            WorkflowRun](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/get-workflow-run) endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowRuns_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflow_runs/batch:
    post:
      operationId: create-batch
      summary: Batch Run Workflow
      description: >
        This endpoint allows you to efficiently initiate large batches of workflow runs in a single request (up to 1,000
        in a single request, but you can queue up multiple batches in rapid succession). It accepts an array of inputs,
        each containing a file and metadata pair. The primary use case for this endpoint is for doing large bulk runs of
        >1000 files at a time that can process over the course of a few hours without needing to manage rate limits that
        would likely occur using the primary run endpoint.


        Unlike the single [Run
        Workflow](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/create-workflow-run) endpoint which
        returns the details of the created workflow runs immediately, this batch endpoint returns a `batchId`.


        Our recommended usage pattern is to integrate with
        [Webhooks](https://docs.extend.ai/2026-02-09/webhooks/configuration) for consuming results, using the `metadata`
        and `batchId` to match up results to the original inputs in your downstream systems. However, you can integrate
        in a polling mechanism by using a combination of the [List Workflow
        Runs](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/list-workflow-runs) endpoint to fetch
        all runs via a batch, and then [Get Workflow
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/get-workflow-run) to fetch the full
        outputs each run.


        **Priority:** By default, workflow runs created through this batch endpoint are assigned a priority of 90. You
        can override this by passing an optional `priority` value (1–100) in the request body — lower values run first.


        **Processing and Monitoring:**

        Upon successful submission, the endpoint returns a `batchId`. The individual workflow runs are then queued for
        processing.


        - **Monitoring:** Track the progress and consume results of individual runs using
        [Webhooks](https://docs.extend.ai/2026-02-09/webhooks/configuration). Subscribe to events like
        `workflow_run.completed`, `workflow_run.failed`, etc. The webhook payload for these events will include the
        corresponding `batchId` and the `metadata` you provided for each input.

        - **Fetching Results:** You can also use the [List Workflow
        Runs](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/list-workflow-runs) endpoint and filter
        using the `batchId` query param.
      tags:
        - workflowRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully queued batch workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowRuns_createBatch_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                workflow:
                  $ref: '#/components/schemas/WorkflowReference'
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems'
                  description: >-
                    An array of input objects to be processed by the workflow. Each object represents a single workflow
                    run to be created. The array must contain at least 1 input and at most 1000 inputs.
                priority:
                  type: integer
                  default: 90
                  description: >-
                    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. Defaults to 90 if not specified.
              required:
                - workflow
                - inputs
  /workflow_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Workflow Run
      description: Once a workflow has been run, you can check the status and output of a specific WorkflowRun.
      tags:
        - workflowRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Workflow Run
      description: You can update the name and metadata of an in progress WorkflowRun at any time using this endpoint.
      tags:
        - workflowRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: An optional name that can be assigned to a specific WorkflowRun
                metadata:
                  type: object
                  additionalProperties:
                    description: Any type
                  description: >
                    A metadata object that can be assigned to a specific WorkflowRun. If metadata already exists on this
                    WorkflowRun, the newly incoming metadata will be merged with the existing metadata, with the
                    incoming metadata taking field precedence.


                    You can include any arbitrary `key : value` pairs in this object.


                    To categorize workflow 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.
    delete:
      operationId: delete
      summary: Delete Workflow Run
      description: >
        Delete a workflow run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - workflowRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowRuns_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflow_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Workflow Run
      description: >
        Cancel a running workflow run by its ID. This endpoint allows you to stop a workflow run that is currently in
        progress.


        Note: Only workflow runs with a status of `PROCESSING` or `PENDING` can be cancelled. Workflow runs that are
        completed, failed, in review, rejected, or already cancelled cannot be cancelled.
      tags:
        - workflowRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully cancelled workflow run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflows:
    post:
      operationId: create
      summary: Create Workflow
      description: >
        Create a new workflow. Optionally provide `steps` to define the workflow's step graph.


        When `steps` is omitted, the workflow is created with default steps (`TRIGGER` → `PARSE`). When `steps` is
        provided, the step graph is validated and the draft version is populated with the given steps.


        **Note:** The default steps may change in the future. If your integration depends on a specific step graph,
        provide `steps` explicitly.
      tags:
        - workflows
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the workflow.
                steps:
                  type: array
                  items:
                    $ref: '#/components/schemas/WorkflowStepDefinition'
                  description: >
                    The steps that define the workflow's processing graph. Each step has a `type`, a unique `name`, and
                    optional `next` entries that define routing to downstream steps.


                    When omitted, the workflow is created with default steps (`TRIGGER` → `PARSE`). The default steps
                    may change in the future.


                    See the [Configuring Workflows via API
                    guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for step definitions,
                    branching patterns, and examples.
              required:
                - name
    get:
      operationId: list
      summary: List Workflows
      description: |
        List all workflows. Returns a paginated list of workflow summaries.
      tags:
        - workflows
      parameters:
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully retrieved workflows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflows_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflows/{id}:
    get:
      operationId: retrieve
      summary: Get Workflow
      description: Get details of a workflow, including its draft version and steps.
      tags:
        - workflows
      parameters:
        - name: id
          in: path
          description: The ID of the workflow.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Workflow
      description: >
        Update a workflow's draft. You can update the name, the steps, or both.


        When `steps` is provided, the draft version's steps are replaced with the new set. Steps with matching names
        from the previous draft preserve their internal identity.
      tags:
        - workflows
      parameters:
        - name: id
          in: path
          description: The ID of the workflow to update.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Workflow updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name for the workflow.
                steps:
                  type: array
                  items:
                    $ref: '#/components/schemas/WorkflowStepDefinition'
                  description: >
                    The new step definitions for the draft version. Replaces all existing draft steps.


                    See the [Configuring Workflows via API
                    guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for step definitions,
                    branching patterns, and examples.
  /workflows/{id}/versions:
    post:
      operationId: create
      summary: Create Workflow Version
      description: >
        Deploy a new version of a workflow. The deployed version becomes available for running workflow runs.


        When `steps` is omitted, the current draft is deployed as-is. When `steps` is provided, the given steps are
        deployed directly without modifying the draft.
      tags:
        - workflowVersions
      parameters:
        - name: id
          in: path
          description: The ID of the workflow to deploy.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Version deployed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: An optional name for this deployed version.
                steps:
                  type: array
                  items:
                    $ref: '#/components/schemas/WorkflowStepDefinition'
                  description: >
                    Optional step definitions. When provided, these steps are deployed directly without modifying the
                    draft. When omitted, the current draft is deployed.


                    All configurable steps (`EXTRACT`, `CLASSIFY`, `SPLIT`, `CONDITIONAL_EXTRACT`, `RULE_VALIDATION`,
                    `EXTERNAL_DATA_VALIDATION`) must include `config` when deploying. Unconfigured steps are rejected
                    with a 400.


                    See the [Configuring Workflows via API
                    guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows) for step definitions,
                    branching patterns, and examples.
    get:
      operationId: list
      summary: List Workflow Versions
      description: |
        List all versions of a workflow, including the draft version. Returns a paginated list of version summaries.
      tags:
        - workflowVersions
      parameters:
        - name: id
          in: path
          description: The ID of the workflow.
          required: true
          schema:
            type: string
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully retrieved versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowVersions_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /workflows/{id}/versions/{versionId}:
    get:
      operationId: retrieve
      summary: Get Workflow Version
      description: Get a specific version of a workflow, including its step definitions.
      tags:
        - workflowVersions
      parameters:
        - name: id
          in: path
          description: The ID of the workflow.
          required: true
          schema:
            type: string
        - name: versionId
          in: path
          description: |
            The version to retrieve. Accepts any of the following:

            - `"draft"` — returns the current draft version
            - `"latest"` — returns the latest published version (falls back to draft if none published)
            - A version number (e.g. `"1"`, `"2"`) — returns that specific published version
            - A version ID (e.g. `"workflow_version_abc123"`) — returns that specific version by ID
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowVersion'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /evaluation_sets:
    post:
      operationId: create
      summary: Create Evaluation Set
      description: >
        Evaluation sets are collections of files and expected outputs that are used to evaluate the performance of a
        given extractor, classifier, or splitter. This endpoint will create a new evaluation set, which items can be
        added to using the [Create Evaluation Set
        Item](https://docs.extend.ai/2026-02-09/api-reference/endpoints/evaluation/create-evaluation-set-item) endpoint.


        Note: It is not necessary to create an evaluation set via API. You can also create an evaluation set via the
        Extend dashboard and take the ID from there. To learn more about how to create evaluation sets, see the
        [Evaluation Sets](https://docs.extend.ai/2026-02-09/evaluation/overview) product page.
      tags:
        - evaluationSets
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created evaluation set
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSet'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: |
                    The name of the evaluation set.

                    Example: `"Invoice Processing Test Set"`
                description:
                  type: string
                  description: |
                    A description of what this evaluation set is used for.

                    Example: `"Q4 2023 vendor invoices"`
                entityId:
                  type: string
                  description: >
                    The ID of the extractor, classifier, or splitter to create an evaluation set for. Evaluation sets
                    can in theory be run against any extractor, classifier, or splitter, but it is required to associate
                    the evaluation set with a primary extractor, classifier, or splitter.


                    Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
              required:
                - name
                - entityId
    get:
      operationId: list
      summary: List Evaluation Sets
      description: List evaluation sets in your account.
      tags:
        - evaluationSets
      parameters:
        - name: entityId
          in: query
          description: |
            The ID of the extractor, classifier, or splitter to filter evaluation sets by.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved evaluation sets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/evaluationSets_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /evaluation_sets/{id}:
    get:
      operationId: retrieve
      summary: Get Evaluation Set
      description: >
        Retrieve a specific evaluation set by ID. This returns an evaluation set object, but does not include the items
        in the evaluation set. You can use the [List Evaluation Set
        Items](https://docs.extend.ai/2026-02-09/api-reference/endpoints/evaluation/list-evaluation-set-items) endpoint
        to get the items in an evaluation set.
      tags:
        - evaluationSets
      parameters:
        - name: id
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved evaluation set
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSet'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /evaluation_sets/{evaluationSetId}/items:
    post:
      operationId: create
      summary: Create Evaluation Set Items
      description: >
        Evaluation set items are the individual files and expected outputs that are used to evaluate the performance of
        a given extractor, classifier, or splitter in Extend. This endpoint will create new evaluation set items in
        Extend, which will be used during an evaluation run.


        **Limit:** You can create up to 100 items at a time.


        Learn more about how to create evaluation set items in the [Evaluation
        Sets](https://docs.extend.ai/2026-02-09/evaluation/overview) product page.
      tags:
        - evaluationSetItems
      parameters:
        - name: evaluationSetId
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Evaluation set items created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/evaluationSetItems_create_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    $ref: >-
                      #/components/schemas/EvaluationSetsEvaluationSetIdItemsPostRequestBodyContentApplicationJsonSchemaItemsItems
                  description: An array of objects representing the evaluation set items to create.
              required:
                - items
    get:
      operationId: list
      summary: List Evaluation Set Items
      description: >
        List items in a specific evaluation set.


        Returns a summary of each evaluation set item. Use the [Get Evaluation Set
        Item](https://docs.extend.ai/2026-02-09/api-reference/endpoints/evaluation/get-evaluation-set-item) endpoint to
        get the full details of an evaluation set item.
      tags:
        - evaluationSetItems
      parameters:
        - name: evaluationSetId
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: sortBy
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortBy'
            default: updatedAt
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of evaluation set items
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/evaluationSetItems_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /evaluation_sets/{evaluationSetId}/items/{itemId}:
    get:
      operationId: retrieve
      summary: Get Evaluation Set Item
      description: Get details of an evaluation set item.
      tags:
        - evaluationSetItems
      parameters:
        - name: evaluationSetId
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: itemId
          in: path
          description: |
            The ID of the evaluation set item.

            Example: `"evi_kR9mNP12Qw4yTv8BdR3H"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Evaluation set item details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSetItem'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Evaluation Set Item
      description: >-
        If you need to change the expected output for a given evaluation set item, you can use this endpoint to update
        the item. This can be useful if you need to correct an error in the expected output or if the output of the
        extractor, classifier, or splitter has changed.
      tags:
        - evaluationSetItems
      parameters:
        - name: evaluationSetId
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: itemId
          in: path
          description: |
            The ID of the evaluation set item.

            Example: `"evi_kR9mNP12Qw4yTv8BdR3H"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated evaluation set item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSetItem'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expectedOutput:
                  $ref: '#/components/schemas/ProvidedProcessorOutput'
                  description: >-
                    The expected output of the extractor, classifier, or splitter when run against the file. This must
                    conform to the output schema of the entity associated with the evaluation set.
              required:
                - expectedOutput
    delete:
      operationId: delete
      summary: Delete Evaluation Set Item
      description: Delete an evaluation set item.
      tags:
        - evaluationSetItems
      parameters:
        - name: evaluationSetId
          in: path
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
          required: true
          schema:
            type: string
        - name: itemId
          in: path
          description: |
            The ID of the evaluation set item.

            Example: `"evi_kR9mNP12Qw4yTv8BdR3H"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Evaluation set item deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/evaluationSetItems_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /evaluation_set_runs:
    post:
      operationId: create
      summary: Create Evaluation Set Run
      description: >
        Create and start an async evaluation set run. The response returns the evaluation set run object with its
        initial status; use `GET /evaluation_set_runs/{id}` to poll for completion.


        Evaluation set runs are currently supported for document processor evaluation sets.
      tags:
        - evaluationSetRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Evaluation set run created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSetRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                evaluationSetId:
                  type: string
                  description: The ID of the evaluation set to run.
                entity:
                  $ref: '#/components/schemas/EvaluationSetRunsPostRequestBodyContentApplicationJsonSchemaEntity'
                  description: >
                    Optional processor and version to run against the evaluation set. If omitted, the evaluation set's
                    processor is run at its draft version.
                evaluationSetItemIds:
                  type: array
                  items:
                    type: string
                  description: >-
                    Optional list of evaluation set item IDs to run. If omitted, all items in the evaluation set are
                    run.
              required:
                - evaluationSetId
  /evaluation_set_runs/{id}:
    get:
      operationId: retrieve
      summary: Get Evaluation Set Run
      description: Get details of an evaluation set run.
      tags:
        - evaluationSetRuns
      parameters:
        - name: id
          in: path
          description: |
            The ID of the evaluation set run.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved evaluation set run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluationSetRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /webhook_endpoints:
    post:
      operationId: create
      summary: Create Webhook Endpoint
      description: >
        Create a new webhook endpoint. The response includes a `signingSecret` that is only returned once — store it
        securely for verifying webhook signatures.


        The `enabledEvents` array specifies which global event types this endpoint should receive. Use the [Webhook
        Events](https://docs.extend.ai/2026-02-09/api-reference/webhook-events) reference to see available event types.


        To subscribe to events scoped to a specific resource (e.g., a single extractor or workflow), use [Create Webhook
        Subscription](https://docs.extend.ai/2026-02-09/api-reference/endpoints/webhook/create-webhook-subscription)
        after creating the endpoint.
      tags:
        - webhookEndpoints
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created webhook endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpointCreate'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  description: The URL that webhook events will be sent to.
                name:
                  type: string
                  description: A human-readable name for the webhook endpoint.
                status:
                  $ref: '#/components/schemas/WebhookEndpointStatus'
                enabledEvents:
                  type: array
                  items:
                    $ref: '#/components/schemas/WebhookEndpointEventType'
                  description: >
                    The list of global event types to subscribe to. Pass an empty array to create an endpoint with no
                    global events (useful if you only plan to use resource-scoped subscriptions).
                apiVersion:
                  $ref: '#/components/schemas/ApiVersionEnum'
                advancedOptions:
                  $ref: '#/components/schemas/WebhookAdvancedOptions'
              required:
                - url
                - name
                - enabledEvents
                - apiVersion
    get:
      operationId: list
      summary: List Webhook Endpoints
      description: List all webhook endpoints.
      tags:
        - webhookEndpoints
      parameters:
        - name: status
          in: query
          description: Filter by endpoint status.
          required: false
          schema:
            $ref: '#/components/schemas/WebhookEndpointStatus'
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of webhook endpoints
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhookEndpoints_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /webhook_endpoints/{id}:
    get:
      operationId: retrieve
      summary: Get Webhook Endpoint
      description: Retrieve a webhook endpoint by ID.
      tags:
        - webhookEndpoints
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook endpoint.

            Example: `"wh_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Retrieved webhook endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpoint'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Webhook Endpoint
      description: >
        Update a webhook endpoint. Only the fields you include in the request body will be updated; omitted fields
        remain unchanged.


        The `apiVersion` of a webhook endpoint cannot be changed after creation.
      tags:
        - webhookEndpoints
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook endpoint to update.

            Example: `"wh_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated webhook endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpoint'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  description: The URL that webhook events will be sent to.
                name:
                  type: string
                  description: A human-readable name for the webhook endpoint.
                status:
                  $ref: '#/components/schemas/WebhookEndpointStatus'
                enabledEvents:
                  type: array
                  items:
                    $ref: '#/components/schemas/WebhookEndpointEventType'
                  description: The list of global event types to subscribe to.
                advancedOptions:
                  $ref: '#/components/schemas/WebhookAdvancedOptions'
    delete:
      operationId: delete
      summary: Delete Webhook Endpoint
      description: |
        Delete a webhook endpoint and all of its subscriptions. This operation is permanent and cannot be undone.
      tags:
        - webhookEndpoints
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook endpoint to delete.

            Example: `"wh_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted webhook endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhookEndpoints_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /webhook_subscriptions:
    post:
      operationId: create
      summary: Create Webhook Subscription
      description: >
        Create a resource-scoped webhook subscription on an existing webhook endpoint.


        Subscriptions let you receive events for a specific resource (e.g., a single extractor or workflow) rather than
        all resources of that type. The `enabledEvents` must be valid for the given `resourceType` and the endpoint's
        `apiVersion`.


        If a subscription already exists for the same endpoint and resource, it will be updated with the new
        `enabledEvents` instead of creating a duplicate.
      tags:
        - webhookSubscriptions
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created webhook subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                webhookEndpointId:
                  type: string
                  description: The ID of the webhook endpoint to attach this subscription to.
                resourceType:
                  $ref: '#/components/schemas/WebhookSubscriptionResourceType'
                resourceId:
                  type: string
                  description: |
                    The ID of the resource to scope this subscription to.
                enabledEvents:
                  type: array
                  items:
                    $ref: '#/components/schemas/WebhookSubscriptionEventType'
                  description: |
                    The event types to subscribe to. Must be valid for the given `resourceType`.
              required:
                - webhookEndpointId
                - resourceType
                - resourceId
                - enabledEvents
    get:
      operationId: list
      summary: List Webhook Subscriptions
      description: >
        List webhook subscriptions. You can filter by `webhookEndpointId` to see all subscriptions for a given endpoint,
        or by `resourceId` to see all subscriptions for a given resource.
      tags:
        - webhookSubscriptions
      parameters:
        - name: webhookEndpointId
          in: query
          description: Filter subscriptions by the webhook endpoint they belong to.
          required: false
          schema:
            type: string
        - name: resourceId
          in: query
          description: Filter subscriptions by the resource they are scoped to.
          required: false
          schema:
            type: string
        - name: sortDir
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/SortDir'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/NextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/MaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of webhook subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhookSubscriptions_list_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /webhook_subscriptions/{id}:
    get:
      operationId: retrieve
      summary: Get Webhook Subscription
      description: Retrieve a webhook subscription by ID.
      tags:
        - webhookSubscriptions
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook subscription.

            Example: `"whes_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Retrieved webhook subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: update
      summary: Update Webhook Subscription
      description: |
        Update the enabled events on a webhook subscription.
      tags:
        - webhookSubscriptions
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook subscription to update.

            Example: `"whes_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated webhook subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabledEvents:
                  type: array
                  items:
                    $ref: '#/components/schemas/WebhookSubscriptionEventType'
                  description: |
                    The event types to subscribe to. Must be valid for the subscription's resource type.
              required:
                - enabledEvents
    delete:
      operationId: delete
      summary: Delete Webhook Subscription
      description: |
        Delete a webhook subscription. This operation is permanent and cannot be undone.
      tags:
        - webhookSubscriptions
      parameters:
        - name: id
          in: path
          description: |
            The ID of the webhook subscription to delete.

            Example: `"whes_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted webhook subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhookSubscriptions_delete_Response_200'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /parse_runs/batch:
    post:
      operationId: create-batch
      summary: Batch Parse Files
      description: >
        Submit up to **1,000 files** for parsing in a single request. Each file is processed as an independent parse run
        using the same configuration.


        Unlike the single [Parse File
        (Async)](https://docs.extend.ai/2026-02-09/api-reference/endpoints/parse/create-parse-run) endpoint, this batch
        endpoint accepts an `inputs` array and immediately returns a `BatchRun` object containing a batch `id` and a
        `PENDING` status. The individual runs are then queued and processed asynchronously.


        **Monitoring results:**

        - **Webhooks (recommended):** Subscribe to `batch_parse_run.processed` and `batch_parse_run.failed` events. The
        webhook payload indicates the batch has finished — fetch individual run results using `GET
        /parse_runs?batchId={id}`.

        - **Polling:** Call `GET /batch_runs/{id}` to check the overall batch status, and use `GET
        /parse_runs?batchId={id}` to retrieve individual run results.


        **Notes:**

        - `inputs` must contain between 1 and 1,000 items.

        - File input supports URLs, Extend file IDs, and raw text strings.
      tags:
        - parseRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully queued batch parse run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems'
                  description: >
                    An array of inputs to parse. Each item produces one parse run. Must contain between 1 and 1,000
                    items.
                config:
                  $ref: '#/components/schemas/ParseConfig'
                  description: >
                    Optional parsing configuration applied to every run in this batch. If omitted, default parse
                    settings are used.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
              required:
                - inputs
  /extract_runs/batch:
    post:
      operationId: create-batch
      summary: Batch Extract Files
      description: >
        Submit up to **1,000 files** for extraction in a single request. Each file is processed as an independent
        extract run using the same extractor and configuration.


        Unlike the single [Extract File
        (Async)](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/create-extract-run) endpoint, this
        batch endpoint accepts an `inputs` array and immediately returns a `BatchRun` object containing a batch `id` and
        a `PENDING` status. The individual runs are then queued and processed asynchronously.


        **Monitoring results:**

        - **Webhooks (recommended):** Subscribe to `batch_processor_run.processed` and `batch_processor_run.failed`
        events. The webhook payload indicates the batch has finished — fetch individual run results using `GET
        /extract_runs?batchId={id}`.

        - **Polling:** Call `GET /batch_runs/{id}` to check the overall batch status, and use `GET /extract_runs`
        filtered by `batchId` to retrieve individual run results.


        **Notes:**

        - A processor reference (`extractor.id`) is required — inline `config` is not supported for batch requests.

        - `inputs` must contain between 1 and 1,000 items.

        - All inputs in a batch use the same extractor version and override config.
      tags:
        - extractRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully queued batch extract run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                extractor:
                  $ref: '#/components/schemas/ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaExtractor'
                  description: Reference to the extractor to run against every input in this batch.
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems'
                  description: >
                    An array of inputs to process. Each item produces one extract run. Must contain between 1 and 1,000
                    items.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
              required:
                - extractor
                - inputs
  /classify_runs/batch:
    post:
      operationId: create-batch
      summary: Batch Classify Files
      description: >
        Submit up to **1,000 files** for classification in a single request. Each file is processed as an independent
        classify run using the same classifier and configuration.


        Unlike the single [Classify File
        (Async)](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/create-classify-run) endpoint, this
        batch endpoint accepts an `inputs` array and immediately returns a `BatchRun` object containing a batch `id` and
        a `PENDING` status. The individual runs are then queued and processed asynchronously.


        **Monitoring results:**

        - **Webhooks (recommended):** Subscribe to `batch_processor_run.processed` and `batch_processor_run.failed`
        events. The webhook payload indicates the batch has finished — fetch individual run results using `GET
        /classify_runs?batchId={id}`.

        - **Polling:** Call `GET /batch_runs/{id}` to check the overall batch status, and use `GET /classify_runs`
        filtered by `batchId` to retrieve individual run results.


        **Notes:**

        - A processor reference (`classifier.id`) is required — inline `config` is not supported for batch requests.

        - `inputs` must contain between 1 and 1,000 items.

        - All inputs in a batch use the same classifier version and override config.
      tags:
        - classifyRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully queued batch classify run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                classifier:
                  $ref: '#/components/schemas/ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaClassifier'
                  description: Reference to the classifier to run against every input in this batch.
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems'
                  description: >
                    An array of inputs to process. Each item produces one classify run. Must contain between 1 and 1,000
                    items.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
              required:
                - classifier
                - inputs
  /split_runs/batch:
    post:
      operationId: create-batch
      summary: Batch Split Files
      description: >
        Submit up to **1,000 files** for splitting in a single request. Each file is processed as an independent split
        run using the same splitter and configuration.


        Unlike the single [Split File
        (Async)](https://docs.extend.ai/2026-02-09/api-reference/endpoints/split/create-split-run) endpoint, this batch
        endpoint accepts an `inputs` array and immediately returns a `BatchRun` object containing a batch `id` and a
        `PENDING` status. The individual runs are then queued and processed asynchronously.


        **Monitoring results:**

        - **Webhooks (recommended):** Subscribe to `batch_processor_run.processed` and `batch_processor_run.failed`
        events. The webhook payload indicates the batch has finished — fetch individual run results using `GET
        /split_runs?batchId={id}`.

        - **Polling:** Call `GET /batch_runs/{id}` to check the overall batch status, and use `GET /split_runs` filtered
        by `batchId` to retrieve individual run results.


        **Notes:**

        - A processor reference (`splitter.id`) is required — inline `config` is not supported for batch requests.

        - `inputs` must contain between 1 and 1,000 items.

        - All inputs in a batch use the same splitter version and override config.

        - Raw text input (`FileFromText`) is not supported for split runs. Use a URL or file ID.
      tags:
        - splitRuns
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully queued batch split run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                splitter:
                  $ref: '#/components/schemas/SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaSplitter'
                  description: Reference to the splitter to run against every input in this batch.
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems'
                  description: >
                    An array of inputs to process. Each item produces one split run. Must contain between 1 and 1,000
                    items. Raw text input is not supported — use a URL or file ID.
                priority:
                  $ref: '#/components/schemas/RunPriority'
                  default: 50
              required:
                - splitter
                - inputs
  /batch_runs/{id}:
    get:
      operationId: get
      summary: Get Batch Run
      description: >
        Retrieve the status of a batch run by its ID. The `status` field reflects the aggregate state of the batch.


        This is a unified endpoint that works for batches created via any of the batch submission endpoints (`POST
        /parse_runs/batch`, `POST /extract_runs/batch`, `POST /classify_runs/batch`, `POST /split_runs/batch`).


        | Status | Meaning |

        |---|---|

        | `PENDING` | Queued, not yet started |

        | `PROCESSING` | Runs are actively being processed |

        | `PROCESSED` | All runs have completed |

        | `FAILED` | The batch encountered a fatal error |

        | `CANCELLED` | The batch was cancelled |


        To retrieve individual run results, use the List endpoint for the relevant type filtered by `batchId`:

        - `GET /parse_runs?batchId={id}`

        - `GET /extract_runs?batchId={id}`

        - `GET /classify_runs?batchId={id}`

        - `GET /split_runs?batchId={id}`
      tags:
        - batchRuns
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier of the batch processor run to retrieve.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully retrieved batch processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchRun'
        '400':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: >
            Standard error response format for all Extend API errors.


            See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for
            error handling recommendations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /processor_runs:
    post:
      operationId: create
      summary: Run Processor
      description: >
        Run processors (extraction, classification, splitting, etc.) on a given document.


        **Synchronous vs Asynchronous Processing:**

        - **Asynchronous (default)**: Returns immediately with `PROCESSING` status. Use webhooks or polling to get
        results.

        - **Synchronous**: Set `sync: true` to wait for completion and get final results in the response (5-minute
        timeout).


        **For asynchronous processing:**

        - You can [configure webhooks](https://docs.extend.ai/2026-02-09/webhooks/configuration) to receive
        notifications when a processor run is complete or failed.

        - Or you can [poll the get
        endpoint](https://docs.extend.ai/2026-02-09/api-reference/endpoints/legacy/get-processor-run) for updates on the
        status of the processor run.
      tags:
        - processorRun
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorRun_create_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '429':
          description: Too Many Requests - Processing runs limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunProcessorRequestTooManyRequestsError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                processorId:
                  $ref: '#/components/schemas/LegacyProcessorId'
                version:
                  type: string
                  default: latest
                  description: >
                    An optional version of the processor to use. When not supplied, the most recent published version of
                    the processor will be used. Special values include:

                    - `"latest"` for the most recent published version. If there are no published versions, the draft
                    version will be used.

                    - `"draft"` for the draft version.

                    - Specific version numbers corresponding to versions your team has published, e.g. `"1.0"`, `"2.2"`,
                    etc.
                file:
                  $ref: '#/components/schemas/LegacyProcessorRunFileInput'
                  description: >-
                    The file to be processed. One of `file` or `rawText` must be provided. Supported file types can be
                    found [here](https://docs.extend.ai/2026-02-09/general/supported-file-types).
                rawText:
                  type: string
                  description: >-
                    A raw string to be processed. Can be used in place of file when passing raw text data streams. One
                    of `file` or `rawText` must be provided.
                sync:
                  type: boolean
                  default: false
                  description: >
                    Whether to run the processor synchronously. When `true`, the request will wait for the processor run
                    to complete and return the final results. When `false` (default), the request returns immediately
                    with a `PROCESSING` status, and you can poll for completion or use webhooks. For production use
                    cases, we recommending leaving sync off and building around an async integration for more
                    resiliency, unless your use case is predictably fast (e.g. sub < 30 seconds) run time or otherwise
                    have integration constraints that require a synchronous API. See [Async
                    Processing](https://docs.extend.ai/2026-02-09/general/async-processing) for more details.


                    **Timeout**: Synchronous requests have a 5-minute timeout. If the processor run takes longer, it
                    will continue processing asynchronously and you can retrieve the results via the GET endpoint.
                priority:
                  type: integer
                  default: 50
                  description: >-
                    An optional value used to determine the relative order of ProcessorRuns when rate limiting is in
                    effect. Lower values will be prioritized before higher values.
                metadata:
                  $ref: '#/components/schemas/LegacyJsonObject'
                  description: >
                    An optional object that can be passed in to identify the run of the document processor. It will be
                    returned back to you in the response and webhooks.


                    To categorize processor 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.
                config:
                  $ref: '#/components/schemas/ProcessorRunsPostRequestBodyContentApplicationJsonSchemaConfig'
                  description: >-
                    The configuration for the processor run. If this is provided, this config will be used. If not
                    provided, the config for the specific version you provide will be used. The type of configuration
                    must match the processor type.
              required:
                - processorId
    get:
      operationId: list
      summary: List Processor Runs
      description: |
        List runs of a Processor. A ProcessorRun represents a single execution of a processor against a file.
      tags:
        - processorRun
      parameters:
        - name: status
          in: query
          description: |
            Filters processor runs by their status. If not provided, no filter is applied.

             The status of a processor run:
             * `"PENDING"` - The processor run has not started yet
             * `"PROCESSING"` - The processor run is in progress
             * `"PROCESSED"` - The processor run completed successfully
             * `"FAILED"` - The processor run encountered an error
             * `"CANCELLED"` - The processor run was cancelled
          required: false
          schema:
            $ref: '#/components/schemas/LegacyProcessorStatus'
        - name: processorId
          in: query
          description: |
            Filters processor runs by the processor ID. If not provided, runs for all processors are returned.

            Example: `"ex_BMdfq_yWM3sT-ZzvCnA3f"`
          required: false
          schema:
            type: string
        - name: processorType
          in: query
          description: |
            Filters processor runs by the processor type. If not provided, runs for all processor types are returned.

            Example: `"EXTRACT"`
          required: false
          schema:
            $ref: '#/components/schemas/LegacyProcessorType'
        - name: sourceId
          in: query
          description: >
            Filters processor runs by the source ID. The source ID corresponds to the entity that created the processor
            run.


            Example: `"workflow_run_123"`
          required: false
          schema:
            type: string
        - name: source
          in: query
          description: |
            Filters processor runs by the source that created them. If not provided, runs from all sources are returned.

            The source of the processor run:
            * `"ADMIN"` - Created by admin
            * `"BATCH_PROCESSOR_RUN"` - Created from a batch processor run
            * `"PLAYGROUND"` - Created from playground
            * `"WORKFLOW_CONFIGURATION"` - Created from workflow configuration
            * `"WORKFLOW_RUN"` - Created from a workflow run
            * `"STUDIO"` - Created from Studio
            * `"API"` - Created via API
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorRunsGetParametersSource'
        - name: fileNameContains
          in: query
          description: >
            Filters processor runs by the name of the file. Only returns processor runs where the file name contains
            this string.


            Example: `"invoice"`
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          description: Sorts the processor runs by the given field.
          required: false
          schema:
            $ref: '#/components/schemas/LegacySortByEnum'
            default: updatedAt
        - name: sortDir
          in: query
          description: >-
            Sorts the processor runs in ascending or descending order. Ascending order means the earliest processor run
            is returned first.
          required: false
          schema:
            $ref: '#/components/schemas/LegacySortDirEnum'
            default: desc
        - name: nextPageToken
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/LegacyNextPageToken'
        - name: maxPageSize
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/LegacyMaxPageSize'
            default: 10
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: >
            You will get a list of summaries for each processor run. These are shortened versions of the full
            ProcessorRun object.


            To get the full object, use the [Get
            ProcessorRun](https://docs.extend.ai/2026-02-09/api-reference/endpoints/legacy/get-processor-run) endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorRun_list_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
  /processor_runs/{id}:
    get:
      operationId: get
      summary: Get Processor Run
      description: >
        Retrieve details about a specific processor run, including its status, outputs, and any edits made during
        review.


        A common use case for this endpoint is to poll for the status and final output of an async processor run when
        using the [Run Processor](https://docs.extend.ai/2026-02-09/api-reference/endpoints/legacy/create-processor-run)
        endpoint. For instance, if you do not want to not configure webhooks to receive the output via
        completion/failure events.
      tags:
        - processorRun
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for this processor run.

            Example: `"exr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorRun_get_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
    delete:
      operationId: delete
      summary: Delete Processor Run
      description: >
        Delete a processor run and all associated data from Extend. This operation is permanent and cannot be undone.


        This endpoint can be used if you'd like to manage data retention on your own rather than automated data
        retention policies. Or make one-off deletions for your downstream customers.
      tags:
        - processorRun
      parameters:
        - name: id
          in: path
          description: |
            The ID of the processor run to delete.

            Example: `"exr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorRun_delete_Response_200'
        '404':
          description: Processor run not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyExtendError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyExtendError'
  /processor_runs/{id}/cancel:
    post:
      operationId: cancel
      summary: Cancel Processor Run
      description: >
        Cancel a running processor run by its ID. This endpoint allows you to stop a processor run that is currently in
        progress.


        Note: Only processor runs with a status of `"PROCESSING"` can be cancelled. Processor runs that have already
        completed, failed, or been cancelled cannot be cancelled again.
      tags:
        - processorRun
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier for the processor run to cancel.

            Example: `"exr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully cancelled processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorRun_cancel_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
  /processors:
    post:
      operationId: create
      summary: Create Processor
      description: Create a new processor in Extend, optionally cloning from an existing processor
      tags:
        - processor
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
      responses:
        '200':
          description: Successfully created processor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processor_create_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Processor to clone not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the new processor
                type:
                  $ref: '#/components/schemas/LegacyProcessorType'
                cloneProcessorId:
                  type: string
                  description: |
                    The ID of an existing processor to clone. One of `cloneProcessorId` or `config` must be provided.

                    Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
                config:
                  $ref: '#/components/schemas/ProcessorsPostRequestBodyContentApplicationJsonSchemaConfig'
                  description: >-
                    The configuration for the processor. The type of configuration must match the processor type. One of
                    `cloneProcessorId` or `config` must be provided.
              required:
                - name
                - type
    get:
      operationId: list
      summary: List Processors
      description: List all processors in your organization
      tags:
        - processor
      parameters:
        - name: type
          in: query
          description: Filter processors by type
          required: false
          schema:
            $ref: '#/components/schemas/LegacyProcessorType'
        - name: nextPageToken
          in: query
          description: Token for retrieving the next page of results
          required: false
          schema:
            type: string
        - name: maxPageSize
          in: query
          description: Maximum number of processors to return per page
          required: false
          schema:
            type: integer
            default: 25
        - name: sortBy
          in: query
          description: Field to sort by
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorsGetParametersSortBy'
            default: updatedAt
        - name: sortDir
          in: query
          description: Sort direction
          required: false
          schema:
            $ref: '#/components/schemas/ProcessorsGetParametersSortDir'
            default: desc
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved processors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyListProcessorsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '429':
          description: Rate Limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
  /processors/{id}:
    post:
      operationId: update
      summary: Update Processor
      description: Update an existing processor in Extend
      tags:
        - processor
      parameters:
        - name: id
          in: path
          description: |
            The ID of the processor to update.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated processor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processor_update_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name for the processor
                config:
                  $ref: '#/components/schemas/ProcessorsIdPostRequestBodyContentApplicationJsonSchemaConfig'
                  description: |
                    The new configuration for the processor. The type of configuration must match the processor type:
                    * For classification processors, use `ClassificationConfig`
                    * For extraction processors, use `ExtractionConfig`
                    * For splitter processors, use `SplitterConfig`
  /processors/{id}/versions:
    get:
      operationId: list
      summary: List Processor Versions
      description: >
        This endpoint allows you to fetch all versions of a given processor, including the current `draft` version.


        Versions are typically returned in descending order of creation (newest first), but this should be confirmed in
        the actual implementation.

        The `draft` version is the latest unpublished version of the processor, which can be published to create a new
        version. It might not have any changes from the last published version.
      tags:
        - processorVersion
      parameters:
        - name: id
          in: path
          description: |
            The ID of the processor to retrieve versions for.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved processor versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorVersion_list_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Processor not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
  /processors/{id}/publish:
    post:
      operationId: create
      summary: Publish Processor Version
      description: >
        This endpoint allows you to publish a new version of an existing processor. Publishing a new version creates a
        snapshot of the processor's current configuration and makes it available for use in workflows.


        Publishing a new version does not automatically update existing workflows using this processor. You may need to
        manually update workflows to use the new version if desired.
      tags:
        - processorVersion
      parameters:
        - name: id
          in: path
          description: |
            The ID of the processor to publish a new version for.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully published processor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorVersion_create_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                releaseType:
                  $ref: '#/components/schemas/ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaReleaseType'
                  description: >-
                    The type of release for this version. The two options are "major" and "minor", which will increment
                    the version number accordingly.
                description:
                  type: string
                  description: >-
                    A description of the changes in this version. This helps track the evolution of the processor over
                    time.
                config:
                  $ref: '#/components/schemas/ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaConfig'
                  description: >-
                    The configuration for this version of the processor. The type of configuration must match the
                    processor type.
              required:
                - releaseType
  /processors/{processorId}/versions/{processorVersionId}:
    get:
      operationId: get
      summary: Get Processor Version
      description: Retrieve a specific version of a processor in Extend
      tags:
        - processorVersion
      parameters:
        - name: processorId
          in: path
          description: |
            The ID of the processor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: processorVersionId
          in: path
          description: |
            The ID of the specific processor version to retrieve.

            Example: `"exv_QYk6jgHA_8CsO8rVWhyNC"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved processor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/processorVersion_get_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Processor or version not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
  /batch_processor_runs/{id}:
    get:
      operationId: get
      summary: Get Batch Processor Run (Deprecated)
      description: >
        Retrieve details about a batch processor run, including evaluation runs.


        **Deprecated:** This endpoint is maintained for backwards compatibility only and will be replaced in a future
        API version. Use [Get Evaluation Set
        Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/evaluation/get-evaluation-set-run) for
        interacting with evaluation set runs.
      tags:
        - batchProcessorRun
      parameters:
        - name: id
          in: path
          description: |
            The unique identifier of the batch processor run to retrieve.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
        - name: x-extend-api-version
          in: header
          description: >-
            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](https://docs.extend.ai/2026-02-09/api-reference/api-versioning) for more details.
          required: false
          schema:
            type: string
            enum:
              - '2026-02-09'
            default: '2026-02-09'
        - name: x-extend-workspace-id
          in: header
          description: >
            The workspace ID to target. **Required** when using an organization-scoped API key; optional for
            workspace-scoped keys (the key is already tied to a workspace). See
            [Authentication](https://docs.extend.ai/2026-02-09/api-reference/authentication) for details on API key
            scopes.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved batch processor run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batchProcessorRun_get_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
servers:
  - url: https://api.extend.ai
    description: Production
  - url: https://api.us2.extend.app
    description: Production US2
  - url: https://api.eu1.extend.ai
    description: Production EU1
webhooks:
  parse-run-processed-webhook:
    post:
      operationId: parse-run-processed-webhook
      summary: Parse Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseRunProcessedWebhookEvent'
  parse-run-failed-webhook:
    post:
      operationId: parse-run-failed-webhook
      summary: Parse Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseRunFailedWebhookEvent'
  extract-run-processed-webhook:
    post:
      operationId: extract-run-processed-webhook
      summary: Extract Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractRunProcessedWebhookEvent'
  extract-run-failed-webhook:
    post:
      operationId: extract-run-failed-webhook
      summary: Extract Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractRunFailedWebhookEvent'
  extractor-created-webhook:
    post:
      operationId: extractor-created-webhook
      summary: Extractor Created
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractorCreatedWebhookEvent'
  extractor-updated-webhook:
    post:
      operationId: extractor-updated-webhook
      summary: Extractor Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractorUpdatedWebhookEvent'
  extractor-deleted-webhook:
    post:
      operationId: extractor-deleted-webhook
      summary: Extractor Deleted
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractorDeletedWebhookEvent'
  extractor-draft-updated-webhook:
    post:
      operationId: extractor-draft-updated-webhook
      summary: Extractor Draft Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractorDraftUpdatedWebhookEvent'
  extractor-version-published-webhook:
    post:
      operationId: extractor-version-published-webhook
      summary: Extractor Version Published
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtractorVersionPublishedWebhookEvent'
  classify-run-processed-webhook:
    post:
      operationId: classify-run-processed-webhook
      summary: Classify Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifyRunProcessedWebhookEvent'
  classify-run-failed-webhook:
    post:
      operationId: classify-run-failed-webhook
      summary: Classify Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifyRunFailedWebhookEvent'
  classifier-created-webhook:
    post:
      operationId: classifier-created-webhook
      summary: Classifier Created
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifierCreatedWebhookEvent'
  classifier-updated-webhook:
    post:
      operationId: classifier-updated-webhook
      summary: Classifier Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifierUpdatedWebhookEvent'
  classifier-deleted-webhook:
    post:
      operationId: classifier-deleted-webhook
      summary: Classifier Deleted
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifierDeletedWebhookEvent'
  classifier-draft-updated-webhook:
    post:
      operationId: classifier-draft-updated-webhook
      summary: Classifier Draft Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifierDraftUpdatedWebhookEvent'
  classifier-version-published-webhook:
    post:
      operationId: classifier-version-published-webhook
      summary: Classifier Version Published
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifierVersionPublishedWebhookEvent'
  split-run-processed-webhook:
    post:
      operationId: split-run-processed-webhook
      summary: Split Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitRunProcessedWebhookEvent'
  split-run-failed-webhook:
    post:
      operationId: split-run-failed-webhook
      summary: Split Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitRunFailedWebhookEvent'
  splitter-created-webhook:
    post:
      operationId: splitter-created-webhook
      summary: Splitter Created
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitterCreatedWebhookEvent'
  splitter-updated-webhook:
    post:
      operationId: splitter-updated-webhook
      summary: Splitter Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitterUpdatedWebhookEvent'
  splitter-deleted-webhook:
    post:
      operationId: splitter-deleted-webhook
      summary: Splitter Deleted
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitterDeletedWebhookEvent'
  splitter-draft-updated-webhook:
    post:
      operationId: splitter-draft-updated-webhook
      summary: Splitter Draft Updated
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitterDraftUpdatedWebhookEvent'
  splitter-version-published-webhook:
    post:
      operationId: splitter-version-published-webhook
      summary: Splitter Version Published
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitterVersionPublishedWebhookEvent'
  batch-processor-run-completed-webhook:
    post:
      operationId: batch-processor-run-completed-webhook
      summary: Batch Processor Run Completed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchProcessorRunCompletedWebhookEvent'
  batch-processor-run-failed-webhook:
    post:
      operationId: batch-processor-run-failed-webhook
      summary: Batch Processor Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchProcessorRunFailedWebhookEvent'
  batch-parse-run-completed-webhook:
    post:
      operationId: batch-parse-run-completed-webhook
      summary: Batch Parse Run Completed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchParseRunCompletedWebhookEvent'
  batch-parse-run-failed-webhook:
    post:
      operationId: batch-parse-run-failed-webhook
      summary: Batch Parse Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchParseRunFailedWebhookEvent'
  edit-run-processed-webhook:
    post:
      operationId: edit-run-processed-webhook
      summary: Edit Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditRunProcessedWebhookEvent'
  edit-run-failed-webhook:
    post:
      operationId: edit-run-failed-webhook
      summary: Edit Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditRunFailedWebhookEvent'
  workflow-run-completed-webhook:
    post:
      operationId: workflow-run-completed-webhook
      summary: Workflow Run Completed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunCompletedWebhookEvent'
  workflow-run-failed-webhook:
    post:
      operationId: workflow-run-failed-webhook
      summary: Workflow Run Failed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunFailedWebhookEvent'
  workflow-run-needs-review-webhook:
    post:
      operationId: workflow-run-needs-review-webhook
      summary: Workflow Run Needs Review
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunNeedsReviewWebhookEvent'
  workflow-run-rejected-webhook:
    post:
      operationId: workflow-run-rejected-webhook
      summary: Workflow Run Rejected
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunRejectedWebhookEvent'
  workflow-run-cancelled-webhook:
    post:
      operationId: workflow-run-cancelled-webhook
      summary: Workflow Run Cancelled
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunCancelledWebhookEvent'
  workflow-run-step-run-processed-webhook:
    post:
      operationId: workflow-run-step-run-processed-webhook
      summary: Workflow Run Step Run Processed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunStepRunProcessedWebhookEvent'
  workflow-created-webhook:
    post:
      operationId: workflow-created-webhook
      summary: Workflow Created
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreatedWebhookEvent'
  workflow-deployed-webhook:
    post:
      operationId: workflow-deployed-webhook
      summary: Workflow Deployed
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowDeployedWebhookEvent'
  workflow-deleted-webhook:
    post:
      operationId: workflow-deleted-webhook
      summary: Workflow Deleted
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowDeletedWebhookEvent'
components:
  schemas:
    FileObject:
      type: string
      enum:
        - file
      description: The type of object. Will always be `"file"`.
      title: FileObject
    FileType:
      type: string
      enum:
        - PDF
        - CSV
        - IMG
        - TXT
        - DOCX
        - EXCEL
        - XML
        - HTML
      description: The type of the file based on the file extension or content type.
      title: FileType
    FileContentsPagesItems:
      type: object
      properties:
        pageNumber:
          type: integer
          description: The page number of this page in the document.
        pageHeight:
          type: number
          format: double
          description: The height of the page in points. Available for PDF and IMG file types.
        pageWidth:
          type: number
          format: double
          description: The width of the page in points. Available for PDF and IMG file types.
        markdown:
          type: string
          description: >
            Cleaned and structured markdown content of this page. Available for PDF and IMG file types when the
            `markdown` query parameter is set to true.
        html:
          type: string
          description: |
            HTML content of the page. Available for DOCX file types when the `html` query parameter is set to true.
      required:
        - pageNumber
      title: FileContentsPagesItems
    FileContentsSectionsItems:
      type: object
      properties:
        startPageNumber:
          type: integer
          description: The starting page number of this section.
        endPageNumber:
          type: integer
          description: The ending page number of this section.
        markdown:
          type: string
          description: The markdown content of this section.
      required:
        - startPageNumber
        - endPageNumber
        - markdown
      title: FileContentsSectionsItems
    FileContentsSheetsItems:
      type: object
      properties:
        sheetName:
          type: string
          description: The name of the sheet.
        rawText:
          type: string
          description: The raw text content of the sheet in CSV format.
      required:
        - sheetName
      title: FileContentsSheetsItems
    FileContents:
      type: object
      properties:
        rawText:
          type: string
          description: >
            The raw text content of the file. Available for all file types when the `rawText` query parameter is set to
            true.


            - **PDF/IMG**: Concatenated raw text from all pages

            - **DOCX**: The document's raw text

            - **CSV**: Concatenated chunks or CSV text

            - **EXCEL**: Not included (use `sheets` instead)

            - **TXT/XML/HTML**: The file's text content
        pages:
          type: array
          items:
            $ref: '#/components/schemas/FileContentsPagesItems'
          description: >
            Page-level content for document file types.


            - **PDF/IMG**: Contains `pageNumber`, `pageHeight`, `pageWidth`, and `markdown` (if `markdown` query param
            is true)

            - **DOCX**: Contains `pageNumber` and `html` (if `html` query param is true)

            - **Other file types**: Empty array
        sections:
          type: array
          items:
            $ref: '#/components/schemas/FileContentsSectionsItems'
          description: >
            Section-level content for documents that support section-based chunking. Available for PDF and IMG file
            types.
        sheets:
          type: array
          items:
            $ref: '#/components/schemas/FileContentsSheetsItems'
          description: |
            Sheet-level content for spreadsheet file types. Available for EXCEL files.
      description: >
        **Deprecated:** Use the `POST /parse_runs` endpoint instead to parse and retrieve file contents. The parse runs
        endpoint provides more control over parsing configuration and better performance.


        The parsed content of the file. This field will only contain data after the file has been parsed via a parse
        run, extract run, classify run, split run, edit run, or workflow run.


        **Availability:** Only present and populated on `GET /files/{id}` when the file has been previously parsed and
        the corresponding query parameters are set to true. Will be `null` on `POST /files/upload` and for files that
        haven't been parsed. The structure varies based on file type.
      title: FileContents
    ParentSplit:
      type: object
      properties:
        id:
          type: string
          description: The ID of the split.
        type:
          type: string
          description: The type of the split.
        identifier:
          type: string
          description: The identifier of the split.
        startPage:
          type: integer
          description: The start page of the split.
        endPage:
          type: integer
          description: The end page of the split.
      required:
        - id
        - type
        - identifier
        - startPage
        - endPage
      description: >
        The split metadata details for a derivative file.


        **Availability:** Only included if this file is a derivative of another file, for instance if it was created via
        a Splitter in a workflow.
      title: ParentSplit
    FileMetadata:
      type: object
      properties:
        pageCount:
          type: number
          format: double
          description: The number of pages in the file. This is only set for PDF/DOCX files.
        parentSplit:
          $ref: '#/components/schemas/ParentSplit'
      title: FileMetadata
    CreatedAt:
      type: string
      format: date-time
      description: |
        The time (in UTC) at which the object was created. Will follow the RFC 3339 format.

        Example: `"2024-03-21T16:45:00Z"`
      title: CreatedAt
    UpdatedAt:
      type: string
      format: date-time
      description: |
        The time (in UTC) at which the object was last updated. Will follow the RFC 3339 format.

        Example: `"2024-03-21T16:45:00Z"`
      title: UpdatedAt
    File:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/FileObject'
          description: The type of object. Will always be `"file"`.
        id:
          type: string
          description: |
            ID for the file.

            Example: `"file_xK9mLPqRtN3vS8wF5hB2cQ"`
        name:
          type: string
          description: |
            The name of the file

            Example: `"Invoices.pdf"`
        type:
          oneOf:
            - $ref: '#/components/schemas/FileType'
            - type: 'null'
          description: |
            The type of the file.

            **Availability:** Present when the file type could be determined.
        presignedUrl:
          type:
            - string
            - 'null'
          description: >
            A presigned URL to download the file. Expires after 15 minutes.


            **Availability:** Present on `GET /files/{id}`. Not present on `POST /files/upload` or when the file is
            embedded in other resources (e.g., in run responses).
        parentFileId:
          type:
            - string
            - 'null'
          description: |
            ID of the parent file.

            **Availability:** Present for files created via a Splitter in a workflow.
        contents:
          oneOf:
            - $ref: '#/components/schemas/FileContents'
            - type: 'null'
          description: >
            **Deprecated:** Use the `POST /parse_runs` endpoint instead to parse and retrieve file contents. The parse
            runs endpoint provides more control over parsing configuration and better performance.


            The parsed content of the file. This field will only contain data after the file has been parsed via a parse
            run, extract run, classify run, split run, edit run, or workflow run.


            **Availability:** Only present and populated on `GET /files/{id}` when the file has been previously parsed
            and the corresponding query parameters are set to true. Will be `null` on `POST /files/upload` and for files
            that haven't been parsed. The structure varies based on file type.
        metadata:
          $ref: '#/components/schemas/FileMetadata'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - type
        - presignedUrl
        - parentFileId
        - contents
        - metadata
        - createdAt
        - updatedAt
      title: File
    ApiError:
      type: object
      properties:
        code:
          type: string
          description: Error code for programmatic handling.
        message:
          type: string
          description: |
            Human-readable error message suitable for displaying to developers. 
            Do not rely on the exact text of this message as it may change.
        retryable:
          type: boolean
          description: |
            Whether the request can be retried. When true, retry with exponential backoff.
            When false, fix the underlying issue before retrying.
        requestId:
          type: string
          description: |
            Unique request identifier for support purposes. Always include this 
            when contacting Extend support about an error.
        docUrl:
          type: string
          description: Link to relevant documentation when one is available.
      required:
        - code
        - message
        - retryable
      description: >
        Standard error response format for all Extend API errors.


        See the [Error Codes documentation](https://docs.extend.ai/2026-02-09/api-reference/error-handling) for error
        handling recommendations.
      title: ApiError
    SortDir:
      type: string
      enum:
        - asc
        - desc
      default: desc
      description: Sort in ascending or descending order. Ascending order means the earliest result is returned first.
      title: SortDir
    NextPageToken:
      type: string
      description: >
        The token used to fetch the page of results from a previous request. We use cursor based pagination and will
        return a `nextPageToken` in the response if there are more results.


        Note that if other parameters are changed in subsequent requests, you may receive inconsistent data.
      title: NextPageToken
    MaxPageSize:
      type: integer
      default: 10
      description: >-
        The maximum number of results to return in the response. You may receive less than this number if there are
        fewer results than the maximum.
      title: MaxPageSize
    FilesGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: FilesGetResponsesContentApplicationJsonSchemaObject
    FileSummaryObject:
      type: string
      enum:
        - file
      description: The type of object. Will always be `"file"`.
      title: FileSummaryObject
    FileSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/FileSummaryObject'
          description: The type of object. Will always be `"file"`.
        id:
          type: string
          description: |
            ID for the file.

            Example: `"file_xK9mLPqRtN3vS8wF5hB2cQ"`
        name:
          type: string
          description: |
            The name of the file

            Example: `"Invoices.pdf"`
        type:
          oneOf:
            - $ref: '#/components/schemas/FileType'
            - type: 'null'
          description: |
            The type of the file.

            **Availability:** Present when the file type could be determined.
        parentFileId:
          type:
            - string
            - 'null'
          description: |
            ID of the parent file.

            **Availability:** Present for files created via a Splitter in a workflow.
        metadata:
          $ref: '#/components/schemas/FileMetadata'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - type
        - parentFileId
        - metadata
        - createdAt
        - updatedAt
      title: FileSummary
    files_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/FilesGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: files_list_Response_200
    files_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted file.
      required:
        - id
      title: files_delete_Response_200
    ParsePostParametersResponseType:
      type: string
      enum:
        - json
        - url
      title: ParsePostParametersResponseType
    FileFromUrlSettings:
      type: object
      properties:
        password:
          type: string
          description: The password to unlock a password-protected PDF.
      description: Optional settings for the file, such as a password for password-protected PDFs.
      title: FileFromUrlSettings
    FileFromUrl:
      type: object
      properties:
        url:
          type: string
          description: >
            A URL to download the file. For production use cases, we recommend using presigned URLs with a 5-15 minute
            expiration time.


            Supported file types can be found [here](https://docs.extend.ai/2026-02-09/general/supported-file-types).
        name:
          type: string
          description: The name of the file. If not set, the file name is taken from the URL.
        settings:
          $ref: '#/components/schemas/FileFromUrlSettings'
          description: Optional settings for the file, such as a password for password-protected PDFs.
      required:
        - url
      title: FileFromUrl
    FileFromId:
      type: object
      properties:
        id:
          type: string
          description: |
            An Extend file ID.

            Example: `"file_xK9mLPqRtN3vS8wF5hB2cQ"`
      required:
        - id
      description: |
        An Extend file ID (for instance from another run or a previous file upload).
      title: FileFromId
    ParsePostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be parsed. Files can be provided as a URL or an Extend file ID.
      title: ParsePostRequestBodyContentApplicationJsonSchemaFile
    ParseConfigTarget:
      type: string
      enum:
        - markdown
        - spatial
      default: markdown
      description: >
        The target format for the parsed content.


        Supported values:


        * `markdown`: True markdown with logical reading order (headings, lists, tables, checkboxes). Best default for
        LLMs/RAG and enables section-based chunking.

        * `spatial`: Layout/position-preserving text that uses markdown elements for block types but is not strictly
        markdown due to whitespace/tabs used to maintain placement. Only page-based chunking is supported.


        Guidance:


        * Prefer `markdown` for most documents, multi-column reading order, and retrieval use cases

        * Prefer `spatial` for messy/scanned/handwritten or skewed documents, when you need near 1:1 layout fidelity, or
        for BOL-like logistics docs


        See “Markdown vs Spatial” in the [Parse
        guide](https://docs.extend.ai/2026-02-09/parsing/configuration#target-format) for details.
      title: ParseConfigTarget
    ParseConfigChunkingStrategyType:
      type: string
      enum:
        - page
        - document
        - section
      default: page
      description: |
        The type of chunking strategy. Supported values:

        * `page`: Chunk document by pages.
        * `document`: Entire document is a single chunk. Essentially no chunking.
        * `section`: Split by logical sections. Not supported for target=spatial.
      title: ParseConfigChunkingStrategyType
    ParseConfigChunkingStrategyOptions:
      type: object
      properties:
        minCharacters:
          type: integer
          default: 500
          description: Specify a minimum number of characters per chunk.
        maxCharacters:
          type: integer
          default: 10000
          description: Specify a maximum number of characters per chunk.
      description: Additional options for the chunking strategy.
      title: ParseConfigChunkingStrategyOptions
    ParseConfigChunkingStrategy:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ParseConfigChunkingStrategyType'
          default: page
          description: |
            The type of chunking strategy. Supported values:

            * `page`: Chunk document by pages.
            * `document`: Entire document is a single chunk. Essentially no chunking.
            * `section`: Split by logical sections. Not supported for target=spatial.
        options:
          $ref: '#/components/schemas/ParseConfigChunkingStrategyOptions'
          description: Additional options for the chunking strategy.
      description: Strategy for dividing the document into chunks.
      title: ParseConfigChunkingStrategy
    ParseConfigEngine:
      type: string
      enum:
        - parse_performance
        - parse_light
      default: parse_performance
      description: >
        The parsing engine to use. Supported values:

        * `parse_performance`: Full-featured parsing engine with highest accuracy (default)

        * `parse_light`: Lightweight parsing engine optimized for high-volume, cost-sensitive ingestion. Uses the new
        layout model with full layout support and the markdown target at lower cost and latency, but performs worse than
        `parse_performance` on lower-quality scans, harder handwriting, larger tables, non-Latin-based languages, and
        dense checkbox regions.
      title: ParseConfigEngine
    ParseConfigBlockOptionsFigures:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
          description: Whether to include figures in the output.
        figureImageClippingEnabled:
          type: boolean
          default: true
          description: Whether to clip and extract images from figures.
        advancedChartExtractionEnabled:
          type: boolean
          default: false
          description: Whether to enable advanced chart extraction using vision models for improved data extraction from charts.
        customInstructions:
          type: string
          description: >
            Custom instructions injected into the vision model prompt used to analyze and summarize figures. Use to
            steer figure descriptions toward your use case (e.g. domain terminology, details to always capture).
            Requires `enabled: true`. Available on `parse_performance` >= `2.0.0` and `parse_light` >= `1.0.0`.
      description: Options for figure blocks.
      title: ParseConfigBlockOptionsFigures
    ParseConfigBlockOptionsTablesTargetFormat:
      type: string
      enum:
        - markdown
        - html
      default: html
      description: |
        The target format for the table blocks. Supported values:
        * `markdown`: Convert table to Markdown format
        * `html`: Convert table to HTML format
      title: ParseConfigBlockOptionsTablesTargetFormat
    ParseConfigBlockOptionsTablesAgentic:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
          description: Whether to enable agentic table processing.
        customInstructions:
          type: string
          description: Custom instructions to guide the agentic table processing.
      description: >-
        Options for agentic table processing using VLM-based review and correction. Enabling this incurs additional
        credits on pages where agentic table correction is triggered.
      title: ParseConfigBlockOptionsTablesAgentic
    ParseConfigBlockOptionsTables:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
          description: This option is deprecated and will have no effect. It will be removed in the next API version.
        targetFormat:
          $ref: '#/components/schemas/ParseConfigBlockOptionsTablesTargetFormat'
          default: html
          description: |
            The target format for the table blocks. Supported values:
            * `markdown`: Convert table to Markdown format
            * `html`: Convert table to HTML format
        tableHeaderContinuationEnabled:
          type: boolean
          default: false
          description: >-
            Whether to automatically copy table headers to headerless tables on subsequent pages when they have matching
            column counts. Useful for multi-page tables.
        cellBlocksEnabled:
          type: boolean
          default: false
          description: >-
            Whether to include individual table cell blocks in the output. When enabled, each cell in a table will be
            represented as a separate block with its own bounding box and content and will be `children` of the table
            block.
        agentic:
          $ref: '#/components/schemas/ParseConfigBlockOptionsTablesAgentic'
          description: >-
            Options for agentic table processing using VLM-based review and correction. Enabling this incurs additional
            credits on pages where agentic table correction is triggered.
      description: Options for table blocks.
      title: ParseConfigBlockOptionsTables
    ParseConfigBlockOptionsTextAgentic:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
          description: Whether to enable agentic text processing for OCR corrections.
        customInstructions:
          type: string
          description: Custom instructions to guide the agentic text processing.
      description: >-
        Options for agentic text processing using VLM-based review and correction. Enabling this incurs additional
        credits on pages where agentic text correction is triggered.
      title: ParseConfigBlockOptionsTextAgentic
    ParseConfigBlockOptionsText:
      type: object
      properties:
        signatureDetectionEnabled:
          type: boolean
          default: false
          description: >-
            Whether an additional vision model will be utilized for advanced signature detection. Recommended for most
            use cases, but should be disabled if signature detection is not necessary and latency is a concern.
        agentic:
          $ref: '#/components/schemas/ParseConfigBlockOptionsTextAgentic'
          description: >-
            Options for agentic text processing using VLM-based review and correction. Enabling this incurs additional
            credits on pages where agentic text correction is triggered.
      description: Options for text blocks.
      title: ParseConfigBlockOptionsText
    ParseConfigBlockOptionsKeyValue:
      type: object
      properties:
        blankFieldFormattingEnabled:
          type: boolean
          default: false
          description: Whether to preserve blank field formatting for key-value pairs with empty values.
      description: Options for key-value pair blocks.
      title: ParseConfigBlockOptionsKeyValue
    ParseConfigBlockOptionsBarcodes:
      type: object
      properties:
        imageClippingEnabled:
          type: boolean
          default: false
          description: >-
            Whether to clip and extract images of barcodes. When enabled, barcode images will be available in the
            `imageUrl` field of BarcodeDetails.
        readingEnabled:
          type: boolean
          default: false
          description: >-
            Whether to decode and read barcode values. When enabled, decoded values will be available in the
            `decodedValue` field of BarcodeDetails.
      description: Options for barcode blocks.
      title: ParseConfigBlockOptionsBarcodes
    ParseConfigBlockOptionsFormulas:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
          description: >-
            Whether to enable formula detection and parsing. When enabled, mathematical formulas and equations are
            detected and their LaTeX representations are included in the output. When disabled, formulas will be
            detected as text blocks and may not be accurately parsed.
      description: Options for formula blocks.
      title: ParseConfigBlockOptionsFormulas
    ParseConfigBlockOptions:
      type: object
      properties:
        figures:
          $ref: '#/components/schemas/ParseConfigBlockOptionsFigures'
          description: Options for figure blocks.
        tables:
          $ref: '#/components/schemas/ParseConfigBlockOptionsTables'
          description: Options for table blocks.
        text:
          $ref: '#/components/schemas/ParseConfigBlockOptionsText'
          description: Options for text blocks.
        keyValue:
          $ref: '#/components/schemas/ParseConfigBlockOptionsKeyValue'
          description: Options for key-value pair blocks.
        barcodes:
          $ref: '#/components/schemas/ParseConfigBlockOptionsBarcodes'
          description: Options for barcode blocks.
        formulas:
          $ref: '#/components/schemas/ParseConfigBlockOptionsFormulas'
          description: Options for formula blocks.
      description: Options for controlling how different block types are processed.
      title: ParseConfigBlockOptions
    PageRangesItems:
      type: object
      properties:
        start:
          type: integer
          description: The start page of the range.
        end:
          type: integer
          default: 750
          description: The end page of the range.
      required:
        - start
        - end
      title: PageRangesItems
    PageRanges:
      type: array
      items:
        $ref: '#/components/schemas/PageRangesItems'
      description: Limit processing to the specified page ranges. See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
      title: PageRanges
    ParseConfigAdvancedOptionsExcelParsingMode:
      type: string
      enum:
        - basic
        - advanced
      description: >
        Controls how Excel files are parsed.


        * `basic`: Fast, deterministic parsing.

        * `advanced`: Enable layout block detection for complex spreadsheets. This mode incurs additional credits when
        enabled.


        For `.xls` files, `basic` mode is always used.
      title: ParseConfigAdvancedOptionsExcelParsingMode
    ParseConfigAdvancedOptionsReturnOcr:
      type: object
      properties:
        words:
          type: boolean
          default: false
          description: >-
            Whether to include word-level OCR data in the response, including word bounding boxes and confidence scores.
            This meaningfully impacts the response size, consider using the signed url return format.
      description: Options for returning raw OCR data in the response.
      title: ParseConfigAdvancedOptionsReturnOcr
    ParseConfigAdvancedOptionsEnrichmentFormat:
      type: string
      enum:
        - xml
        - bracket
      default: xml
      description: >
        The format used for enrichment annotations in the output.


        * `xml`: Use XML-style tags for enrichment annotations, e.g. <page_number>1</page_number> or
        <barcode>1234567890</barcode>

        * `bracket`: Use bracket-style notation for enrichment annotations, e.g. [page_number: 1] or [barcode:
        1234567890]
      title: ParseConfigAdvancedOptionsEnrichmentFormat
    ParseConfigAdvancedOptionsImageConversionQuality:
      type: string
      enum:
        - high
        - medium
        - low
      default: medium
      description: |
        Controls the quality level when converting images or documents to PDF for parsing.

        * `high`: Maximum quality, can add some latency for large/dense documents
        * `medium`: Balanced quality and speed
        * `low`: Lower quality, smaller file sizes, faster processing
      title: ParseConfigAdvancedOptionsImageConversionQuality
    ParseConfigAdvancedOptionsFormattingDetectionItemsType:
      type: string
      enum:
        - change_tracking
      description: >
        The type of formatting detection to enable.


        * `"change_tracking"` — Detect tracked changes (insertions, deletions, substitutions) indicated by
        strikethroughs, colored text, or underlines in the source document.
      title: ParseConfigAdvancedOptionsFormattingDetectionItemsType
    ParseConfigAdvancedOptionsFormattingDetectionItems:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ParseConfigAdvancedOptionsFormattingDetectionItemsType'
          description: >
            The type of formatting detection to enable.


            * `"change_tracking"` — Detect tracked changes (insertions, deletions, substitutions) indicated by
            strikethroughs, colored text, or underlines in the source document.
      required:
        - type
      title: ParseConfigAdvancedOptionsFormattingDetectionItems
    ParseConfigAdvancedOptions:
      type: object
      properties:
        pageRotationEnabled:
          type: boolean
          default: true
          description: Whether to automatically detect and correct page rotation.
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
        excelParsingMode:
          $ref: '#/components/schemas/ParseConfigAdvancedOptionsExcelParsingMode'
          description: >
            Controls how Excel files are parsed.


            * `basic`: Fast, deterministic parsing.

            * `advanced`: Enable layout block detection for complex spreadsheets. This mode incurs additional credits
            when enabled.


            For `.xls` files, `basic` mode is always used.
        excelSkipHiddenContent:
          type: boolean
          default: false
          description: Whether to exclude hidden rows, columns, and sheets when parsing Excel files.
        excelUseRawCellValues:
          type: boolean
          default: false
          description: >-
            Whether to return raw calculated cell values instead of locale-formatted values when parsing Excel files.
            Useful when downstream processing needs the underlying numeric or unformatted data.
        excelSkipCalculation:
          type: boolean
          default: true
          description: >-
            Whether to skip formula recalculation when opening Excel workbooks. Significantly improves parsing speed for
            formula-heavy spreadsheets. Disable if cell values depend on volatile functions like NOW() or TODAY().
        excelIncludeCellMetadata:
          type: boolean
          default: false
          description: >-
            Whether to include spreadsheet cell provenance when parsing Excel files in advanced mode. When enabled,
            table cell block details include source cell references and formulas, text or heading block details can
            include source ranges, and HTML table output includes `data-cell` and `data-formula` attributes.
        excelIncludeCellFormatting:
          type: boolean
          default: false
          description: >-
            Whether to include spreadsheet cell formatting when parsing Excel files in advanced mode. When enabled,
            table cell block details include structured formatting such as bold, italic, font color, and background
            color, and HTML table output preserves inline cell styles.
        verticalGroupingThreshold:
          type: number
          format: double
          default: 1
          description: >-
            Multiplier for the Y-axis threshold used to determine if text blocks should be placed on the same line or
            not (0.1-5.0, default 1.0). Higher values group elements that are further apart vertically. Only applies
            when the spatial target is set.
        returnOcr:
          $ref: '#/components/schemas/ParseConfigAdvancedOptionsReturnOcr'
          description: Options for returning raw OCR data in the response.
        alwaysConvertToPdf:
          type: boolean
          default: false
          description: >-
            Whether to convert supported file types (images, Word documents, PowerPoint, Excel, HTML) to PDF before
            parsing. This can improve parsing quality for some file types and ensures spatial output with bounding
            boxes.
        enrichmentFormat:
          $ref: '#/components/schemas/ParseConfigAdvancedOptionsEnrichmentFormat'
          default: xml
          description: >
            The format used for enrichment annotations in the output.


            * `xml`: Use XML-style tags for enrichment annotations, e.g. <page_number>1</page_number> or
            <barcode>1234567890</barcode>

            * `bracket`: Use bracket-style notation for enrichment annotations, e.g. [page_number: 1] or [barcode:
            1234567890]
        imageConversionQuality:
          $ref: '#/components/schemas/ParseConfigAdvancedOptionsImageConversionQuality'
          default: medium
          description: |
            Controls the quality level when converting images or documents to PDF for parsing.

            * `high`: Maximum quality, can add some latency for large/dense documents
            * `medium`: Balanced quality and speed
            * `low`: Lower quality, smaller file sizes, faster processing
        formattingDetection:
          type: array
          items:
            $ref: '#/components/schemas/ParseConfigAdvancedOptionsFormattingDetectionItems'
          description: >
            Enable detection of formatting-based annotations in the document. Currently supports change tracking
            detection.


            When enabled, detected changes are represented inline within the `content` field of applicable blocks using
            standard HTML change-tracking elements:
            [`<ins>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins) for insertions and
            [`<del>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del) for deletions, grouped inside a
            `<change>` wrapper.


            Affected block types: `text`, `heading`, `section_heading`, `header`, `footer`.


            **Note:** Requires `engine: "parse_performance"` with `engineVersion >= "2.0.0"`.
      title: ParseConfigAdvancedOptions
    ParseConfig:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/ParseConfigTarget'
          default: markdown
          description: >
            The target format for the parsed content.


            Supported values:


            * `markdown`: True markdown with logical reading order (headings, lists, tables, checkboxes). Best default
            for LLMs/RAG and enables section-based chunking.

            * `spatial`: Layout/position-preserving text that uses markdown elements for block types but is not strictly
            markdown due to whitespace/tabs used to maintain placement. Only page-based chunking is supported.


            Guidance:


            * Prefer `markdown` for most documents, multi-column reading order, and retrieval use cases

            * Prefer `spatial` for messy/scanned/handwritten or skewed documents, when you need near 1:1 layout
            fidelity, or for BOL-like logistics docs


            See “Markdown vs Spatial” in the [Parse
            guide](https://docs.extend.ai/2026-02-09/parsing/configuration#target-format) for details.
        chunkingStrategy:
          $ref: '#/components/schemas/ParseConfigChunkingStrategy'
          description: Strategy for dividing the document into chunks.
        engine:
          $ref: '#/components/schemas/ParseConfigEngine'
          default: parse_performance
          description: >
            The parsing engine to use. Supported values:

            * `parse_performance`: Full-featured parsing engine with highest accuracy (default)

            * `parse_light`: Lightweight parsing engine optimized for high-volume, cost-sensitive ingestion. Uses the
            new layout model with full layout support and the markdown target at lower cost and latency, but performs
            worse than `parse_performance` on lower-quality scans, harder handwriting, larger tables, non-Latin-based
            languages, and dense checkbox regions.
        engineVersion:
          type: string
          default: latest
          description: >
            Pin a specific parser engine version for reproducibility. When set to `latest`, the most recent stable
            version of the selected engine is used.
        blockOptions:
          $ref: '#/components/schemas/ParseConfigBlockOptions'
          description: Options for controlling how different block types are processed.
        advancedOptions:
          $ref: '#/components/schemas/ParseConfigAdvancedOptions'
      description: Configuration options for the parsing process. Defaults depend on the selected parser engine and version.
      title: ParseConfig
    RunMetadata:
      type: object
      additionalProperties:
        description: Any type
      description: >
        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.
      title: RunMetadata
    DataRetentionMode:
      type: string
      enum:
        - workspace_default
        - zero
      default: workspace_default
      description: |
        The retention mode for this run:
        * `workspace_default` - Use the workspace's configured retention policy.
        * `zero` - Do not retain supported run data after processing.
      title: DataRetentionMode
    DataRetention:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/DataRetentionMode'
          default: workspace_default
          description: |
            The retention mode for this run:
            * `workspace_default` - Use the workspace's configured retention policy.
            * `zero` - Do not retain supported run data after processing.
      description: >
        Controls data retention for this run. When omitted or set to `workspace_default`, Extend uses your workspace's
        configured retention policy. Set `mode` to `zero` to request zero data retention for the run, which deletes
        supported run data after processing instead of retaining it under the workspace policy.


        Zero data retention is only available for eligible organizations and plans. If your organization is not
        eligible, the request will fail with a 400 error.
      title: DataRetention
    ParseRunObject:
      type: string
      enum:
        - parse_run
      description: The type of object. Will always be `"parse_run"`.
      title: ParseRunObject
    ParseRunStatusEnum:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
      description: >
        The status of the parse run:

        * `"PENDING"` - The run has been created and is waiting to be processed. Only applies to runs created via `POST
        /parse_runs/batch`.

        * `"PROCESSING"` - The file is still being processed

        * `"PROCESSED"` - The file was successfully processed

        * `"FAILED"` - The processing failed (see `failureReason` for details)
      title: ParseRunStatusEnum
    ChunkObject:
      type: string
      enum:
        - chunk
      description: |
        The type of object. In this case, it will always be `"chunk"`.
      title: ChunkObject
    ChunkType:
      type: string
      enum:
        - page
        - document
        - section
      description: The type of chunk.
      title: ChunkType
    ChunkMetadataPageRange:
      type: object
      properties:
        start:
          type: integer
          description: The starting page number (inclusive).
        end:
          type: integer
          description: The ending page number (inclusive).
      required:
        - start
        - end
      description: >
        The page range this chunk covers. Often will just be a partial page, in which cases `start` and `end` will be
        the same.
      title: ChunkMetadataPageRange
    ChunkMetadata:
      type: object
      properties:
        pageRange:
          $ref: '#/components/schemas/ChunkMetadataPageRange'
          description: >
            The page range this chunk covers. Often will just be a partial page, in which cases `start` and `end` will
            be the same.
        minOcrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Lowest per-word OCR confidence across words in this chunk, or `null` when word-level confidence is
            unavailable.
        avgOcrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Average per-word OCR confidence across words in this chunk, or `null` when word-level confidence is
            unavailable.
      required:
        - pageRange
      description: Metadata about the chunk.
      title: ChunkMetadata
    BlockObject:
      type: string
      enum:
        - block
      description: |
        The type of object. In this case, it will always be `"block"`.
      title: BlockObject
    BlockType:
      type: string
      enum:
        - text
        - heading
        - section_heading
        - table
        - figure
        - table_head
        - table_cell
        - key_value
        - page_number
        - barcode
        - formula
        - header
        - footer
      description: |
        The type of block:
        * `"text"` - Regular text content
        * `"heading"` - Section or document headings 
        * `"section_heading"` - Subsection headings
        * `"table"` - Tabular data with rows and columns
        * `"figure"` - Images, charts, diagrams, or logos
        * `"table_head"` - Table header cells
        * `"table_cell"` - Table body cells
        * `"key_value"` - Key-value pairs (e.g., form regions, key-val groups, etc)
        * `"page_number"` - Page number indicators
        * `"barcode"` - Barcodes and QR codes
        * `"formula"` - Mathematical formulas and equations
        * `"header"` - Page headers
        * `"footer"` - Page footers
      title: BlockType
    TextDetailsType:
      type: string
      enum:
        - text_details
      description: Indicates this is a text details object
      title: TextDetailsType
    TextDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TextDetailsType'
          description: Indicates this is a text details object
        cellReference:
          type: string
          description: >-
            Source spreadsheet cell or range in A1 notation for Excel-derived text or heading blocks. Only set when
            `advancedOptions.excelIncludeCellMetadata` is enabled.
      required:
        - type
      description: Details for text and heading blocks
      title: TextDetails
    TableDetailsType:
      type: string
      enum:
        - table_details
      description: Indicates this is a table details object
      title: TableDetailsType
    TableDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TableDetailsType'
          description: Indicates this is a table details object
        rowCount:
          type: integer
          description: The number of rows in the table
        columnCount:
          type: integer
          description: The number of columns in the table
      required:
        - type
        - rowCount
        - columnCount
      description: Details for table blocks
      title: TableDetails
    TableCellDetailsType:
      type: string
      enum:
        - table_cell_details
      description: Indicates this is a table cell details object
      title: TableCellDetailsType
    CellFormatting:
      type: object
      properties:
        bold:
          type: boolean
          description: Whether the cell text is bold.
        italic:
          type: boolean
          description: Whether the cell text is italic.
        fontColor:
          type: string
          description: Cell font color as a hex string.
        backgroundColor:
          type: string
          description: Cell background color as a hex string.
      description: Structured formatting for an Excel table cell
      title: CellFormatting
    TableCellDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TableCellDetailsType'
          description: Indicates this is a table cell details object
        rowIndex:
          type: integer
        columnIndex:
          type: integer
        cellReference:
          type: string
          description: >-
            Source spreadsheet cell or range in A1 notation, such as `B2` or `A1:C1` for a merged cell. Only set for
            Excel table cells when `advancedOptions.excelIncludeCellMetadata` is enabled.
        formula:
          type: string
          description: >-
            Source spreadsheet formula text with a leading `=`, when the cell has a formula. Only set for Excel table
            cells when `advancedOptions.excelIncludeCellMetadata` is enabled.
        formatting:
          $ref: '#/components/schemas/CellFormatting'
          description: >-
            Structured spreadsheet cell formatting. Only set when `advancedOptions.excelIncludeCellFormatting` is
            enabled and formatting is present.
      required:
        - type
        - rowIndex
        - columnIndex
      description: Details for table cell blocks
      title: TableCellDetails
    FigureDetailsType:
      type: string
      enum:
        - figure_details
      description: Indicates this is a figure details object
      title: FigureDetailsType
    FigureDetailsFigureType:
      type: string
      enum:
        - other
        - chart
        - image
        - diagram
        - logo
      description: |
        The refined type of figure - only set when figure classification and summarization is enabled. Possible values:

        * `image`: A photographic image
        * `chart`: A data chart or graph
        * `diagram`: A schematic or diagram
        * `logo`: A company or brand logo
        * `other`: Any other type of figure
      title: FigureDetailsFigureType
    FigureDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FigureDetailsType'
          description: Indicates this is a figure details object
        imageUrl:
          type: string
          description: >-
            URL to the clipped/segmented figure image. Only set if the option `figureImageClippingEnabled` in the input
            is `true`, which it is by default.
        figureType:
          $ref: '#/components/schemas/FigureDetailsFigureType'
          description: >
            The refined type of figure - only set when figure classification and summarization is enabled. Possible
            values:


            * `image`: A photographic image

            * `chart`: A data chart or graph

            * `diagram`: A schematic or diagram

            * `logo`: A company or brand logo

            * `other`: Any other type of figure
      required:
        - type
      description: Details for figure blocks
      title: FigureDetails
    BarcodeDetailsType:
      type: string
      enum:
        - barcode_details
      description: Indicates this is a barcode details object
      title: BarcodeDetailsType
    BarcodeDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BarcodeDetailsType'
          description: Indicates this is a barcode details object
        imageUrl:
          type: string
          description: >-
            URL to the clipped/segmented barcode image. Only set if the option `imageClippingEnabled` in
            blockOptions.barcodes is `true`.
        decodedValue:
          type: string
          description: >-
            The decoded value of the barcode or QR code. Only set if the option `readingEnabled` in
            blockOptions.barcodes is `true`.
        format:
          type: string
          description: The format of the barcode (e.g., "QRCode", "Code128", "DataMatrix", "EAN13").
      required:
        - type
      description: Details for barcode blocks
      title: BarcodeDetails
    FormulaDetailsType:
      type: string
      enum:
        - formula_details
      description: Indicates this is a formula details object
      title: FormulaDetailsType
    FormulaDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FormulaDetailsType'
          description: Indicates this is a formula details object
        latex:
          type: string
          description: The LaTeX representation of the detected formula.
      required:
        - type
      description: Details for formula blocks
      title: FormulaDetails
    KeyValueDetailsType:
      type: string
      enum:
        - key_value_details
      description: Indicates this is a key-value details object
      title: KeyValueDetailsType
    KeyValueDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/KeyValueDetailsType'
          description: Indicates this is a key-value details object
      required:
        - type
      description: Details for key-value pair blocks
      title: KeyValueDetails
    EmptyBlockDetails:
      type: object
      properties: {}
      description: An empty object
      title: EmptyBlockDetails
    BlockDetails:
      oneOf:
        - $ref: '#/components/schemas/TextDetails'
        - $ref: '#/components/schemas/TableDetails'
        - $ref: '#/components/schemas/TableCellDetails'
        - $ref: '#/components/schemas/FigureDetails'
        - $ref: '#/components/schemas/BarcodeDetails'
        - $ref: '#/components/schemas/FormulaDetails'
        - $ref: '#/components/schemas/KeyValueDetails'
        - $ref: '#/components/schemas/EmptyBlockDetails'
      description: |
        Additional details specific to the block type. The schema depends on the block type.
      title: BlockDetails
    BlockMetadataPage:
      type: object
      properties:
        number:
          type: integer
          description: The page number where this block appears.
        width:
          type: number
          format: double
          description: The width of the page in points.
        height:
          type: number
          format: double
          description: The height of the page in points.
      required:
        - number
      description: Information about the page this block appears on.
      title: BlockMetadataPage
    BlockMetadataSheet:
      type: object
      properties:
        index:
          type: integer
          description: The zero-based index of the sheet in the original workbook.
        name:
          type: string
          description: The name of the sheet in the original workbook.
      required:
        - index
        - name
      description: Spreadsheet sheet metadata. Present for blocks parsed from spreadsheet files, such as Excel workbooks.
      title: BlockMetadataSheet
    BlockMetadata:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/BlockMetadataPage'
          description: Information about the page this block appears on.
        sheet:
          $ref: '#/components/schemas/BlockMetadataSheet'
          description: Spreadsheet sheet metadata. Present for blocks parsed from spreadsheet files, such as Excel workbooks.
        minOcrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Lowest per-word OCR confidence across words in this block, or `null` when word-level confidence is
            unavailable.
        avgOcrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Average per-word OCR confidence across words in this block, or `null` when word-level confidence is
            unavailable.
      description: Metadata about the block.
      title: BlockMetadata
    BlockPolygonItems:
      type: object
      properties:
        x:
          type: number
          format: double
        'y':
          type: number
          format: double
      required:
        - x
        - 'y'
      title: BlockPolygonItems
    BoundingBox:
      type: object
      properties:
        left:
          type:
            - number
            - 'null'
          format: double
          description: The left coordinate of the bounding box.
        top:
          type:
            - number
            - 'null'
          format: double
          description: The top coordinate of the bounding box.
        right:
          type:
            - number
            - 'null'
          format: double
          description: The right coordinate of the bounding box.
        bottom:
          type:
            - number
            - 'null'
          format: double
          description: The bottom coordinate of the bounding box.
      required:
        - left
        - top
        - right
        - bottom
      description: A bounding box defined by its edges.
      title: BoundingBox
    Block:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/BlockObject'
          description: |
            The type of object. In this case, it will always be `"block"`.
        id:
          type: string
          description: A unique identifier for the block, deterministically generated as a hash of the block content.
        parentBlockId:
          type: string
          description: >-
            The ID of the parent block. For example, for a table cell block, this would be the ID of the parent table
            block. Only set if this is a child block.
        type:
          $ref: '#/components/schemas/BlockType'
          description: |
            The type of block:
            * `"text"` - Regular text content
            * `"heading"` - Section or document headings 
            * `"section_heading"` - Subsection headings
            * `"table"` - Tabular data with rows and columns
            * `"figure"` - Images, charts, diagrams, or logos
            * `"table_head"` - Table header cells
            * `"table_cell"` - Table body cells
            * `"key_value"` - Key-value pairs (e.g., form regions, key-val groups, etc)
            * `"page_number"` - Page number indicators
            * `"barcode"` - Barcodes and QR codes
            * `"formula"` - Mathematical formulas and equations
            * `"header"` - Page headers
            * `"footer"` - Page footers
        content:
          type: string
          description: The textual content of the block formatted based on the target format.
        details:
          $ref: '#/components/schemas/BlockDetails'
          description: |
            Additional details specific to the block type. The schema depends on the block type.
        metadata:
          $ref: '#/components/schemas/BlockMetadata'
          description: Metadata about the block.
        polygon:
          type: array
          items:
            $ref: '#/components/schemas/BlockPolygonItems'
          description: An array of points defining the polygon that bounds the block.
        boundingBox:
          $ref: '#/components/schemas/BoundingBox'
          description: A simplified bounding box for the block.
        children:
          type: array
          items:
            $ref: '#/components/schemas/Block'
          description: >-
            An array of child blocks. For example, a table block may contain table cell blocks as children when
            `cellBlocksEnabled` is set to true.
      required:
        - object
        - id
        - type
        - content
        - details
        - metadata
        - polygon
        - boundingBox
      title: Block
    Chunk:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ChunkObject'
          description: |
            The type of object. In this case, it will always be `"chunk"`.
        type:
          $ref: '#/components/schemas/ChunkType'
          description: The type of chunk.
        content:
          type: string
          description: The parsed content of the chunk.
        metadata:
          $ref: '#/components/schemas/ChunkMetadata'
          description: Metadata about the chunk.
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/Block'
          description: >
            An array of block objects that make up the chunk. A Block represents a distinct content element within a
            document, such as a paragraph of text, a heading, a table, or a figure. Blocks are the fundamental units
            that make up chunks in parsed documents.
      required:
        - object
        - type
        - content
        - metadata
        - blocks
      title: Chunk
    ParseRunOutputOcrWordsItems:
      type: object
      properties:
        content:
          type: string
          description: The text content of the word.
        boundingBox:
          $ref: '#/components/schemas/BoundingBox'
          description: The bounding box coordinates of the word.
        confidence:
          type: number
          format: double
          description: The confidence score of the OCR detection for this word, between 0 and 1.
        pageNumber:
          type: number
          format: double
          description: The page number where the word was detected.
      required:
        - content
        - boundingBox
        - confidence
        - pageNumber
      title: ParseRunOutputOcrWordsItems
    ParseRunOutputOcr:
      type: object
      properties:
        words:
          type: array
          items:
            $ref: '#/components/schemas/ParseRunOutputOcrWordsItems'
          description: An array of individual words detected by OCR.
      description: >-
        Raw OCR data from the parsing process. Only included when `returnOcr` is configured in the parse config's
        advanced options.
      title: ParseRunOutputOcr
    ParseRunOutput:
      type: object
      properties:
        chunks:
          type: array
          items:
            $ref: '#/components/schemas/Chunk'
          description: An array of chunks that were parsed from the file.
        ocr:
          $ref: '#/components/schemas/ParseRunOutputOcr'
          description: >-
            Raw OCR data from the parsing process. Only included when `returnOcr` is configured in the parse config's
            advanced options.
      required:
        - chunks
      description: >
        The parse run output.


        **Availability:** Present when `status` is `"PROCESSED"` and the request was made without the `responseType=url`
        query parameter. Contains the parsed chunks.
      title: ParseRunOutput
    ParseRunMetrics:
      type: object
      properties:
        processingTimeMs:
          type: number
          format: double
          description: The time taken to process the document in milliseconds.
        pageCount:
          type: number
          format: double
          description: >-
            The number of pages from the document that were parsed. For PDF and image files, this is the actual page
            count. For spreadsheet files (Excel, CSV), this is an estimated page count based on content volume (~1000
            tokens per page).
      required:
        - processingTimeMs
        - pageCount
      description: |
        Metrics about the parsing process.

        **Availability:** Present when `status` is `"PROCESSED"`.
      title: ParseRunMetrics
    RunUsageBreakdownEntryObject:
      type: string
      enum:
        - extract_run
        - classify_run
        - split_run
        - parse_run
        - edit_run
        - form_detection_run
      description: >
        The public object type of the contributing resource. Mirrors the top-level `object` field on the corresponding
        endpoint so callers can fetch the underlying resource by id if they want more detail.
      title: RunUsageBreakdownEntryObject
    RunUsageBreakdownCharge:
      type: object
      properties:
        product:
          type: string
          description: |
            Identifier for the billable cost driver.
        unit:
          type: string
          description: The unit `quantity` is measured in.
        quantity:
          type: number
          format: double
          description: How many units this charge was billed for.
        credits:
          type: number
          format: double
          description: Credits consumed by this charge.
        pages:
          type: array
          items:
            type: integer
          description: >
            1-indexed page numbers that incurred this charge. Present on usage-based add-ons that are only billed for
            the pages where they actually applied (e.g. `agentic_text_correction`, `agentic_table_correction`).
      required:
        - product
        - unit
        - quantity
        - credits
      description: |
        A single cost driver within a breakdown entry's credit total. The per-unit rate is `credits / quantity`.
      title: RunUsageBreakdownCharge
    RunUsageBreakdownEntry:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/RunUsageBreakdownEntryObject'
          description: >
            The public object type of the contributing resource. Mirrors the top-level `object` field on the
            corresponding endpoint so callers can fetch the underlying resource by id if they want more detail.
        id:
          type: string
          description: The id of the contributing resource (e.g. `pr_3UZSj69pYZDKHFuuX57ic`).
        credits:
          type: number
          format: double
          description: Credits charged to the contributing resource.
        charges:
          type: array
          items:
            $ref: '#/components/schemas/RunUsageBreakdownCharge'
          description: >
            Itemized cost drivers that make up this entry's `credits`. When present, `sum(charges[].credits) ===
            credits`.


            **Availability:** Present on runs persisted on or after June 10, 2026. Runs persisted before that date will
            omit this field.
      required:
        - object
        - id
        - credits
      description: >
        One line item in a run's `usage.breakdown`. Each entry corresponds to a concrete chargeable resource that
        contributed credits to the parent operation. When `charges` is present, it itemizes the cost drivers behind this
        entry's `credits`.
      title: RunUsageBreakdownEntry
    RunUsage:
      type: object
      properties:
        credits:
          type: number
          format: double
          description: >
            The credits consumed by this run. For most run types this is the line item for the run's own work; for
            `workflow_run` this is the aggregate across all child runs.
        totalCredits:
          type: number
          format: double
          description: >
            The total credits accounted for under this run, including any other runs it was responsible for creating.
            For example, an extract run on a fresh upload triggers a parse run, so `totalCredits` includes both line
            items. For runs that didn't trigger any other work — like `parse_run`, `edit_run` and `workflow_run` —
            `totalCredits` equals `credits`.


            **Availability:** Present on runs persisted on or after May 14, 2026. Runs persisted before that date will
            omit this field.
        breakdown:
          type: array
          items:
            $ref: '#/components/schemas/RunUsageBreakdownEntry'
          description: >
            The chargeable resources that make up `totalCredits`, including this run itself when it has its own line
            item. For `workflow_run`, lists every contributing child run sorted by creation time (the workflow itself
            isn't chargeable and has no line item).


            **Availability:** Present on runs persisted on or after May 14, 2026. Runs persisted before that date will
            omit this field.
      required:
        - credits
      description: |
        Usage credits consumed by a run.

        **Availability:** This field will not be returned for:
        * Runs created before October 7, 2025
        * Customers on legacy billing systems

        For more details on how credits work, see our [Credits Guide](https://docs.extend.ai/general/how-credits-work).
      title: RunUsage
    ParseRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseRunObject'
          description: The type of object. Will always be `"parse_run"`.
        id:
          type: string
          description: |
            A unique identifier for the parse run.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
        batchId:
          type:
            - string
            - 'null'
          description: |
            The ID of the batch this run belongs to, if created via `POST /parse_runs/batch`.

            **Availability:** Present when the run was submitted as part of a batch.

            Example: `"bpar_Xj8mK2pL9nR4vT7qY5wZ"`
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >-
            The file that was parsed. This file can be used as a parameter for other Extend endpoints, such as `POST
            /workflow_runs`. May be `null` for batch parse runs where file ingestion failed.
        status:
          $ref: '#/components/schemas/ParseRunStatusEnum'
          description: >
            The status of the parse run:

            * `"PENDING"` - The run has been created and is waiting to be processed. Only applies to runs created via
            `POST /parse_runs/batch`.

            * `"PROCESSING"` - The file is still being processed

            * `"PROCESSED"` - The file was successfully processed

            * `"FAILED"` - The processing failed (see `failureReason` for details)
        failureReason:
          type:
            - string
            - 'null'
          description: >
            The reason for failure.


            **Availability:** Present when `status` is `"FAILED"`.


            Possible values include:

            * `UNABLE_TO_DOWNLOAD_FILE` - The file could not be downloaded from the provided URL

            * `FILE_TYPE_NOT_SUPPORTED` - The file type is not supported for parsing

            * `FILE_SIZE_TOO_LARGE` - The file exceeds the maximum allowed size

            * `CORRUPT_FILE` - The file appears to be corrupted or malformed

            * `OCR_ERROR` - An error occurred during optical character recognition

            * `PASSWORD_PROTECTED_FILE` - The file is password protected and cannot be processed

            * `FAILED_TO_CONVERT_TO_PDF` - The file could not be converted to PDF for processing

            * `FAILED_TO_CONVERT_TO_JPEG` - The file could not be converted to JPEG for processing

            * `FAILED_TO_GENERATE_TARGET_FORMAT` - The output could not be generated in the requested format

            * `CHUNKING_ERROR` - An error occurred while chunking the document

            * `INTERNAL_ERROR` - An unexpected internal error occurred

            * `INVALID_CONFIG_OPTIONS` - The provided configuration options are invalid

            * `OUT_OF_CREDITS` - Insufficient credits to process the file


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A human-readable description of the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the parse run.

            **Availability:** Present when metadata was provided during creation.
        output:
          oneOf:
            - $ref: '#/components/schemas/ParseRunOutput'
            - type: 'null'
          description: >
            The parse run output.


            **Availability:** Present when `status` is `"PROCESSED"` and the request was made without the
            `responseType=url` query parameter. Contains the parsed chunks.
        outputUrl:
          type:
            - string
            - 'null'
          description: >
            A presigned URL to download the parse run output as a JSON file. The object shape is the same as the
            `output` field. Expires after 15 minutes.


            **Availability:** Present when `status` is `"PROCESSED"` and the request was made with `responseType=url`
            query parameter.
        metrics:
          oneOf:
            - $ref: '#/components/schemas/ParseRunMetrics'
            - type: 'null'
          description: |
            Metrics about the parsing process.

            **Availability:** Present when `status` is `"PROCESSED"`.
        config:
          $ref: '#/components/schemas/ParseConfig'
          description: The configuration used for the parsing process, including any default values that were applied.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this parse run.


            **Availability:** Present when `status` is `"PROCESSED"`, the run was created after October 7, 2025, and the
            customer is on the current billing system.
      required:
        - object
        - id
        - file
        - status
        - failureReason
        - failureMessage
        - metadata
        - output
        - outputUrl
        - metrics
        - config
        - usage
      description: Parse run object.
      title: ParseRun
    ParseRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be parsed. Files can be provided as a URL or an Extend file ID.
      title: ParseRunsPostRequestBodyContentApplicationJsonSchemaFile
    ParseRunsIdGetParametersResponseType:
      type: string
      enum:
        - json
        - url
      title: ParseRunsIdGetParametersResponseType
    parseRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted parse run.
      required:
        - id
      title: parseRuns_delete_Response_200
    ParseRunsGetParametersStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
      title: ParseRunsGetParametersStatus
    ParseRunSource:
      type: string
      enum:
        - API
        - STUDIO
        - WORKFLOW_RUN
        - ADMIN
        - BATCH_PARSER_RUN
        - EDIT_RUN
        - DOCUMENT_PROCESSOR_RUN
      description: |
        The source that created the parse run:
        * `"API"` - Created via API
        * `"STUDIO"` - Created from Studio
        * `"WORKFLOW_RUN"` - Created from a workflow run
        * `"ADMIN"` - Created by admin
        * `"BATCH_PARSER_RUN"` - Created from a batch parse run (via `POST /parse_runs/batch`)
        * `"EDIT_RUN"` - Created from an edit run
        * `"DOCUMENT_PROCESSOR_RUN"` - Created from a document processor run
      title: ParseRunSource
    RunSourceId:
      type: string
      description: |
        The source ID corresponds to the entity that created the run.

        Example: `"workflow_run_123"`
      title: RunSourceId
    ParseRunsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ParseRunsGetResponsesContentApplicationJsonSchemaObject
    ParseRunSummaryObject:
      type: string
      enum:
        - parse_run
      description: The type of object. Will always be `"parse_run"`.
      title: ParseRunSummaryObject
    ParseRunSummaryStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
      description: >
        The status of the parse run:

        * `"PENDING"` - The run has been created and is waiting to be processed. Only applies to runs created via `POST
        /parse_runs/batch`.

        * `"PROCESSING"` - The file is still being processed

        * `"PROCESSED"` - The file was successfully processed

        * `"FAILED"` - The processing failed (see `failureReason` for details)
      title: ParseRunSummaryStatus
    ParseRunSummaryMetrics:
      type: object
      properties:
        processingTimeMs:
          type: number
          format: double
          description: The time taken to process the document in milliseconds.
        pageCount:
          type: number
          format: double
          description: >-
            The number of pages from the document that were parsed. For PDF and image files, this is the actual page
            count. For spreadsheet files (Excel, CSV), this is an estimated page count based on content volume (~1000
            tokens per page).
      required:
        - processingTimeMs
        - pageCount
      description: |
        Metrics about the parsing process.

        **Availability:** Present when `status` is `"PROCESSED"`.
      title: ParseRunSummaryMetrics
    RunUsageSummary:
      type: object
      properties:
        credits:
          type: number
          format: double
          description: >
            The credits consumed by this run. For most run types this is the line item for the run's own work; for
            `workflow_run` this is the aggregate across all child runs.
        totalCredits:
          type: number
          format: double
          description: >
            The total credits accounted for under this run, including any other runs it was responsible for creating.
            For example, an extract run on a fresh upload triggers a parse run, so `totalCredits` includes both line
            items. For runs that didn't trigger any other work — like `parse_run`, `edit_run`, and `workflow_run` —
            `totalCredits` equals `credits`.


            **Availability:** Present on runs persisted on or after May 14, 2026. Runs persisted before that date will
            omit this field.
      required:
        - credits
      description: |
        Usage credits consumed by a run. Omits `breakdown` - fetch the full resource by id when you need the breakdown.

        **Availability:** This field will not be returned for:
        * Runs created before October 7, 2025
        * Customers on legacy billing systems

        For more details on how credits work, see our [Credits Guide](https://docs.extend.ai/general/how-credits-work).
      title: RunUsageSummary
    ParseRunSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseRunSummaryObject'
          description: The type of object. Will always be `"parse_run"`.
        id:
          type: string
          description: |
            A unique identifier for the parse run.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
        batchId:
          type:
            - string
            - 'null'
          description: |
            The ID of the batch this run belongs to, if created via `POST /parse_runs/batch`.

            **Availability:** Present when the run was submitted as part of a batch.

            Example: `"bpar_Xj8mK2pL9nR4vT7qY5wZ"`
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >-
            The file that was parsed. This file can be used as a parameter for other Extend endpoints, such as `POST
            /workflow_runs`. May be `null` for batch parse runs where file ingestion failed.
        status:
          $ref: '#/components/schemas/ParseRunSummaryStatus'
          description: >
            The status of the parse run:

            * `"PENDING"` - The run has been created and is waiting to be processed. Only applies to runs created via
            `POST /parse_runs/batch`.

            * `"PROCESSING"` - The file is still being processed

            * `"PROCESSED"` - The file was successfully processed

            * `"FAILED"` - The processing failed (see `failureReason` for details)
        failureReason:
          type:
            - string
            - 'null'
          description: >
            The reason for failure.


            **Availability:** Present when `status` is `"FAILED"`.


            Possible values include:

            * `UNABLE_TO_DOWNLOAD_FILE` - The file could not be downloaded from the provided URL

            * `FILE_TYPE_NOT_SUPPORTED` - The file type is not supported for parsing

            * `FILE_SIZE_TOO_LARGE` - The file exceeds the maximum allowed size

            * `CORRUPT_FILE` - The file appears to be corrupted or malformed

            * `OCR_ERROR` - An error occurred during optical character recognition

            * `PASSWORD_PROTECTED_FILE` - The file is password protected and cannot be processed

            * `FAILED_TO_CONVERT_TO_PDF` - The file could not be converted to PDF for processing

            * `FAILED_TO_CONVERT_TO_JPEG` - The file could not be converted to JPEG for processing

            * `FAILED_TO_GENERATE_TARGET_FORMAT` - The output could not be generated in the requested format

            * `CHUNKING_ERROR` - An error occurred while chunking the document

            * `INTERNAL_ERROR` - An unexpected internal error occurred

            * `INVALID_CONFIG_OPTIONS` - The provided configuration options are invalid

            * `OUT_OF_CREDITS` - Insufficient credits to process the file


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A human-readable description of the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the parse run.

            **Availability:** Present when metadata was provided during creation.
        metrics:
          oneOf:
            - $ref: '#/components/schemas/ParseRunSummaryMetrics'
            - type: 'null'
          description: |
            Metrics about the parsing process.

            **Availability:** Present when `status` is `"PROCESSED"`.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsageSummary'
            - type: 'null'
          description: >
            Usage credits consumed by this parse run. Omits `breakdown` — fetch the full parse run by id to see the
            per-line items.


            **Availability:** Present when `status` is `"PROCESSED"`, the run was created after October 7, 2025, and the
            customer is on the current billing system.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - batchId
        - file
        - status
        - failureReason
        - failureMessage
        - metadata
        - metrics
        - usage
        - createdAt
        - updatedAt
      description: |
        Summary representation of a parse run.
      title: ParseRunSummary
    parseRuns_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseRunsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ParseRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: parseRuns_list_Response_200
    ProcessorVersionString:
      type: string
      default: latest
      description: >
        An optional version to use. When not supplied, the most recent published version will be used. Special values
        include:

        - `"latest"` for the most recent published version. If there are no published versions, the draft version will
        be used.

        - `"draft"` for the draft version.

        - Specific version numbers corresponding to versions your team has published, e.g. `"1.0"`, `"2.2"`, etc.
      title: ProcessorVersionString
    ExtractBaseProcessor:
      type: string
      enum:
        - extraction_performance
        - extraction_light
      default: extraction_performance
      description: >
        The base processor to use. For extractors, this can be either `"extraction_performance"` or
        `"extraction_light"`. Defaults to `"extraction_performance"` if not provided. See [Extraction
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
        details.
      title: ExtractBaseProcessor
    JsonObject:
      type: object
      additionalProperties:
        description: Any type
      description: A flexible object that can hold any arbitrary JSON key-value structure.
      title: JsonObject
    ExtractAdvancedOptionsCitationMode:
      type: string
      enum:
        - line
        - word
        - block
      default: line
      description: >
        Controls the granularity of citations returned alongside extracted values. Requires `citationsEnabled=true` and
        a base processor version that supports bounding box citations.

        - `line`: Use OCR lines for citations. This can return one or more relevant OCR lines for each citation. This is
        the default mode.

        - `word`: Narrow each matched citation down to the relevant OCR word span when possible. Note: this might still
        return line citations in cases where the citation model is unable to reliably narrow down to a word-level
        citation. Typically, this only makes sense when you are doing array extraction and want precise word citations
        from a given cell in a table to match an array property, e.g. `line_items.total`.

        - `block`: Use parser blocks (e.g. full paragraphs, key-val regions, tables, lists, etc.) and return block-level
        polygons for each citation. Will have highest recall in terms of overlap with the extracted value source, but
        least granularity.
      title: ExtractAdvancedOptionsCitationMode
    ExtractAdvancedOptionsArrayCitationStrategy:
      type: string
      enum:
        - item
        - property
      description: >
        Granularity for array citations. Requires turning on citations: `citationsEnabled=true`.

        - `item`: Creates item-level citations for array fields. This will return a single bbox citation for each "item"
        in the array e.g. line_items[0], line_items[1], etc.

        - `property`: Creates property-level citations (cell-level citations) for array fields. This will return a
        citation for each property/cell for every item/row in the array, e.g. line_items[0].description,
        line_items[1].price, etc.
      title: ExtractAdvancedOptionsArrayCitationStrategy
    ArrayStrategyType:
      type: string
      enum:
        - large_array_heuristics
        - large_array_max_context
        - large_array_overlap_context
      description: >
        The strategy type for handling large array use cases. For most use cases this should be left null, or should be
        set to `large_array_heuristics`. If you're unsure of what your use case needs, reach out to the Extend team for
        help.

        - `large_array_heuristics`: Optimized for documents with very large arrays, but where latency matters. 

          This strategy uses specialized heuristics around chunking, tables, and merging to handle large arrays efficiently over large documents.

        - `large_array_max_context`: Optimizes for accuracy over latency in documents with very large arrays. 

          This strategy will do multiple passes through the entire document to ensure there is no context loss across any chunks/pages, maximizing accuracy for complex array extraction, but adding material latency. This strategy incurs additional extraction credits when enabled.

        - `large_array_overlap_context`: Balances accuracy and latency in documents with very large arrays. 

          This strategy will always maintain surrounding/overlapping page context for every chunk/page that is extracted, eliminating array failure modes from context loss across page boundaries.
      title: ArrayStrategyType
    ArrayStrategy:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ArrayStrategyType'
          description: >
            The strategy type for handling large array use cases. For most use cases this should be left null, or should
            be set to `large_array_heuristics`. If you're unsure of what your use case needs, reach out to the Extend
            team for help.

            - `large_array_heuristics`: Optimized for documents with very large arrays, but where latency matters. 

              This strategy uses specialized heuristics around chunking, tables, and merging to handle large arrays efficiently over large documents.

            - `large_array_max_context`: Optimizes for accuracy over latency in documents with very large arrays. 

              This strategy will do multiple passes through the entire document to ensure there is no context loss across any chunks/pages, maximizing accuracy for complex array extraction, but adding material latency. This strategy incurs additional extraction credits when enabled.

            - `large_array_overlap_context`: Balances accuracy and latency in documents with very large arrays. 

              This strategy will always maintain surrounding/overlapping page context for every chunk/page that is extracted, eliminating array failure modes from context loss across page boundaries.
      required:
        - type
      title: ArrayStrategy
    ExtractChunkingOptionsChunkingStrategy:
      type: string
      enum:
        - standard
        - semantic
        - contextual
      description: The strategy to use for chunking the document.
      title: ExtractChunkingOptionsChunkingStrategy
    ExtractChunkingOptionsChunkSelectionStrategy:
      type: string
      enum:
        - intelligent
        - confidence
        - take_first
        - take_last
      description: The strategy to use for selecting chunks.
      title: ExtractChunkingOptionsChunkSelectionStrategy
    ExtractChunkingOptions:
      type: object
      properties:
        chunkingStrategy:
          $ref: '#/components/schemas/ExtractChunkingOptionsChunkingStrategy'
          description: The strategy to use for chunking the document.
        pageChunkSize:
          type: integer
          description: The size of page chunks.
        chunkSelectionStrategy:
          $ref: '#/components/schemas/ExtractChunkingOptionsChunkSelectionStrategy'
          description: The strategy to use for selecting chunks.
        customSemanticChunkingRules:
          type: string
          description: Custom rules for semantic chunking.
      title: ExtractChunkingOptions
    ExcelSheetRange:
      type: object
      properties:
        start:
          type: integer
          description: The starting sheet index (0-based).
        end:
          type: integer
          description: The ending sheet index (0-based). Must be greater than or equal to start.
      required:
        - start
        - end
      title: ExcelSheetRange
    ExtractAdvancedOptionsExcelSheetSelectionStrategy:
      type: string
      enum:
        - intelligent
        - all
        - first
        - last
      description: Strategy for selecting sheets from Excel documents.
      title: ExtractAdvancedOptionsExcelSheetSelectionStrategy
    ExtractAdvancedOptionsReviewAgent:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether to enable the review agent.
      description: |
        Configuration for the review agent that analyzes extraction results.
        When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5)
        and may include additional `insights` of type `issue` or `review_summary` to help identify
        fields that may need manual review.

        Enabling the review agent incurs additional credits.

        To learn more, view the [Review Agent Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
      title: ExtractAdvancedOptionsReviewAgent
    ExtractAdvancedOptions:
      type: object
      properties:
        modelReasoningInsightsEnabled:
          type: boolean
          description: Whether to enable model reasoning insights.
        advancedMultimodalEnabled:
          type: boolean
          description: Whether to enable advanced multimodal features.
        citationsEnabled:
          type: boolean
          description: Whether to enable citations in the output.
        citationMode:
          $ref: '#/components/schemas/ExtractAdvancedOptionsCitationMode'
          default: line
          description: >
            Controls the granularity of citations returned alongside extracted values. Requires `citationsEnabled=true`
            and a base processor version that supports bounding box citations.

            - `line`: Use OCR lines for citations. This can return one or more relevant OCR lines for each citation.
            This is the default mode.

            - `word`: Narrow each matched citation down to the relevant OCR word span when possible. Note: this might
            still return line citations in cases where the citation model is unable to reliably narrow down to a
            word-level citation. Typically, this only makes sense when you are doing array extraction and want precise
            word citations from a given cell in a table to match an array property, e.g. `line_items.total`.

            - `block`: Use parser blocks (e.g. full paragraphs, key-val regions, tables, lists, etc.) and return
            block-level polygons for each citation. Will have highest recall in terms of overlap with the extracted
            value source, but least granularity.
        arrayCitationStrategy:
          $ref: '#/components/schemas/ExtractAdvancedOptionsArrayCitationStrategy'
          description: >
            Granularity for array citations. Requires turning on citations: `citationsEnabled=true`.

            - `item`: Creates item-level citations for array fields. This will return a single bbox citation for each
            "item" in the array e.g. line_items[0], line_items[1], etc.

            - `property`: Creates property-level citations (cell-level citations) for array fields. This will return a
            citation for each property/cell for every item/row in the array, e.g. line_items[0].description,
            line_items[1].price, etc.
        arrayStrategy:
          $ref: '#/components/schemas/ArrayStrategy'
          description: Strategy for handling large arrays in documents.
        chunkingOptions:
          $ref: '#/components/schemas/ExtractChunkingOptions'
        excelSheetRanges:
          type: array
          items:
            $ref: '#/components/schemas/ExcelSheetRange'
          description: Ranges of sheet indices to extract from Excel documents.
        excelSheetSelectionStrategy:
          $ref: '#/components/schemas/ExtractAdvancedOptionsExcelSheetSelectionStrategy'
          description: Strategy for selecting sheets from Excel documents.
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
        reviewAgent:
          $ref: '#/components/schemas/ExtractAdvancedOptionsReviewAgent'
          description: >
            Configuration for the review agent that analyzes extraction results.

            When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5)

            and may include additional `insights` of type `issue` or `review_summary` to help identify

            fields that may need manual review.


            Enabling the review agent incurs additional credits.


            To learn more, view the [Review Agent
            Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
        currentDateEnabled:
          type: boolean
          description: Whether to include the current date as context for the model during extraction. Defaults to `false`.
      title: ExtractAdvancedOptions
    ExtractOverrideConfigJson:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ExtractBaseProcessor'
          default: extraction_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"extraction_performance"` or `"extraction_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        extractionRules:
          type: string
          description: Custom rules to guide the extraction process in natural language.
        schema:
          $ref: '#/components/schemas/JsonObject'
          description: >
            JSON Schema definition of the data to extract.


            See the [JSON Schema guide](https://docs.extend.ai/2026-02-09/extraction/schema) for details and examples of
            schema configuration.
        advancedOptions:
          $ref: '#/components/schemas/ExtractAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      description: >
        Partial configuration override for an existing extractor. All fields are optional — only the fields you provide
        will override the extractor's saved configuration.

        For example, you can pass only `advancedOptions` or `extractionRules` without providing a `schema`.
      title: ExtractOverrideConfigJson
    ExtractPostRequestBodyContentApplicationJsonSchemaExtractor:
      type: object
      properties:
        id:
          type: string
          description: The ID of the extractor to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ExtractOverrideConfigJson'
          description: >
            Optional partial configuration override. Only the fields you provide will override the extractor's saved
            configuration. For example, you can pass only `advancedOptions` or `extractionRules` without providing a
            `schema`.
      required:
        - id
      description: >
        Reference to an existing extractor. Mutually exclusive with `config` — provide one or the other, or omit both to
        have Extend infer a schema from the document.
      title: ExtractPostRequestBodyContentApplicationJsonSchemaExtractor
    ExtractConfigJson:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ExtractBaseProcessor'
          default: extraction_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"extraction_performance"` or `"extraction_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        extractionRules:
          type: string
          description: >
            Custom rules to guide the extraction process in natural language.


            When `schema` is omitted, `extractionRules` also serves as schema generation instructions — for example,
            `"Invoice with vendor name, line items, and total due"`. Providing focused instructions produces a more
            targeted inferred schema.
        schema:
          $ref: '#/components/schemas/JsonObject'
          description: >
            JSON Schema definition of the data to extract. **Optional** — if omitted, Extend automatically infers a
            schema from the document before running extraction. No extractor is required.


            See the [JSON Schema guide](https://docs.extend.ai/2026-02-09/extraction/schema) for details and examples of
            schema configuration.
        advancedOptions:
          $ref: '#/components/schemas/ExtractAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      title: ExtractConfigJson
    FileFromText:
      type: object
      properties:
        text:
          type: string
          description: A string containing raw text data to be processed.
        name:
          type: string
          description: The name of the created text file. If not set, the file name is generated.
      required:
        - text
      description: Raw text data to be processed. This will be used to create a `.txt` file.
      title: FileFromText
    ExtractPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: |
        The file to be extracted from. Mutually exclusive with `package` — provide one or the other.

        Files can be provided as a URL, Extend file ID, or raw text.
      title: ExtractPostRequestBodyContentApplicationJsonSchemaFile
    MultiFileRunPackageFilesItems:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      title: MultiFileRunPackageFilesItems
    MultiFileRunPackage:
      type: object
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/MultiFileRunPackageFilesItems'
          description: The files to extract from. Each entry can be a URL or an existing Extend file ID.
      required:
        - files
      description: >
        An ordered collection of files to extract from together in a single run. Use this instead of `file` when you
        want to run extraction across multiple documents at once.


        Exactly one of `file` or `package` must be provided on a request — they are mutually exclusive.
      title: MultiFileRunPackage
    ExtractRunObject:
      type: string
      enum:
        - extract_run
      description: The type of object. Will always be `"extract_run"`.
      title: ExtractRunObject
    ProcessorRunStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of a processor run (extract, classify, or split):
        * `"PENDING"` - The run has been created and is waiting to be processed
        * `"PROCESSING"` - The run is in progress
        * `"PROCESSED"` - The run completed successfully
        * `"FAILED"` - The run failed
        * `"CANCELLED"` - The run was cancelled
      title: ProcessorRunStatus
    CitationPage:
      type: object
      properties:
        number:
          type: number
          format: double
          description: Page number where the citation was found. Starts at 1.
        width:
          type: number
          format: double
          description: The width of the page in points.
        height:
          type: number
          format: double
          description: The height of the page in points.
      required:
        - number
      title: CitationPage
    Polygon:
      type: object
      properties:
        x:
          type: number
          format: double
          description: X coordinate of the point
        'y':
          type: number
          format: double
          description: Y coordinate of the point
      required:
        - x
        - 'y'
      title: Polygon
    Citation:
      type: object
      properties:
        fileId:
          type: string
          description: >
            ID of the file the cited content was found in. On multifile runs, join this against the run's `files` array
            to determine which input file the citation refers to; on single-file runs it equals the run's `file.id`.
        page:
          $ref: '#/components/schemas/CitationPage'
        referenceText:
          type:
            - string
            - 'null'
          description: The text that was referenced
        polygon:
          type: array
          items:
            $ref: '#/components/schemas/Polygon'
          description: Array of points defining the polygon around the referenced text
      title: Citation
    InsightType:
      type: string
      enum:
        - reasoning
      description: The type of insight. Will always be `"reasoning"` for now.
      title: InsightType
    Insight:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/InsightType'
          description: The type of insight. Will always be `"reasoning"` for now.
        content:
          type: string
          description: The content of the reasoning insight.
      required:
        - type
        - content
      title: Insight
    ExtractOutputMetadata:
      type: object
      properties:
        ocrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: Confidence score from OCR processing, if applicable
        logprobsConfidence:
          type:
            - number
            - 'null'
          format: double
          description: Confidence score based on model logprobs
        reviewAgentScore:
          type:
            - integer
            - 'null'
          description: >
            A 1-5 score indicating the review agent's confidence in the extracted value.

            - 5: High confidence, no issues detected

            - 4: Good confidence, minor observations

            - 3: Moderate confidence, some uncertainty

            - 2: Low confidence, likely issues

            - 1: Very low confidence, significant problems detected


            These scores will be present when the `reviewAgent.enabled` flag is set to `true` in the processor config.

            If the review agent is enabled but a score is not returned for a field, this value will be `null`.

            To learn more, view the [Review Agent
            Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
        citations:
          type: array
          items:
            $ref: '#/components/schemas/Citation'
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
      title: ExtractOutputMetadata
    ExtractOutputJson:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/JsonObject'
          description: The extracted values conforming to the schema defined in the processor config
        metadata:
          $ref: '#/components/schemas/ExtractOutputMetadata'
      required:
        - value
        - metadata
      title: ExtractOutputJson
    ExtractionFieldResultType:
      type: string
      enum:
        - string
        - number
        - currency
        - boolean
        - date
        - enum
        - array
        - object
        - signature
      description: The type of the extracted field
      title: ExtractionFieldResultType
    ExtractionFieldType:
      type: string
      enum:
        - string
        - number
        - currency
        - boolean
        - date
        - array
        - enum
        - object
        - signature
      description: The type of the field.
      title: ExtractionFieldType
    Enum:
      type: object
      properties:
        value:
          type: string
          description: The value of the enum option.
        description:
          type: string
          description: Description of what this enum value represents.
      required:
        - value
        - description
      title: Enum
    ExtractionField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the field.
        name:
          type: string
          description: Human-readable name for the field.
        type:
          $ref: '#/components/schemas/ExtractionFieldType'
          description: The type of the field.
        description:
          type: string
          description: Detailed description of the field, including expected content and format.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionField'
          description: Required when type is "array" or "object". Contains nested field definitions.
        enum:
          type: array
          items:
            $ref: '#/components/schemas/Enum'
          description: Required when type is "enum". List of allowed values.
      required:
        - id
        - name
        - type
        - description
      title: ExtractionField
    ExtractionFieldResultReferenceBoundingBoxesItems:
      type: object
      properties:
        top:
          type: number
          format: double
          description: The top coordinate of the bounding box
        left:
          type: number
          format: double
          description: The left coordinate of the bounding box
        bottom:
          type: number
          format: double
          description: The bottom coordinate of the bounding box
        right:
          type: number
          format: double
          description: The right coordinate of the bounding box
      required:
        - top
        - left
        - bottom
        - right
      title: ExtractionFieldResultReferenceBoundingBoxesItems
    ExtractionFieldResultReference:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this field
        fieldName:
          type: string
          description: The name of the extracted field
        page:
          type: number
          format: double
          description: The page number that this bounding box is from
        boundingBoxes:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionFieldResultReferenceBoundingBoxesItems'
          description: The bounding boxes of the field
      required:
        - id
        - fieldName
        - page
        - boundingBoxes
      title: ExtractionFieldResultReference
    EnumOption:
      type: object
      properties:
        value:
          type: string
          description: The enum value (e.g. "ANNUAL", "MONTHLY", etc.)
        description:
          type: string
          description: The description of the enum value
      required:
        - value
        - description
      title: EnumOption
    ExtractionFieldResult:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this field
        type:
          $ref: '#/components/schemas/ExtractionFieldResultType'
          description: The type of the extracted field
        value:
          description: The extracted value, type depends on the field type.
        confidence:
          type: number
          format: double
          description: A value between 0 and 1 indicating confidence in the extraction
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionField'
          description: The field schema of nested fields
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
          description: Reasoning and other insights from the model
        references:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionFieldResultReference'
          description: References for the extracted field
        enum:
          type: array
          items:
            $ref: '#/components/schemas/EnumOption'
          description: The enum options for enum fields, only set when type=enum
      required:
        - id
        - type
        - value
        - references
      title: ExtractionFieldResult
    ExtractOutputLegacy:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/ExtractionFieldResult'
      description: Legacy field-based extraction output. A mapping of field names to their extracted values.
      title: ExtractOutputLegacy
    ExtractOutput:
      oneOf:
        - $ref: '#/components/schemas/ExtractOutputJson'
        - $ref: '#/components/schemas/ExtractOutputLegacy'
      title: ExtractOutput
    ExtractOutputEdits:
      type: object
      properties:
        originalValue:
          description: The original value before editing.
        editedValue:
          description: The value after editing.
        notes:
          type: string
          description: Any notes added during editing.
        page:
          type: number
          format: double
          description: The page number where the edit was made.
        fieldType:
          type: string
          description: The type of the edited field.
      description: |
        A record of edits made to the processor output.
      title: ExtractOutputEdits
    ExtractConfigLegacyBaseProcessor:
      type: string
      enum:
        - extraction_performance
        - extraction_light
      default: extraction_performance
      description: >
        The base processor to use. For extractors, this can be either `"extraction_performance"` or
        `"extraction_light"`. Defaults to `"extraction_performance"` if not provided. See [Extraction
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
        details.
      title: ExtractConfigLegacyBaseProcessor
    ExtractConfigLegacy:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ExtractConfigLegacyBaseProcessor'
          default: extraction_performance
          description: >
            The base processor to use. For extractors, this can be either `"extraction_performance"` or
            `"extraction_light"`. Defaults to `"extraction_performance"` if not provided. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        baseVersion:
          type: string
          description: >-
            The version of the `"extraction_performance"` or `"extraction_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        extractionRules:
          type: string
          description: Custom rules to guide the extraction process in natural language.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionField'
          description: |
            Array of fields to extract from the document. This is the legacy format.

            We recommend using JSON Schema (`schema` property) for new implementations.
        advancedOptions:
          $ref: '#/components/schemas/ExtractAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - fields
      title: ExtractConfigLegacy
    ExtractConfig:
      oneOf:
        - $ref: '#/components/schemas/ExtractConfigJson'
        - $ref: '#/components/schemas/ExtractConfigLegacy'
      title: ExtractConfig
    ExtractorSummaryObject:
      type: string
      enum:
        - extractor
      description: The type of object. Will always be `"extractor"`.
      title: ExtractorSummaryObject
    ExtractorSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorSummaryObject'
          description: The type of object. Will always be `"extractor"`.
        id:
          type: string
          description: |
            The ID of the extractor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the extractor.

            Example: `"Invoice Extractor"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
      title: ExtractorSummary
    ExtractorVersionSummaryObject:
      type: string
      enum:
        - extractor_version
      description: The type of object. Will always be `"extractor_version"`.
      title: ExtractorVersionSummaryObject
    CreatedBy:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - user
              description: 'Discriminator value: user'
            email:
              type: string
              format: email
              description: The email address of the user who created the resource.
          required:
            - type
            - email
          description: Attribution for a resource created via the studio by a logged-in user.
        - type: object
          properties:
            type:
              type: string
              enum:
                - api_key
              description: 'Discriminator value: api_key'
            name:
              type: string
              description: The name of the API key that created the resource.
          required:
            - type
            - name
          description: Attribution for a resource created via the API using an API key.
      discriminator:
        propertyName: type
      description: |
        The actor that created this resource.

        * `user` — the resource was created via the studio by a logged-in user. The user's `email` is exposed.
        * `api_key` — the resource was created via the API using an API key. The key's `name` is exposed.

        May be `null` for resources created before attribution.
      title: CreatedBy
    ExtractorVersionSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorVersionSummaryObject'
          description: The type of object. Will always be `"extractor_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the extractor.

            Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the extractor.

            Example: `"Updated extraction fields for new invoice format"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the extractor. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        extractorId:
          type: string
          description: |
            The ID of the extractor that this version belongs to.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - extractorId
        - createdAt
        - createdBy
      title: ExtractorVersionSummary
    ExtractRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractRunObject'
          description: The type of object. Will always be `"extract_run"`.
        id:
          type: string
          description: |
            The unique identifier for this extract run.

            Example: `"exr_Xj8mK2pL9nR4vT7qY5wZ"`
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        output:
          oneOf:
            - $ref: '#/components/schemas/ExtractOutput'
            - type: 'null'
          description: >
            The final output, either reviewed or initial. This is a union of two possible shapes:


            - **[JSON Schema output](https://docs.extend.ai/2026-02-09/extraction/response-format):** The current output
            format, returned for runs created with a JSON Schema config.

            - **[Legacy output](https://docs.extend.ai/2025-04-21/product/legacy/output-type-legacy):** A legacy output
            format from a previous API version. This shape is only returned for runs that were originally created with a
            legacy config.


            **Availability:** Present when `status` is `"PROCESSED"`.
        initialOutput:
          oneOf:
            - $ref: '#/components/schemas/ExtractOutput'
            - type: 'null'
          description: |
            The initial output from the extract run, before any review edits.

            **Availability:** Present when `reviewed` is `true`.
        reviewedOutput:
          oneOf:
            - $ref: '#/components/schemas/ExtractOutput'
            - type: 'null'
          description: |
            The output after human review.

            **Availability:** Present when `reviewed` is `true`.
        failureReason:
          type:
            - string
            - 'null'
          description: >
            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 extraction output

            * `PRE_PROCESSING_FAILURE` - An error occurred during preprocessing (e.g., chunking)

            * `POST_PROCESSING_FAILURE` - An error occurred during postprocessing

            * `OUT_OF_CREDITS` - Insufficient credits to run the extraction

            * `SCHEMA_GENERATION_FAILED` - Automatic schema inference failed (only applies when `schema` is omitted).
            The file could not be parsed or a schema could not be generated from it.


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the extract run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        edits:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/ExtractOutputEdits'
          description: |
            Details of edits made during review.

            **Availability:** Present when `edited` is `true`.
        config:
          $ref: '#/components/schemas/ExtractConfig'
          description: >
            The configuration used for this extract run. This is a union of two possible shapes:


            - **[JSON Schema config](https://docs.extend.ai/2026-02-09/extraction/schema):** The current config format.
            All runs created through this API version use this shape.

            - **[Legacy config](https://docs.extend.ai/2025-04-21/product/legacy/legacy-schema):** A fields-array config
            from a previous API version. This shape is only returned when retrieving runs that were originally created
            with the legacy format. This API version does not support creating runs with legacy configs.
        extractor:
          oneOf:
            - $ref: '#/components/schemas/ExtractorSummary'
            - type: 'null'
          description: |
            The extractor that was used for this run.

            **Availability:** Present when an extractor reference was provided. Not present when using inline `config`.
        extractorVersion:
          oneOf:
            - $ref: '#/components/schemas/ExtractorVersionSummary'
            - type: 'null'
          description: |
            The version of the extractor that was used for this run.

            **Availability:** Present when an extractor reference was provided. Not present when using inline `config`.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` for multifile runs (use `files` instead), and `null` when the file could
            not be accessed or processed (for example, a run that failed during file ingestion).
        files:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/FileSummary'
          description: >
            The files that were processed, in the order they were submitted. Only populated for multifile runs (created
            with `package`).


            For single-file runs, this is `null` — use `file` instead.
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this extract run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the extract run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this extract run.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - status
        - output
        - initialOutput
        - reviewedOutput
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - edits
        - config
        - extractor
        - extractorVersion
        - file
        - files
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: Extract run object.
      title: ExtractRun
    ExtractRunsPostRequestBodyContentApplicationJsonSchemaExtractor:
      type: object
      properties:
        id:
          type: string
          description: The ID of the extractor to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ExtractOverrideConfigJson'
          description: >
            Optional partial configuration override. Only the fields you provide will override the extractor's saved
            configuration. For example, you can pass only `advancedOptions` or `extractionRules` without providing a
            `schema`.
      required:
        - id
      description: >
        Reference to an existing extractor. Mutually exclusive with `config` — provide one or the other, or omit both to
        have Extend infer a schema from the document.
      title: ExtractRunsPostRequestBodyContentApplicationJsonSchemaExtractor
    ExtractRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: |
        The file to be extracted from. Mutually exclusive with `package` — provide one or the other.

        Files can be provided as a URL, Extend file ID, or raw text.
      title: ExtractRunsPostRequestBodyContentApplicationJsonSchemaFile
    RunPriority:
      type: integer
      default: 50
      description: >-
        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.
      title: RunPriority
    extractRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted extract run
      required:
        - id
      title: extractRuns_delete_Response_200
    RunSource:
      type: string
      enum:
        - ADMIN
        - BATCH_PROCESSOR_RUN
        - PLAYGROUND
        - WORKFLOW_CONFIGURATION
        - WORKFLOW_RUN
        - STUDIO
        - API
      description: |
        The source that created the run:
        * `"ADMIN"` - Created by admin
        * `"BATCH_PROCESSOR_RUN"` - Created from a batch run
        * `"PLAYGROUND"` - Created from playground
        * `"WORKFLOW_CONFIGURATION"` - Created from workflow configuration
        * `"WORKFLOW_RUN"` - Created from a workflow run
        * `"STUDIO"` - Created from Studio
        * `"API"` - Created via API
      title: RunSource
    SortBy:
      type: string
      enum:
        - updatedAt
        - createdAt
      default: updatedAt
      description: Sort by the given field.
      title: SortBy
    ExtractRunsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ExtractRunsGetResponsesContentApplicationJsonSchemaObject
    ExtractRunSummaryObject:
      type: string
      enum:
        - extract_run
      description: The type of object. Will always be `"extract_run"`.
      title: ExtractRunSummaryObject
    ExtractRunSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractRunSummaryObject'
          description: The type of object. Will always be `"extract_run"`.
        id:
          type: string
          description: The unique identifier for this extract run.
        extractor:
          oneOf:
            - $ref: '#/components/schemas/ExtractorSummary'
            - type: 'null'
          description: |
            The extractor that was used for this run.

            **Availability:** Present when an extractor reference was provided. Not present when using inline `config`.
        extractorVersion:
          oneOf:
            - $ref: '#/components/schemas/ExtractorVersionSummary'
            - type: 'null'
          description: |
            The version of the extractor that was used for this run.

            **Availability:** Present when an extractor reference was provided. Not present when using inline `config`.
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        failureReason:
          type:
            - string
            - 'null'
          description: >
            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 extraction output

            * `PRE_PROCESSING_FAILURE` - An error occurred during preprocessing (e.g., chunking)

            * `POST_PROCESSING_FAILURE` - An error occurred during postprocessing

            * `OUT_OF_CREDITS` - Insufficient credits to run the extraction

            * `SCHEMA_GENERATION_FAILED` - Automatic schema inference failed (only applies when `schema` is omitted).
            The file could not be parsed or a schema could not be generated from it.


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the extract run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` for multifile runs (use `files` instead), and `null` when the file could
            not be accessed or processed (for example, a run that failed during file ingestion).
        files:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/FileSummary'
          description: >
            The files that were processed, in the order they were submitted. Only populated for multifile runs (created
            with `package`).


            For single-file runs, this is `null` — use `file` instead.
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this extract run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the extract run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsageSummary'
            - type: 'null'
          description: >
            Usage credits consumed by this extract run. Omits `breakdown` — fetch the full extract run by id to see the
            per-line items.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - extractor
        - extractorVersion
        - status
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - file
        - files
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: |
        Summary representation of an extract run.
      title: ExtractRunSummary
    extractRuns_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractRunsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ExtractRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: extractRuns_list_Response_200
    ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerateFilesItems:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      title: ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerateFilesItems
    ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerate:
      type: object
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerateFilesItems'
          description: >
            One to five sample documents used to generate the schema. Each item is either a file URL (downloaded inline)
            or an existing Extend file ID.
        instructions:
          type: string
          description: >
            Optional, but recommended. Describe the type of document, kinds of fields you want to extract, key
            requirements, and rules to follow. More context is better.
      required:
        - files
      description: >
        If provided, an extraction schema is automatically generated from the supplied sample documents and applied to
        the extractor's draft. The response includes the extractor with the generated schema already in place.


        Cannot be provided together with `config` or `cloneExtractorId`.
      title: ExtractorsPostRequestBodyContentApplicationJsonSchemaGenerate
    ExtractorObject:
      type: string
      enum:
        - extractor
      description: The type of object. Will always be `"extractor"`.
      title: ExtractorObject
    ExtractorVersionObject:
      type: string
      enum:
        - extractor_version
      description: The type of object. Will always be `"extractor_version"`.
      title: ExtractorVersionObject
    ExtractorVersion:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorVersionObject'
          description: The type of object. Will always be `"extractor_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the extractor.

            Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the extractor.

            Example: `"Updated extraction fields for new invoice format"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the extractor. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        config:
          $ref: '#/components/schemas/ExtractConfig'
          description: >
            The configuration settings for this version of the extractor. This is a union of two possible shapes:


            - **[JSON Schema config](https://docs.extend.ai/2026-02-09/extraction/schema):** The current config format.
            All extractors created through this API version use this shape.

            - **[Legacy config](https://docs.extend.ai/2025-04-21/product/legacy/legacy-schema):** A fields-array config
            from a previous API version. This shape is only returned for extractors that were originally configured with
            the legacy format. This API version does not support creating extractors with legacy configs.
        extractorId:
          type: string
          description: |
            The ID of the extractor that this version belongs to.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - config
        - extractorId
        - createdAt
        - createdBy
      title: ExtractorVersion
    Extractor:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorObject'
          description: The type of object. Will always be `"extractor"`.
        id:
          type: string
          description: |
            The ID of the extractor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the extractor.

            Example: `"Invoice Extractor"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        draftVersion:
          $ref: '#/components/schemas/ExtractorVersion'
          description: The draft version of the extractor. This is the editable version in the Extend dashboard.
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
        - draftVersion
      title: Extractor
    ExtractorsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ExtractorsGetResponsesContentApplicationJsonSchemaObject
    extractors_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ExtractorSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: extractors_list_Response_200
    ReleaseType:
      type: string
      enum:
        - major
        - minor
      description: >-
        The type of release for this version. The two options are "major" and "minor", which will increment the version
        number accordingly.
      title: ReleaseType
    VersionDescription:
      type: string
      description: A description of the changes in this version. This helps track the evolution of the processor over time.
      title: VersionDescription
    ExtractorsExtractorIdVersionsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ExtractorsExtractorIdVersionsGetResponsesContentApplicationJsonSchemaObject
    extractorVersions_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractorsExtractorIdVersionsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ExtractorVersionSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: extractorVersions_list_Response_200
    ClassifyBaseProcessor:
      type: string
      enum:
        - classification_performance
        - classification_light
      default: classification_performance
      description: >
        The base processor to use. For classifiers, this can be either `"classification_performance"` or
        `"classification_light"`. Defaults to `"classification_performance"` if not provided. See [Classification
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
        more details.
      title: ClassifyBaseProcessor
    Classification:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the classification. We recommend lowercase, underscore-separated format.
        type:
          type: string
          description: Type identifier for the classification.
        description:
          type: string
          description: A detailed description of the classification.
      required:
        - id
        - type
        - description
      title: Classification
    Classifications:
      type: array
      items:
        $ref: '#/components/schemas/Classification'
      description: >-
        Array of possible classifications. Must provide at least one classification. At least one classification must
        have the type `"other"`. Each classification item must have a unique id.
      title: Classifications
    ClassifyAdvancedOptionsContext:
      type: string
      enum:
        - default
        - max
      default: default
      description: The context to use for classification.
      title: ClassifyAdvancedOptionsContext
    ClassifyAdvancedOptions:
      type: object
      properties:
        context:
          $ref: '#/components/schemas/ClassifyAdvancedOptionsContext'
          default: default
          description: The context to use for classification.
        advancedMultimodalEnabled:
          type: boolean
          default: true
          description: Enable advanced multimodal processing for better handling of visual elements during classification.
        memoryEnabled:
          type: boolean
          default: false
          description: Enable memory for enhanced processing by learning from past successful classifications.
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
      title: ClassifyAdvancedOptions
    ClassifyOverrideConfig:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ClassifyBaseProcessor'
          default: classification_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"classification_performance"` or `"classification_light"` processor to use. If not
            provided, the latest stable version for the selected `baseProcessor` will be used automatically. See
            [Classification
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
            more details.
        classifications:
          $ref: '#/components/schemas/Classifications'
        classificationRules:
          type: string
          description: Custom rules to guide the classification process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/ClassifyAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      description: >
        Partial configuration override for an existing classifier. All fields are optional — only the fields you provide
        will override the classifier's saved configuration.

        For example, you can pass only `classificationRules` without providing `classifications`.
      title: ClassifyOverrideConfig
    ClassifyPostRequestBodyContentApplicationJsonSchemaClassifier:
      type: object
      properties:
        id:
          type: string
          description: The ID of the classifier to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ClassifyOverrideConfig'
          description: >
            Optional partial configuration override. Only the fields you provide will override the classifier's saved
            configuration. For example, you can pass only `classificationRules` without providing `classifications`.
      required:
        - id
      description: |
        Reference to an existing classifier. One of `classifier` or `config` must be provided.
      title: ClassifyPostRequestBodyContentApplicationJsonSchemaClassifier
    ClassifyConfig:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ClassifyBaseProcessor'
          default: classification_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"classification_performance"` or `"classification_light"` processor to use. If not
            provided, the latest stable version for the selected `baseProcessor` will be used automatically. See
            [Classification
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
            more details.
        classifications:
          $ref: '#/components/schemas/Classifications'
        classificationRules:
          type: string
          description: Custom rules to guide the classification process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/ClassifyAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - classifications
      title: ClassifyConfig
    ClassifyPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to be classified. Files can be provided as a URL, an Extend file ID, or raw text.
      title: ClassifyPostRequestBodyContentApplicationJsonSchemaFile
    ClassifyRunObject:
      type: string
      enum:
        - classify_run
      description: The type of object. Will always be `"classify_run"`.
      title: ClassifyRunObject
    ClassifyOutput:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this classification
        type:
          type: string
          description: The type of classification
        confidence:
          type: number
          format: double
          description: >-
            A value between 0 and 1 indicating the model's confidence in the classification, where 1 represents maximum
            confidence
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
          description: Additional insights about the classification decision
      required:
        - id
        - type
        - confidence
        - insights
      title: ClassifyOutput
    ClassifierSummaryObject:
      type: string
      enum:
        - classifier
      description: The type of object. Will always be `"classifier"`.
      title: ClassifierSummaryObject
    ClassifierSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifierSummaryObject'
          description: The type of object. Will always be `"classifier"`.
        id:
          type: string
          description: |
            The ID of the classifier.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the classifier.

            Example: `"Document Type Classifier"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
      title: ClassifierSummary
    ClassifierVersionSummaryObject:
      type: string
      enum:
        - classifier_version
      description: The type of object. Will always be `"classifier_version"`.
      title: ClassifierVersionSummaryObject
    ClassifierVersionSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifierVersionSummaryObject'
          description: The type of object. Will always be `"classifier_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the classifier.

            Example: `"clv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the classifier.

            Example: `"Added new document types for Q4 processing"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the classifier. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        classifierId:
          type: string
          description: |
            The ID of the classifier that this version belongs to.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - classifierId
        - createdAt
        - createdBy
      title: ClassifierVersionSummary
    ClassifyRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifyRunObject'
          description: The type of object. Will always be `"classify_run"`.
        id:
          type: string
          description: |
            The unique identifier for this classify run.

            Example: `"clr_Xj8mK2pL9nR4vT7qY5wZ"`
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        output:
          oneOf:
            - $ref: '#/components/schemas/ClassifyOutput'
            - type: 'null'
          description: |
            The final output, either reviewed or initial.

            **Availability:** Present when `status` is `"PROCESSED"`.
        classifier:
          oneOf:
            - $ref: '#/components/schemas/ClassifierSummary'
            - type: 'null'
          description: |
            The classifier that was used for this run.

            **Availability:** Present when a classifier reference was provided. Not present when using inline `config`.
        classifierVersion:
          oneOf:
            - $ref: '#/components/schemas/ClassifierVersionSummary'
            - type: 'null'
          description: |
            The version of the classifier that was used for this run.

            **Availability:** Present when a classifier reference was provided. Not present when using inline `config`.
        initialOutput:
          oneOf:
            - $ref: '#/components/schemas/ClassifyOutput'
            - type: 'null'
          description: |
            The initial output from the classify run, before any review edits.

            **Availability:** Present when `reviewed` is `true`.
        reviewedOutput:
          oneOf:
            - $ref: '#/components/schemas/ClassifyOutput'
            - type: 'null'
          description: |
            The output after human review.

            **Availability:** Present when `reviewed` is `true`.
        failureReason:
          type:
            - string
            - 'null'
          description: >
            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 classification 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 classification


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the classify run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        config:
          $ref: '#/components/schemas/ClassifyConfig'
          description: The configuration used for this classify run.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` when the file could not be accessed or processed (for example a run that
            failed during file ingestion, or a multi-file batch run).
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this classify run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the classify run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this classify run.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - status
        - output
        - classifier
        - classifierVersion
        - initialOutput
        - reviewedOutput
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - config
        - file
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: Classify run object.
      title: ClassifyRun
    ClassifyRunsPostRequestBodyContentApplicationJsonSchemaClassifier:
      type: object
      properties:
        id:
          type: string
          description: The ID of the classifier to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ClassifyOverrideConfig'
          description: >
            Optional partial configuration override. Only the fields you provide will override the classifier's saved
            configuration. For example, you can pass only `classificationRules` without providing `classifications`.
      required:
        - id
      description: |
        Reference to an existing classifier. One of `classifier` or `config` must be provided.
      title: ClassifyRunsPostRequestBodyContentApplicationJsonSchemaClassifier
    ClassifyRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to be classified. Files can be provided as a URL, an Extend file ID, or raw text.
      title: ClassifyRunsPostRequestBodyContentApplicationJsonSchemaFile
    classifyRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted classify run
      required:
        - id
      title: classifyRuns_delete_Response_200
    ClassifyRunsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ClassifyRunsGetResponsesContentApplicationJsonSchemaObject
    ClassifyRunSummaryObject:
      type: string
      enum:
        - classify_run
      description: The type of object. Will always be `"classify_run"`.
      title: ClassifyRunSummaryObject
    ClassifyRunSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifyRunSummaryObject'
          description: The type of object. Will always be `"classify_run"`.
        id:
          type: string
          description: The unique identifier for this classify run.
        classifier:
          oneOf:
            - $ref: '#/components/schemas/ClassifierSummary'
            - type: 'null'
          description: |
            The classifier that was used for this run.

            **Availability:** Present when a classifier reference was provided. Not present when using inline `config`.
        classifierVersion:
          oneOf:
            - $ref: '#/components/schemas/ClassifierVersionSummary'
            - type: 'null'
          description: |
            The version of the classifier that was used for this run.

            **Availability:** Present when a classifier reference was provided. Not present when using inline `config`.
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        failureReason:
          type:
            - string
            - 'null'
          description: |
            The reason for failure.

            **Availability:** Present when `status` is `"FAILED"`.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the classify run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` when the file could not be accessed or processed (for example a run that
            failed during file ingestion, or a multi-file batch run).
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this classify run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the classify run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsageSummary'
            - type: 'null'
          description: >
            Usage credits consumed by this classify run. Omits `breakdown` — fetch the full classify run by id to see
            the per-line items.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - classifier
        - classifierVersion
        - status
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - file
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: |
        Summary representation of a classify run.
      title: ClassifyRunSummary
    classifyRuns_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifyRunsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ClassifyRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: classifyRuns_list_Response_200
    ClassifierObject:
      type: string
      enum:
        - classifier
      description: The type of object. Will always be `"classifier"`.
      title: ClassifierObject
    ClassifierVersionObject:
      type: string
      enum:
        - classifier_version
      description: The type of object. Will always be `"classifier_version"`.
      title: ClassifierVersionObject
    ClassifierVersion:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifierVersionObject'
          description: The type of object. Will always be `"classifier_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the classifier.

            Example: `"clv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the classifier.

            Example: `"Added new document types for Q4 processing"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the classifier. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        config:
          $ref: '#/components/schemas/ClassifyConfig'
          description: |
            The configuration settings for this version of the classifier.
        classifierId:
          type: string
          description: |
            The ID of the classifier that this version belongs to.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - config
        - classifierId
        - createdAt
        - createdBy
      title: ClassifierVersion
    Classifier:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifierObject'
          description: The type of object. Will always be `"classifier"`.
        id:
          type: string
          description: |
            The ID of the classifier.

            Example: `"cl_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the classifier.

            Example: `"Document Type Classifier"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        draftVersion:
          $ref: '#/components/schemas/ClassifierVersion'
          description: The draft version of the classifier. This is the editable version in the Extend dashboard.
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
        - draftVersion
      title: Classifier
    ClassifiersGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ClassifiersGetResponsesContentApplicationJsonSchemaObject
    classifiers_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifiersGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ClassifierSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: classifiers_list_Response_200
    ClassifiersClassifierIdVersionsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: ClassifiersClassifierIdVersionsGetResponsesContentApplicationJsonSchemaObject
    classifierVersions_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifiersClassifierIdVersionsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/ClassifierVersionSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: classifierVersions_list_Response_200
    SplitBaseProcessor:
      type: string
      enum:
        - splitting_performance
        - splitting_light
      default: splitting_performance
      description: >
        The base processor to use. For splitters, this can be either `"splitting_performance"` or `"splitting_light"`.
        Defaults to `"splitting_performance"` if not provided. See [Splitting
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more details.
      title: SplitBaseProcessor
    SplitClassification:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the classification. We recommend lowercase, underscore-separated format.
        type:
          type: string
          description: Type identifier for the classification.
        description:
          type: string
          description: A detailed description of the classification.
        identifierKey:
          type: string
          description: >
            A natural-language rule describing how to extract a unique identifier for subdocuments of this type. For
            example, `"Extract the invoice number from the document header"`.


            When provided, the splitter will extract the specified identifier for each subdocument of this type and
            include it in the output as the `identifier` field. This enables merging of related subdocuments that share
            the same extracted identifier.


            **Availability:** Supported on `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0. If provided
            on older versions, this field is accepted but ignored.
      required:
        - id
        - type
        - description
      description: >-
        A classification for document splitting. Extends the base Classification with an optional `identifierKey` field
        for per-type identifier extraction rules.
      title: SplitClassification
    SplitClassifications:
      type: array
      items:
        $ref: '#/components/schemas/SplitClassification'
      description: >-
        Array of split classifications that define the possible types of document sections. Must provide at least one
        classification. At least one classification must have the type `"other"`. Each classification item must have a
        unique id.
      title: SplitClassifications
    SplitAdvancedOptionsSplitMethod:
      type: string
      enum:
        - high_precision
        - basic_precision
      default: high_precision
      description: >
        The method to use for splitting documents. `high_precision` is more accurate but slower, while `basic_precision`
        is faster but less precise.


        **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, this field has no impact
        and is ignored if provided. It is still accepted for compatibility with older integrations.
      title: SplitAdvancedOptionsSplitMethod
    SplitAdvancedOptions:
      type: object
      properties:
        splitIdentifierRules:
          type: string
          description: >
            Custom rules for identifying split points.


            **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, use the `identifierKey`
            field on each classification in `splitClassifications` instead. This provides per-type identifier extraction
            rules rather than a single global rule. On those versions, this field is accepted but ignored if provided.
        splitMethod:
          $ref: '#/components/schemas/SplitAdvancedOptionsSplitMethod'
          default: high_precision
          description: >
            The method to use for splitting documents. `high_precision` is more accurate but slower, while
            `basic_precision` is faster but less precise.


            **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, this field has no
            impact and is ignored if provided. It is still accepted for compatibility with older integrations.
        splitExcelDocumentsBySheetEnabled:
          type: boolean
          default: false
          description: For Excel documents, split by worksheet.
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
        pageOverlapEnabled:
          type: boolean
          default: false
          description: >
            When enabled, the splitter will allow for page overlap when splitting a document such that a page can occur
            in multiple adjacent splits when context from the previous split is on the page and context from the next
            split is on the page.

            **Availability:** Supported on `splitting_light` >= 1.1.0 and `splitting_performance` >= 1.2.0. If provided
            on older versions, this field is accepted but ignored.
      title: SplitAdvancedOptions
    SplitOverrideConfig:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/SplitBaseProcessor'
          default: splitting_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"splitting_performance"` or `"splitting_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Splitting
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more
            details.
        splitClassifications:
          $ref: '#/components/schemas/SplitClassifications'
        splitRules:
          type: string
          description: Custom rules to guide the document splitting process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/SplitAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      description: >
        Partial configuration override for an existing splitter. All fields are optional — only the fields you provide
        will override the splitter's saved configuration.

        For example, you can pass only `splitRules` without providing `splitClassifications`.
      title: SplitOverrideConfig
    SplitPostRequestBodyContentApplicationJsonSchemaSplitter:
      type: object
      properties:
        id:
          type: string
          description: The ID of the splitter to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/SplitOverrideConfig'
          description: >
            Optional partial configuration override. Only the fields you provide will override the splitter's saved
            configuration. For example, you can pass only `splitRules` without providing `splitClassifications`.
      required:
        - id
      description: |
        Reference to an existing splitter. One of `splitter` or `config` must be provided.
      title: SplitPostRequestBodyContentApplicationJsonSchemaSplitter
    SplitConfig:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/SplitBaseProcessor'
          default: splitting_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"splitting_performance"` or `"splitting_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Splitting
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more
            details.
        splitClassifications:
          $ref: '#/components/schemas/SplitClassifications'
        splitRules:
          type: string
          description: Custom rules to guide the document splitting process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/SplitAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - splitClassifications
      title: SplitConfig
    SplitPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be split. Files can be provided as a URL or an Extend file ID.
      title: SplitPostRequestBodyContentApplicationJsonSchemaFile
    SplitRunObject:
      type: string
      enum:
        - split_run
      description: The type of object. Will always be `"split_run"`.
      title: SplitRunObject
    SplitOutputSplitsItems:
      type: object
      properties:
        type:
          type: string
          description: The type of the split document (set in the processor config), corresponds to the classificationId
        observation:
          type: string
          description: Explanation of the results
        identifier:
          type: string
          description: Identifier for the split document (e.g. invoice number)
        startPage:
          type: integer
          description: The start page of the split document
        endPage:
          type: integer
          description: The end page of the split document
        name:
          type: string
          description: Optional name for the split
        classificationId:
          type: string
          description: ID of the classification type (set in the processor config)
        id:
          type: string
          description: Unique ID for this split
        fileId:
          type: string
          description: File ID associated with this split
      required:
        - type
        - observation
        - identifier
        - startPage
        - endPage
        - classificationId
        - id
        - fileId
      title: SplitOutputSplitsItems
    SplitOutput:
      type: object
      properties:
        splits:
          type: array
          items:
            $ref: '#/components/schemas/SplitOutputSplitsItems'
        isExternal:
          type: boolean
      required:
        - splits
      title: SplitOutput
    SplitterSummaryObject:
      type: string
      enum:
        - splitter
      description: The type of object. Will always be `"splitter"`.
      title: SplitterSummaryObject
    SplitterSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitterSummaryObject'
          description: The type of object. Will always be `"splitter"`.
        id:
          type: string
          description: |
            The ID of the splitter.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the splitter.

            Example: `"Invoice Packet Splitter"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
      title: SplitterSummary
    SplitterVersionSummaryObject:
      type: string
      enum:
        - splitter_version
      description: The type of object. Will always be `"splitter_version"`.
      title: SplitterVersionSummaryObject
    SplitterVersionSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitterVersionSummaryObject'
          description: The type of object. Will always be `"splitter_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the splitter.

            Example: `"splv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the splitter.

            Example: `"Updated split rules for multi-invoice packets"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the splitter. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        splitterId:
          type: string
          description: |
            The ID of the splitter that this version belongs to.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - splitterId
        - createdAt
        - createdBy
      title: SplitterVersionSummary
    SplitRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitRunObject'
          description: The type of object. Will always be `"split_run"`.
        id:
          type: string
          description: |
            The unique identifier for this split run.

            Example: `"splr_Xj8mK2pL9nR4vT7qY5wZ"`
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        output:
          oneOf:
            - $ref: '#/components/schemas/SplitOutput'
            - type: 'null'
          description: |
            The final output, either reviewed or initial.

            **Availability:** Present when `status` is `"PROCESSED"`.
        splitter:
          oneOf:
            - $ref: '#/components/schemas/SplitterSummary'
            - type: 'null'
          description: |
            The splitter that was used for this run.

            **Availability:** Present when a splitter reference was provided. Not present when using inline `config`.
        splitterVersion:
          oneOf:
            - $ref: '#/components/schemas/SplitterVersionSummary'
            - type: 'null'
          description: |
            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`.
        initialOutput:
          oneOf:
            - $ref: '#/components/schemas/SplitOutput'
            - type: 'null'
          description: |
            The initial output from the split run, before any review edits.

            **Availability:** Present when `reviewed` is `true`.
        reviewedOutput:
          oneOf:
            - $ref: '#/components/schemas/SplitOutput'
            - type: 'null'
          description: |
            The output after human review.

            **Availability:** Present when `reviewed` is `true`.
        failureReason:
          type:
            - string
            - 'null'
          description: >
            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.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the split run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        config:
          $ref: '#/components/schemas/SplitConfig'
          description: The configuration used for this split run.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` when the file could not be accessed or processed (for example a run that
            failed during file ingestion, or a multi-file batch run).
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this split run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the split run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this split run.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - status
        - output
        - splitter
        - splitterVersion
        - initialOutput
        - reviewedOutput
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - config
        - file
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: Split run object.
      title: SplitRun
    SplitRunsPostRequestBodyContentApplicationJsonSchemaSplitter:
      type: object
      properties:
        id:
          type: string
          description: The ID of the splitter to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/SplitOverrideConfig'
          description: >
            Optional partial configuration override. Only the fields you provide will override the splitter's saved
            configuration. For example, you can pass only `splitRules` without providing `splitClassifications`.
      required:
        - id
      description: |
        Reference to an existing splitter. One of `splitter` or `config` must be provided.
      title: SplitRunsPostRequestBodyContentApplicationJsonSchemaSplitter
    SplitRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be split. Files can be provided as a URL or an Extend file ID.
      title: SplitRunsPostRequestBodyContentApplicationJsonSchemaFile
    splitRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted split run
      required:
        - id
      title: splitRuns_delete_Response_200
    SplitRunsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: SplitRunsGetResponsesContentApplicationJsonSchemaObject
    SplitRunSummaryObject:
      type: string
      enum:
        - split_run
      description: The type of object. Will always be `"split_run"`.
      title: SplitRunSummaryObject
    SplitRunSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitRunSummaryObject'
          description: The type of object. Will always be `"split_run"`.
        id:
          type: string
          description: The unique identifier for this split run.
        splitter:
          oneOf:
            - $ref: '#/components/schemas/SplitterSummary'
            - type: 'null'
          description: |
            The splitter that was used for this run.

            **Availability:** Present when a splitter reference was provided. Not present when using inline `config`.
        splitterVersion:
          oneOf:
            - $ref: '#/components/schemas/SplitterVersionSummary'
            - type: 'null'
          description: |
            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`.
        status:
          $ref: '#/components/schemas/ProcessorRunStatus'
        failureReason:
          type:
            - string
            - 'null'
          description: |
            The reason for failure.

            **Availability:** Present when `status` is `"FAILED"`.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A detailed message about the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the split run.

            **Availability:** Present when metadata was provided during creation.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed by a human.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited during review.
        file:
          oneOf:
            - $ref: '#/components/schemas/FileSummary'
            - type: 'null'
          description: >
            The file that was processed. `null` when the file could not be accessed or processed (for example a run that
            failed during file ingestion, or a multi-file batch run).
        parseRunId:
          type:
            - string
            - 'null'
          description: |
            The ID of the parse run that was used for this split run.

            **Availability:** Present when a parse run was created.
        dashboardUrl:
          type: string
          description: The URL to view the split run in the Extend dashboard.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsageSummary'
            - type: 'null'
          description: >
            Usage credits consumed by this split run. Omits `breakdown` — fetch the full split run by id to see the
            per-line items.


            **Availability:** Present when `status` is `"PROCESSED"`. Will not be returned for runs created before
            October 7, 2025 or for customers on legacy billing systems.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - splitter
        - splitterVersion
        - status
        - failureReason
        - failureMessage
        - metadata
        - reviewed
        - edited
        - file
        - parseRunId
        - dashboardUrl
        - usage
        - createdAt
        - updatedAt
      description: |
        Summary representation of a split run.
      title: SplitRunSummary
    splitRuns_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitRunsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/SplitRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: splitRuns_list_Response_200
    SplitterObject:
      type: string
      enum:
        - splitter
      description: The type of object. Will always be `"splitter"`.
      title: SplitterObject
    SplitterVersionObject:
      type: string
      enum:
        - splitter_version
      description: The type of object. Will always be `"splitter_version"`.
      title: SplitterVersionObject
    SplitterVersion:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitterVersionObject'
          description: The type of object. Will always be `"splitter_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the splitter.

            Example: `"splv_xK9mLPqRtN3vS8wF5hB2cQ"`
        description:
          type:
            - string
            - 'null'
          description: |
            A description of this version of the splitter.

            Example: `"Updated split rules for multi-invoice packets"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the splitter. The draft version will have
            version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        config:
          $ref: '#/components/schemas/SplitConfig'
          description: |
            The configuration settings for this version of the splitter.
        splitterId:
          type: string
          description: |
            The ID of the splitter that this version belongs to.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - description
        - version
        - config
        - splitterId
        - createdAt
        - createdBy
      title: SplitterVersion
    Splitter:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitterObject'
          description: The type of object. Will always be `"splitter"`.
        id:
          type: string
          description: |
            The ID of the splitter.

            Example: `"spl_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the splitter.

            Example: `"Invoice Packet Splitter"`
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        draftVersion:
          $ref: '#/components/schemas/SplitterVersion'
          description: The draft version of the splitter. This is the editable version in the Extend dashboard.
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
        - draftVersion
      title: Splitter
    SplittersGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: SplittersGetResponsesContentApplicationJsonSchemaObject
    splitters_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplittersGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/SplitterSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      title: splitters_list_Response_200
    SplittersSplitterIdVersionsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: SplittersSplitterIdVersionsGetResponsesContentApplicationJsonSchemaObject
    splitterVersions_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplittersSplitterIdVersionsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/SplitterVersionSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: splitterVersions_list_Response_200
    EditPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be edited. Files can be provided as a URL or an Extend file ID.
      title: EditPostRequestBodyContentApplicationJsonSchemaFile
    EditRootJsonType:
      type: string
      enum:
        - object
      description: Must be "object" for the root schema
      title: EditRootJsonType
    EditJsonExtendEditFieldType:
      type: string
      enum:
        - text
        - checkbox
        - radio
        - dropdown
        - optionList
        - signature
        - table
        - unknown
      description: |
        The PDF field type to edit. Allowed values depend on the schema type:
        * `["string", "null"]` → `text`, `signature`
        * `["number", "null"]` → `text`
        * `["integer", "null"]` → `text`
        * `["boolean", "null"]` → `checkbox`, `radio`
        * `"array"` → `text`, `table`
        * `"object"` → `signature`
        * enum fields (no type) → `radio`, `optionList`, `dropdown`
      title: EditJsonExtendEditFieldType
    EditBoundingBox:
      type: object
      properties:
        left:
          type: number
          format: double
          description: The left coordinate of the bounding box (pixels)
        top:
          type: number
          format: double
          description: The top coordinate of the bounding box (pixels)
        right:
          type: number
          format: double
          description: The right coordinate of the bounding box (pixels)
        bottom:
          type: number
          format: double
          description: The bottom coordinate of the bounding box (pixels)
      required:
        - left
        - top
        - right
        - bottom
      description: Bounding box coordinates for the field location in the PDF (pixel coordinates)
      title: EditBoundingBox
    EditTextOptions:
      type: object
      properties:
        fontSize:
          type: number
          format: double
          description: Font size in points
        fontColor:
          type: array
          items:
            type: number
            format: double
          description: RGB color values (0-255) for text color
        font:
          type: string
          description: Font family name
        combing:
          type: boolean
          description: Whether this is a combed field (like SSN fields with individual character boxes)
        maxLength:
          type: integer
          description: Maximum number of characters allowed
        multiLine:
          type: boolean
          description: Whether text can wrap across multiple lines
      description: Text styling options for text fields
      title: EditTextOptions
    EditJsonExtendEditImage:
      type: object
      properties:
        image_url:
          type: string
          description: URL of the image to place in the signature field.
      required:
        - image_url
      description: Image fill for signature fields. Only PNG and JPEG image URLs are supported.
      title: EditJsonExtendEditImage
    EditObjectJsonType:
      type: string
      enum:
        - object
      description: Must be "object" for object schemas
      title: EditObjectJsonType
    EditObjectJsonExtendEditFieldType:
      type: string
      enum:
        - signature
      description: The PDF field type. For object schemas, must be "signature".
      title: EditObjectJsonExtendEditFieldType
    EditObjectJSON:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EditObjectJsonType'
          description: Must be "object" for object schemas
        description:
          type: string
          description: Description of the field
        extend_edit:field_type:
          $ref: '#/components/schemas/EditObjectJsonExtendEditFieldType'
          description: The PDF field type. For object schemas, must be "signature".
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditJSON'
          description: Nested properties. Each property follows the EditJSON structure.
        required:
          type: array
          items:
            type: string
          description: List of required property names
        additionalProperties:
          type: boolean
          description: Whether additional properties are allowed
      description: >
        Schema definition for an object field in a PDF edit schema. Used for signature fields and as items schema for
        arrays/tables.
      title: EditObjectJSON
    EditJSON:
      type: object
      properties:
        type:
          description: |
            The JSON schema type of the field. Can be:
            * A string: "array" or "object"
            * A nullable tuple array: ["string", "null"], ["number", "null"], ["integer", "null"], ["boolean", "null"]
            * Omitted for enum fields (use enum property instead)
        description:
          type: string
          description: Description of the field
        extend_edit:field_type:
          $ref: '#/components/schemas/EditJsonExtendEditFieldType'
          description: |
            The PDF field type to edit. Allowed values depend on the schema type:
            * `["string", "null"]` → `text`, `signature`
            * `["number", "null"]` → `text`
            * `["integer", "null"]` → `text`
            * `["boolean", "null"]` → `checkbox`, `radio`
            * `"array"` → `text`, `table`
            * `"object"` → `signature`
            * enum fields (no type) → `radio`, `optionList`, `dropdown`
        extend_edit:bbox:
          $ref: '#/components/schemas/EditBoundingBox'
        extend_edit:bboxes:
          type: array
          items:
            $ref: '#/components/schemas/EditBoundingBox'
          description: Array of bounding boxes for radio enums. Enum at index i corresponds to bbox at index i.
        extend_edit:page_index:
          type: integer
          description: Zero-based page index where the field should be placed
        extend_edit:text_edit_options:
          $ref: '#/components/schemas/EditTextOptions'
        extend_edit:column_width:
          type: number
          format: double
          description: Width of the column as a percentage (for table fields)
        extend_edit:value:
          description: >-
            The value to fill into this field. Can be any type. This will force the value at this field to be filled
            with this value. If a value is not provided, we will attempt to generate or infer one based on the
            instructions.
        extend_edit:image:
          $ref: '#/components/schemas/EditJsonExtendEditImage'
          description: Image fill for signature fields. Only PNG and JPEG image URLs are supported.
        extend_edit:row_heights:
          type: array
          items:
            type: number
            format: double
          description: Array of row height percentages for array/table fields (e.g. [0.25, 0.50, 0.25])
        items:
          $ref: '#/components/schemas/EditObjectJSON'
          description: Schema for array items (when type is "array"). Must be an EditObjectJSON.
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditJSON'
          description: Nested properties for object types. Each property follows the EditJSON structure.
        enum:
          type: array
          items:
            type: string
          description: Allowed values for enum/dropdown/radio fields
        maxItems:
          type: integer
          description: Maximum number of rows for array/table fields
        required:
          type: array
          items:
            type: string
          description: List of required property names (for object types)
        additionalProperties:
          type: boolean
          description: Whether additional properties are allowed (for object types)
      description: |
        Schema definition for a field to edit in a PDF. This is a union type that supports:
        * `EditStringJSONSchema` - type: ["string", "null"], field_type: "text" | "signature"
        * `EditNumberJSONSchema` - type: ["number", "null"], field_type: "text"
        * `EditIntegerJSONSchema` - type: ["integer", "null"], field_type: "text"
        * `EditBooleanJSONSchema` - type: ["boolean", "null"], field_type: "checkbox" | "radio"
        * `EditArrayJSONSchema` - type: "array", field_type: "text" | "table"
        * `EditEnumJSONSchema` - has enum property (no type field), field_type: "radio" | "optionList" | "dropdown"
        * `EditObjectJSON` - type: "object", field_type: "signature"

        All variants share common `extend_edit:*` properties for positioning and styling.
      title: EditJSON
    EditDependentRequired:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
      description: Map of field names to additional fields that become required when the key field is present.
      title: EditDependentRequired
    EditConditionalObjectPropertyType:
      type: string
      enum:
        - object
      description: Must be `object` for nested object conditional schemas.
      title: EditConditionalObjectPropertyType
    EditConditionalObjectProperty:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EditConditionalObjectPropertyType'
          description: Must be `object` for nested object conditional schemas.
        description:
          type: string
          description: Description of the nested object constraint.
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditConditionalProperty'
          description: Nested conditional property constraints.
        required:
          type: array
          items:
            type: string
          description: Required nested properties.
        additionalProperties:
          type: boolean
          description: Whether additional nested properties are allowed.
      description: Nested object/row schema used inside conditional array and object constraints.
      title: EditConditionalObjectProperty
    EditConditionalProperty:
      type: object
      properties:
        type:
          description: |
            JSON Schema type for the conditional property. Can be a simple type such as `"object"` or `"array"`,
            a nullable tuple like `["string", "null"]`, or omitted for enum-only constraints.
        description:
          type: string
          description: Description of the field constraint.
        enum:
          type: array
          items:
            type: string
          description: Allowed values for enum-based conditional constraints.
        items:
          $ref: '#/components/schemas/EditConditionalObjectProperty'
          description: Nested array item schema for conditional array constraints.
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditConditionalProperty'
          description: Nested object property constraints.
        required:
          type: array
          items:
            type: string
          description: Required nested object properties.
        additionalProperties:
          type: boolean
          description: Whether additional nested object properties are allowed.
        const:
          description: Exact value that the property must match.
        pattern:
          type: string
          description: Regular expression that string values must match.
        contains:
          $ref: '#/components/schemas/EditConditionalProperty'
          description: Conditional schema that at least one array item must satisfy.
        minimum:
          type: number
          format: double
          description: Inclusive lower bound for numeric values.
        maximum:
          type: number
          format: double
          description: Inclusive upper bound for numeric values.
        exclusiveMinimum:
          type: number
          format: double
          description: Exclusive lower bound for numeric values.
        exclusiveMaximum:
          type: number
          format: double
          description: Exclusive upper bound for numeric values.
        minLength:
          type: integer
          description: Minimum string length.
        maxLength:
          type: integer
          description: Maximum string length.
        minItems:
          type: integer
          description: Minimum number of array items.
        maxItems:
          type: integer
          description: Maximum number of array items.
        minContains:
          type: integer
          description: Minimum number of matching items for `contains`.
        maxContains:
          type: integer
          description: Maximum number of matching items for `contains`.
      description: |
        Field-level schema fragment used inside conditional clauses. These condition objects support nested JSON
        Schema structure such as `type`, `enum`, `items`, `properties`, `required`, and `contains`, but do not
        allow any `extend_edit:*` placement or styling keys.
      title: EditConditionalProperty
    EditConditionalClause:
      type: object
      properties:
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditConditionalProperty'
          description: Conditional field constraints keyed by top-level property name.
        required:
          type: array
          items:
            type: string
          description: List of fields that must be present when this clause applies.
        dependentRequired:
          $ref: '#/components/schemas/EditDependentRequired'
        if:
          $ref: '#/components/schemas/EditConditionalClause'
        then:
          $ref: '#/components/schemas/EditConditionalClause'
        else:
          $ref: '#/components/schemas/EditConditionalClause'
        allOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of nested conditional clauses that must all match.
        oneOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of nested conditional clauses where exactly one must match.
        anyOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of nested conditional clauses where at least one must match.
        not:
          $ref: '#/components/schemas/EditConditionalClause'
      description: |
        Recursive conditional clause for edit schemas. Use these clauses with root-level `if` / `then` / `else`,
        `dependentRequired`, and logical combinators to model conditional field requirements.
      title: EditConditionalClause
    EditRootJSON:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EditRootJsonType'
          description: Must be "object" for the root schema
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EditJSON'
          description: Map of field names to their schema definitions
        required:
          type: array
          items:
            type: string
          description: List of required field names
        additionalProperties:
          type: boolean
          description: Whether additional properties are allowed
        dependentRequired:
          $ref: '#/components/schemas/EditDependentRequired'
        if:
          $ref: '#/components/schemas/EditConditionalClause'
        then:
          $ref: '#/components/schemas/EditConditionalClause'
        else:
          $ref: '#/components/schemas/EditConditionalClause'
        allOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of conditional clauses that must all match.
        oneOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of conditional clauses where exactly one must match.
        anyOf:
          type: array
          items:
            $ref: '#/components/schemas/EditConditionalClause'
          description: List of conditional clauses where at least one must match.
        not:
          $ref: '#/components/schemas/EditConditionalClause'
      required:
        - type
        - properties
      description: >
        JSON Schema definition for editing PDF documents. The schema defines the structure and placement of fields to
        edit.

        It also supports JSON Schema conditional keywords at the root level, including `dependentRequired`,

        `if` / `then` / `else`, and logical combinators such as `allOf`, `oneOf`, `anyOf`, and `not`.

        Conditional property constraints do not accept `extend_edit:*` keys.
      title: EditRootJSON
    EditConfigAdvancedOptions:
      type: object
      properties:
        tableParsingEnabled:
          type: boolean
          description: Whether to parse table regions as arrays of objects. Defaults to `false`.
        flattenPdf:
          type: boolean
          description: Whether to flatten PDF forms after editing (makes form fields non-editable). Defaults to `true`.
        radioEnumsEnabled:
          type: boolean
          description: Whether to model radio fields as enums. This ensures only one radio widget is filled. Defaults to false.
        nativeFieldsOnly:
          type: boolean
          description: >-
            If enabled, only native AcroForm from the PDF will be imported and used in the schema (skips object
            detection). Defaults to false.
        conditionalGenerationEnabled:
          type: boolean
          description: >-
            When enabled and no `config.schema` is supplied, reads requirements explicitly stated in the form and adds
            supported root-level JSON Schema conditional validation rules to the generated schema. If generated edit
            values do not satisfy the rules, the Edit run fails with `SCHEMA_VALIDATION_ERROR`. Has no effect when a
            schema is supplied. Defaults to `false`.
      description: Advanced options for the edit operation.
      title: EditConfigAdvancedOptions
    EditConfig:
      type: object
      properties:
        schema:
          $ref: '#/components/schemas/EditRootJSON'
        instructions:
          type: string
          description: Custom instructions provided for the edit operation.
        schemaGenerationInstructions:
          type: string
          description: Additional instructions used when generating a schema from the document.
        advancedOptions:
          $ref: '#/components/schemas/EditConfigAdvancedOptions'
          description: Advanced options for the edit operation.
      description: Configuration options for the editing process.
      title: EditConfig
    EditRunObject:
      type: string
      enum:
        - edit_run
      description: The type of object. Will always be `"edit_run"`.
      title: EditRunObject
    EditRunStatus:
      type: string
      enum:
        - PROCESSING
        - PROCESSED
        - FAILED
      description: |
        The status of the edit run:
        * `"PROCESSING"` - The file is still being processed
        * `"PROCESSED"` - The file was successfully edited
        * `"FAILED"` - The editing failed (see `failureReason` for details)
      title: EditRunStatus
    EditRunOutputEditedFile:
      type: object
      properties:
        id:
          type: string
          description: The ID of the edited output file.
        presignedUrl:
          type: string
          description: A presigned URL to download the edited file. Expires after 15 minutes.
      required:
        - id
        - presignedUrl
      description: Information about the edited output file.
      title: EditRunOutputEditedFile
    EditRunOutput:
      type: object
      properties:
        editedFile:
          $ref: '#/components/schemas/EditRunOutputEditedFile'
          description: Information about the edited output file.
        filledValues:
          type: object
          additionalProperties:
            description: Any type
          description: >-
            The field values that were filled into the document. Keys correspond to the property names in the schema.
            Will not be present if no values were filled.
      required:
        - editedFile
      description: |
        The output of the edit run.

        **Availability:** Present when `status` is `"PROCESSED"`.
      title: EditRunOutput
    EditRunMetrics:
      type: object
      properties:
        processingTimeMs:
          type: number
          format: double
          description: Total processing time in milliseconds.
        pageCount:
          type: integer
          description: The number of pages in the document.
        fieldCount:
          type: integer
          description: The total number of fields in the schema.
        fieldsDetectedCount:
          type: integer
          description: The number of fields that were automatically detected.
        fieldsAnnotatedCount:
          type: integer
          description: The number of fields that were annotated with bounding boxes.
        fieldDetectionTimeMs:
          type: number
          format: double
          description: The time taken to detect fields in the document, in milliseconds.
        fieldAnnotationTimeMs:
          type: number
          format: double
          description: The time taken to annotate field positions in the document, in milliseconds.
        fieldFillingTimeMs:
          type: number
          format: double
          description: The time taken to fill the fields in the document, in milliseconds.
      required:
        - processingTimeMs
        - pageCount
        - fieldCount
        - fieldsDetectedCount
        - fieldsAnnotatedCount
        - fieldDetectionTimeMs
        - fieldAnnotationTimeMs
        - fieldFillingTimeMs
      description: |
        Metrics about the editing process.

        **Availability:** Present when `status` is `"PROCESSED"`.
      title: EditRunMetrics
    EditRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EditRunObject'
          description: The type of object. Will always be `"edit_run"`.
        id:
          type: string
          description: |
            A unique identifier for the edit run.

            Example: `"edr_xK9mLPqRtN3vS8wF5hB2cQ"`
        file:
          $ref: '#/components/schemas/FileSummary'
          description: The input file that was submitted for editing.
        status:
          $ref: '#/components/schemas/EditRunStatus'
          description: |
            The status of the edit run:
            * `"PROCESSING"` - The file is still being processed
            * `"PROCESSED"` - The file was successfully edited
            * `"FAILED"` - The editing failed (see `failureReason` for details)
        failureReason:
          type:
            - string
            - 'null'
          description: >
            The reason for failure.


            **Availability:** Present when `status` is `"FAILED"`.


            Possible values include:

            * `UNABLE_TO_DOWNLOAD_FILE` - Failed to load the requested file

            * `FILE_TYPE_NOT_SUPPORTED` - File type not supported. Edit runs currently require a PDF

            * `FILE_SIZE_TOO_LARGE` - The file exceeds the maximum allowed size

            * `CORRUPT_FILE` - The file appears to be corrupted and cannot be edited

            * `FIELD_DETECTION_ERROR` - An error occurred during field detection

            * `PASSWORD_PROTECTED_FILE` - The file is password protected and cannot be edited

            * `FAILED_TO_CONVERT_TO_PDF` - The file could not be converted to PDF for processing

            * `INTERNAL_ERROR` - An unexpected internal error occurred

            * `INVALID_OPTIONS` - The provided configuration options are invalid

            * `EMPTY_SCHEMA` - No schema was provided and no fields could be detected

            * `OUT_OF_CREDITS` - Insufficient credits to process the file

            * `SCHEMA_VALIDATION_ERROR` - The generated output value failed validation against the edit schema


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A human-readable description of the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        config:
          $ref: '#/components/schemas/EditConfig'
          description: The configuration used for this edit run, including any default values that were applied.
        output:
          oneOf:
            - $ref: '#/components/schemas/EditRunOutput'
            - type: 'null'
          description: |
            The output of the edit run.

            **Availability:** Present when `status` is `"PROCESSED"`.
        metrics:
          oneOf:
            - $ref: '#/components/schemas/EditRunMetrics'
            - type: 'null'
          description: |
            Metrics about the editing process.

            **Availability:** Present when `status` is `"PROCESSED"`.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this edit run.


            **Availability:** Present when `status` is `"PROCESSED"`, the run was created after October 7, 2025, and the
            customer is on the current billing system.
      required:
        - object
        - id
        - file
        - status
        - failureReason
        - failureMessage
        - config
        - output
        - metrics
        - usage
      description: Edit run object.
      title: EditRun
    EditRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to be edited. Files can be provided as a URL or an Extend file ID.
      title: EditRunsPostRequestBodyContentApplicationJsonSchemaFile
    editRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted edit run
      required:
        - id
      title: editRuns_delete_Response_200
    EditTemplateObject:
      type: string
      enum:
        - edit_template
      description: The type of object. Will always be `"edit_template"`.
      title: EditTemplateObject
    EditSchemaGenerationConfigAdvancedOptions:
      type: object
      properties:
        tableParsingEnabled:
          type: boolean
          description: Whether to parse table regions as arrays of objects. Defaults to `false`.
        radioEnumsEnabled:
          type: boolean
          description: Whether to model radio fields as enums. This ensures only one radio widget is selected. Defaults to `false`.
        nativeFieldsOnly:
          type: boolean
          description: >-
            If enabled, only native AcroForm fields from the PDF will be imported and used in the schema, skipping
            object detection. Defaults to `false`.
        conditionalGenerationEnabled:
          type: boolean
          description: >-
            When enabled, reads requirements explicitly stated in the form and adds supported root-level JSON Schema
            conditional validation rules to the generated schema. These rules validate form data when the schema is used
            for an edit; they do not add interactive UI behavior. If generated edit values do not satisfy the rules, the
            Edit run fails with `SCHEMA_VALIDATION_ERROR`. Defaults to `false`.
      description: Advanced options for schema generation.
      title: EditSchemaGenerationConfigAdvancedOptions
    EditSchemaGenerationConfig:
      type: object
      properties:
        inputSchema:
          $ref: '#/components/schemas/EditRootJSON'
          description: >
            Optional existing edit schema to map onto the detected form fields. When provided, the response may include
            a `mappingResult`

            that shows which input schema paths matched the generated form fields.
        instructions:
          type: string
          description: Custom instructions provided for schema generation.
        advancedOptions:
          $ref: '#/components/schemas/EditSchemaGenerationConfigAdvancedOptions'
          description: Advanced options for schema generation.
      description: Configuration options for edit schema generation.
      title: EditSchemaGenerationConfig
    EditTemplate:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EditTemplateObject'
          description: The type of object. Will always be `"edit_template"`.
        id:
          type: string
          description: |
            A unique identifier for the edit template.

            Example: `"edt_xK9mLPqRtN3vS8wF5hB2cQ"`
        name:
          type: string
          description: The name of the edit template.
        description:
          type:
            - string
            - 'null'
          description: The description of the edit template, if one was provided.
        file:
          $ref: '#/components/schemas/FileSummary'
          description: The source file associated with this edit template.
        config:
          $ref: '#/components/schemas/EditConfig'
          description: Default edit configuration saved on the template. Empty when no edit configuration was saved.
        schemaConfig:
          oneOf:
            - $ref: '#/components/schemas/EditSchemaGenerationConfig'
            - type: 'null'
          description: Optional schema generation configuration saved on the template.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - name
        - description
        - file
        - config
        - schemaConfig
        - createdAt
        - updatedAt
      description: >
        A saved edit template. Edit templates contain a source file, default edit configuration, and optional schema
        generation configuration that can be reused for edit runs.
      title: EditTemplate
    EditSchemasGeneratePostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to analyze. Files can be provided as a URL or an Extend file ID.
      title: EditSchemasGeneratePostRequestBodyContentApplicationJsonSchemaFile
    EditSchemaGenerationMappingMatch:
      type: object
      properties:
        inputPath:
          type: string
          description: The path from the provided `inputSchema`.
        formFieldKey:
          type: string
          description: The detected form field key matched to the input path.
      required:
        - inputPath
        - formFieldKey
      description: A successful mapping between an input schema path and a detected form field.
      title: EditSchemaGenerationMappingMatch
    EditSchemaGenerationMappingResult:
      type: object
      properties:
        matches:
          type: array
          items:
            $ref: '#/components/schemas/EditSchemaGenerationMappingMatch'
          description: Fields from the input schema that were successfully mapped to detected form fields.
        unmatchedInputPaths:
          type: array
          items:
            type: string
          description: Input schema field paths that could not be matched to the form.
        unusedFormFieldKeys:
          type: array
          items:
            type: string
          description: Detected form field keys that were not used by the input schema mapping.
      required:
        - matches
        - unmatchedInputPaths
        - unusedFormFieldKeys
      description: Mapping information between an input schema and the detected form fields.
      title: EditSchemaGenerationMappingResult
    EditSchemaGenerationResponse:
      type: object
      properties:
        schema:
          $ref: '#/components/schemas/EditRootJSON'
          description: >-
            The final generated schema after mapping. If no input schema was provided this will be the same as the
            annotatedSchema.
        annotatedSchema:
          oneOf:
            - $ref: '#/components/schemas/EditRootJSON'
            - type: 'null'
          description: The original schema that was detected and annotated from the file.
        mappingResult:
          oneOf:
            - $ref: '#/components/schemas/EditSchemaGenerationMappingResult'
            - type: 'null'
          description: Mapping information between `inputSchema` paths and detected form fields when an input schema was provided.
      required:
        - schema
        - annotatedSchema
        - mappingResult
      description: The generated schema and optional mapping metadata.
      title: EditSchemaGenerationResponse
    DetectFormPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The PDF form to analyze. Files can be provided as a URL or an Extend file ID.
      title: DetectFormPostRequestBodyContentApplicationJsonSchemaFile
    FormDetectionRunObject:
      type: string
      enum:
        - form_detection_run
      description: The type of object. Will always be `"form_detection_run"`.
      title: FormDetectionRunObject
    FormDetectionRunStatus:
      type: string
      enum:
        - PROCESSING
        - PROCESSED
        - FAILED
      description: |
        The status of the form detection run:
        * `"PROCESSING"` - The form is still being analyzed
        * `"PROCESSED"` - Form detection completed successfully
        * `"FAILED"` - Form detection failed (see `failureReason` for details)
      title: FormDetectionRunStatus
    FormDetectionRunMetrics:
      type: object
      properties:
        processingTimeMs:
          type: number
          format: double
          description: Total processing time in milliseconds.
        pageCount:
          type: integer
          description: The number of pages in the document.
        fieldCount:
          type: integer
          description: The total number of fields in the generated schema.
        fieldsDetectedCount:
          type: integer
          description: The number of fields that were automatically detected.
        fieldsAnnotatedCount:
          type: integer
          description: The number of fields annotated with positions.
        fieldDetectionTimeMs:
          type: number
          format: double
          description: The time taken to detect fields, in milliseconds.
        fieldAnnotationTimeMs:
          type: number
          format: double
          description: The time taken to annotate field positions, in milliseconds.
      required:
        - processingTimeMs
        - pageCount
        - fieldCount
        - fieldsDetectedCount
        - fieldsAnnotatedCount
        - fieldDetectionTimeMs
        - fieldAnnotationTimeMs
      description: |
        Metrics about the form detection process.

        **Availability:** Present when `status` is `"PROCESSED"`.
      title: FormDetectionRunMetrics
    FormDetectionRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/FormDetectionRunObject'
          description: The type of object. Will always be `"form_detection_run"`.
        id:
          type: string
          description: |
            A unique identifier for the form detection run.

            Example: `"sgr_xK9mLPqRtN3vS8wF5hB2cQ"`
        file:
          $ref: '#/components/schemas/FileSummary'
          description: The input PDF submitted for form detection.
        status:
          $ref: '#/components/schemas/FormDetectionRunStatus'
          description: |
            The status of the form detection run:
            * `"PROCESSING"` - The form is still being analyzed
            * `"PROCESSED"` - Form detection completed successfully
            * `"FAILED"` - Form detection failed (see `failureReason` for details)
        failureReason:
          type:
            - string
            - 'null'
          description: >
            The reason for failure.


            **Availability:** Present when `status` is `"FAILED"`.


            Possible values include:

            * `UNABLE_TO_DOWNLOAD_FILE`

            * `FILE_TYPE_NOT_SUPPORTED`

            * `FILE_SIZE_TOO_LARGE`

            * `CORRUPT_FILE`

            * `FIELD_DETECTION_ERROR`

            * `PASSWORD_PROTECTED_FILE`

            * `FAILED_TO_CONVERT_TO_PDF`

            * `EMPTY_SCHEMA`

            * `INTERNAL_ERROR`

            * `INVALID_OPTIONS`

            * `OUT_OF_CREDITS`


            **Note:** Additional failure reasons may be added in the future. Your integration should handle unknown
            values gracefully.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A human-readable description of the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        config:
          $ref: '#/components/schemas/EditSchemaGenerationConfig'
          description: The configuration used for this form detection run, including any default values that were applied.
        output:
          oneOf:
            - $ref: '#/components/schemas/EditSchemaGenerationResponse'
            - type: 'null'
          description: |
            The detected schema and optional mapping metadata.

            **Availability:** Present when `status` is `"PROCESSED"`.
        metrics:
          oneOf:
            - $ref: '#/components/schemas/FormDetectionRunMetrics'
            - type: 'null'
          description: |
            Metrics about the form detection process.

            **Availability:** Present when `status` is `"PROCESSED"`.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: |
            Usage credits consumed by this form detection run.
      required:
        - object
        - id
        - file
        - status
        - failureReason
        - failureMessage
        - config
        - output
        - metrics
        - usage
      description: A run that detects fields in a PDF form and generates an edit schema.
      title: FormDetectionRun
    FormDetectionRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The PDF form to analyze. Files can be provided as a URL or an Extend file ID.
      title: FormDetectionRunsPostRequestBodyContentApplicationJsonSchemaFile
    WorkflowReference:
      type: object
      properties:
        id:
          type: string
          description: |
            The ID of the workflow.

            Example: `"workflow_BMdfq_yWM3sT-ZzvCnA3f"`
        version:
          type: string
          description: >
            An optional version of the workflow that files will be run through. This number can be found when viewing
            the workflow on the Extend platform. When a version number is not supplied, the most recent published
            version of the workflow will be used. If no published versions exist, the draft version will be used. To run
            the `"draft"` version of a workflow, use `"draft"` as the version.


            Examples:

            - `"3"` - Run version 3 of the workflow

            - `"draft"` - Run the draft version of the workflow
      required:
        - id
      description: The workflow to run.
      title: WorkflowReference
    WorkflowRunsPostRequestBodyContentApplicationJsonSchemaFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: >-
        The file to be processed. Supported file types can be found
        [here](https://docs.extend.ai/2026-02-09/general/supported-file-types). Files can be provided as a URL, an
        Extend file ID, or raw text. Mutually exclusive with `package` — provide one or the other. If you wish to
        process many files as independent runs, consider using the [Batch Run
        Workflow](https://docs.extend.ai/2026-02-09/api-reference/endpoints/workflow/batch-create-workflow-runs)
        endpoint.
      title: WorkflowRunsPostRequestBodyContentApplicationJsonSchemaFile
    WorkflowRunPackageFilesItems:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      title: WorkflowRunPackageFilesItems
    WorkflowRunPackage:
      type: object
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowRunPackageFilesItems'
          description: >
            The files to process. Each entry can be a URL or an existing Extend file ID. Raw text and base64 inputs are
            not supported for package runs.


            Duplicate file IDs and duplicate URLs are rejected — each file may appear only once. A URL and a file ID are
            never treated as duplicates of each other, even if they resolve to the same document.
      required:
        - files
      description: >
        An ordered collection of files to process together in a single workflow run. Use this instead of `file` when a
        set of documents should be treated as one package — every file is ingested up front, and the workflow's steps
        reason over the full set, producing a single `WorkflowRun`.


        Exactly one of `file` or `package` must be provided on a request — they are mutually exclusive.
      title: WorkflowRunPackage
    ProvidedExtractOutput:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/JsonObject'
          description: >-
            The expected extraction output, provided as a JSON object that conforms to the schema defined in the
            extractor config
      description: >
        The expected extraction output.


        **Important:** Make sure to nest the JSON object conforming to the schema in a `value` object, and include all
        properties defined in the schema.
      title: ProvidedExtractOutput
    ProvidedClassifyOutput:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this classification (defined in the classifier config)
        type:
          type: string
          description: The type of classification (defined in the classifier config)
      required:
        - id
        - type
      title: ProvidedClassifyOutput
    ProvidedSplitOutputSplitsItems:
      type: object
      properties:
        classificationId:
          type: string
          description: ID of the classification type (defined in the splitter config)
        type:
          type: string
          description: The type of the split document (defined in the splitter config), corresponds to the classificationId
        startPage:
          type: integer
          description: The start page of the split document
        endPage:
          type: integer
          description: The end page of the split document
      required:
        - classificationId
        - type
        - startPage
        - endPage
      title: ProvidedSplitOutputSplitsItems
    ProvidedSplitOutput:
      type: object
      properties:
        splits:
          type: array
          items:
            $ref: '#/components/schemas/ProvidedSplitOutputSplitsItems'
      required:
        - splits
      title: ProvidedSplitOutput
    ProvidedProcessorOutput:
      oneOf:
        - $ref: '#/components/schemas/ProvidedExtractOutput'
        - $ref: '#/components/schemas/ProvidedClassifyOutput'
        - $ref: '#/components/schemas/ProvidedSplitOutput'
      title: ProvidedProcessorOutput
    WorkflowRunsPostRequestBodyContentApplicationJsonSchemaOutputsItems:
      type: object
      properties:
        processorId:
          type: string
          description: |
            The ID of the extractor, classifier, or splitter that the output is associated with.
            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        output:
          $ref: '#/components/schemas/ProvidedProcessorOutput'
          description: >
            The output to be used for the workflow run. The structure will depend on the processor type. More details
            can be found on the "output type" page for the corresponding processor, in the guides section.
      required:
        - processorId
        - output
      title: WorkflowRunsPostRequestBodyContentApplicationJsonSchemaOutputsItems
    RunSecrets:
      type: object
      properties: {}
      description: An optional object containing secrets to be used by processors within the workflow for this specific run.
      title: RunSecrets
    WorkflowRunObject:
      type: string
      enum:
        - workflow_run
      description: |
        The type of object. In this case, it will always be `"workflow_run"`.
      title: WorkflowRunObject
    WorkflowSummaryObject:
      type: string
      enum:
        - workflow
      description: The type of object. Always `"workflow"`.
      title: WorkflowSummaryObject
    WorkflowSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowSummaryObject'
          description: The type of object. Always `"workflow"`.
        id:
          type: string
          description: The ID of the workflow.
        name:
          type: string
          description: The name of the workflow.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
        - createdBy
      description: A summary representation of a workflow.
      title: WorkflowSummary
    WorkflowVersionSummaryObject:
      type: string
      enum:
        - workflow_version
      description: The type of object. Always `"workflow_version"`.
      title: WorkflowVersionSummaryObject
    WorkflowVersionSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowVersionSummaryObject'
          description: The type of object. Always `"workflow_version"`.
        id:
          type: string
          description: The ID of the workflow version.
        version:
          type: string
          description: |
            The version number as a string, or `"draft"` for the draft version.
        name:
          type:
            - string
            - 'null'
          description: The name of the workflow version.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - version
        - name
        - createdAt
        - createdBy
      description: A summary representation of a workflow version (without steps).
      title: WorkflowVersionSummary
    WorkflowRunStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - NEEDS_REVIEW
        - REJECTED
        - PROCESSED
        - FAILED
        - CANCELLED
        - CANCELLING
      description: |
        The status of a workflow run:
        * `"PENDING"` - The workflow run is waiting to be processed
        * `"PROCESSING"` - The workflow run is currently processing
        * `"NEEDS_REVIEW"` - The workflow run requires manual review
        * `"REJECTED"` - The workflow run was rejected during review
        * `"PROCESSED"` - The workflow run completed successfully
        * `"FAILED"` - The workflow run encountered an error
        * `"CANCELLED"` - The workflow run was cancelled
        * `"CANCELLING"` - The workflow run is being cancelled
      title: WorkflowRunStatus
    ParseStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: ParseStepRunObject
    ParseStepRunStepType:
      type: string
      enum:
        - PARSE
      description: The type of workflow step. Will always be `"PARSE"` for this step run type.
      title: ParseStepRunStepType
    ParseStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: ParseStepRunStatus
    ParseStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: ParseStepRunStepObject
    ParseStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/ParseStepRunStepType'
          description: The type of workflow step. Will always be `"PARSE"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: ParseStepRunStep
    ParseResult:
      type: object
      properties:
        parseRun:
          $ref: '#/components/schemas/ParseRun'
          description: The parse run that was executed.
      required:
        - parseRun
      description: The result of a parse step.
      title: ParseResult
    ParseStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/ParseStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/ParseStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/ParseStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/ParseResult'
            - type: 'null'
          description: >
            The result of this parse step. Currently, `result` is always present for returned step runs. It is nullable
            to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: ParseStepRun
    ExtractStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: ExtractStepRunObject
    ExtractStepRunStepType:
      type: string
      enum:
        - EXTRACT
      description: The type of workflow step. Will always be `"EXTRACT"` for this step run type.
      title: ExtractStepRunStepType
    ExtractStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: ExtractStepRunStatus
    ExtractStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: ExtractStepRunStepObject
    ExtractStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/ExtractStepRunStepType'
          description: The type of workflow step. Will always be `"EXTRACT"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: ExtractStepRunStep
    ExtractResult:
      type: object
      properties:
        extractRun:
          $ref: '#/components/schemas/ExtractRun'
          description: The extract run that was executed.
      required:
        - extractRun
      description: The result of an extract step.
      title: ExtractResult
    ExtractStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExtractStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/ExtractStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/ExtractStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/ExtractStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/ExtractResult'
            - type: 'null'
          description: >
            The result of this extract step. Currently, `result` is always present for returned step runs. It is
            nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: ExtractStepRun
    ClassifyStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: ClassifyStepRunObject
    ClassifyStepRunStepType:
      type: string
      enum:
        - CLASSIFY
      description: The type of workflow step. Will always be `"CLASSIFY"` for this step run type.
      title: ClassifyStepRunStepType
    ClassifyStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: ClassifyStepRunStatus
    ClassifyStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: ClassifyStepRunStepObject
    ClassifyStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifyStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/ClassifyStepRunStepType'
          description: The type of workflow step. Will always be `"CLASSIFY"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: ClassifyStepRunStep
    ClassifyResult:
      type: object
      properties:
        classifyRun:
          $ref: '#/components/schemas/ClassifyRun'
          description: The classify run that was executed.
      required:
        - classifyRun
      description: The result of a classify step.
      title: ClassifyResult
    ClassifyStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ClassifyStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/ClassifyStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/ClassifyStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/ClassifyStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/ClassifyResult'
            - type: 'null'
          description: >
            The result of this classify step. Currently, `result` is always present for returned step runs. It is
            nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: ClassifyStepRun
    SplitStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: SplitStepRunObject
    SplitStepRunStepType:
      type: string
      enum:
        - SPLIT
      description: The type of workflow step. Will always be `"SPLIT"` for this step run type.
      title: SplitStepRunStepType
    SplitStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: SplitStepRunStatus
    SplitStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: SplitStepRunStepObject
    SplitStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/SplitStepRunStepType'
          description: The type of workflow step. Will always be `"SPLIT"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: SplitStepRunStep
    SplitResult:
      type: object
      properties:
        splitRun:
          $ref: '#/components/schemas/SplitRun'
          description: The split run that was executed.
      required:
        - splitRun
      description: The result of a split step.
      title: SplitResult
    SplitStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/SplitStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/SplitStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/SplitStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/SplitStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/SplitResult'
            - type: 'null'
          description: >
            The result of this split step. Currently, `result` is always present for returned step runs. It is nullable
            to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: SplitStepRun
    MergeExtractStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: MergeExtractStepRunObject
    MergeExtractStepRunStepType:
      type: string
      enum:
        - MERGE_EXTRACT
      description: The type of workflow step. Will always be `"MERGE_EXTRACT"` for this step run type.
      title: MergeExtractStepRunStepType
    MergeExtractStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: MergeExtractStepRunStatus
    MergeExtractStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: MergeExtractStepRunStepObject
    MergeExtractStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/MergeExtractStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/MergeExtractStepRunStepType'
          description: The type of workflow step. Will always be `"MERGE_EXTRACT"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: MergeExtractStepRunStep
    MergeExtractResultMergedExtractorsItems:
      type: object
      properties:
        id:
          type: string
          description: The ID of the extractor that was merged.
        versionId:
          type: string
          description: The ID of the extractor version that was merged.
        name:
          type: string
          description: The name of the extractor that was merged.
      required:
        - id
        - versionId
        - name
      title: MergeExtractResultMergedExtractorsItems
    MergeExtractResult:
      type: object
      properties:
        mergedExtractors:
          type: array
          items:
            $ref: '#/components/schemas/MergeExtractResultMergedExtractorsItems'
          description: The extractors that were merged to produce the output.
        extractRun:
          $ref: '#/components/schemas/ExtractRun'
          description: |
            The resulting extract run containing the merged output.
      required:
        - mergedExtractors
        - extractRun
      description: |
        The result of a merge extract step, which combines outputs from multiple extraction runs into a single output.
      title: MergeExtractResult
    MergeExtractStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/MergeExtractStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/MergeExtractStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/MergeExtractStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/MergeExtractStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/MergeExtractResult'
            - type: 'null'
          description: >
            The result of this merge extract step. Currently, `result` is always present for returned step runs. It is
            nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: MergeExtractStepRun
    ConditionalExtractStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: ConditionalExtractStepRunObject
    ConditionalExtractStepRunStepType:
      type: string
      enum:
        - CONDITIONAL_EXTRACT
      description: The type of workflow step. Will always be `"CONDITIONAL_EXTRACT"` for this step run type.
      title: ConditionalExtractStepRunStepType
    ConditionalExtractStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: ConditionalExtractStepRunStatus
    ConditionalExtractStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: ConditionalExtractStepRunStepObject
    ConditionalExtractStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ConditionalExtractStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/ConditionalExtractStepRunStepType'
          description: The type of workflow step. Will always be `"CONDITIONAL_EXTRACT"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: ConditionalExtractStepRunStep
    ConditionalExtractResult:
      type: object
      properties:
        extractRun:
          $ref: '#/components/schemas/ExtractRun'
          description: The extract run that was executed based on the matched rule.
      required:
        - extractRun
      description: The result of a conditional extract step, which routes to different extractors based on rules.
      title: ConditionalExtractResult
    ConditionalExtractStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ConditionalExtractStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/ConditionalExtractStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/ConditionalExtractStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/ConditionalExtractStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/ConditionalExtractResult'
            - type: 'null'
          description: >
            The result of this conditional extract step. Currently, `result` is always present for returned step runs.
            It is nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: ConditionalExtractStepRun
    RuleValidationStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: RuleValidationStepRunObject
    RuleValidationStepRunStepType:
      type: string
      enum:
        - RULE_VALIDATION
      description: The type of workflow step. Will always be `"RULE_VALIDATION"` for this step run type.
      title: RuleValidationStepRunStepType
    RuleValidationStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: RuleValidationStepRunStatus
    RuleValidationStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: RuleValidationStepRunStepObject
    RuleValidationStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/RuleValidationStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/RuleValidationStepRunStepType'
          description: The type of workflow step. Will always be `"RULE_VALIDATION"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: RuleValidationStepRunStep
    RuleValidationResultRulesItemsFailureReason:
      type: string
      enum:
        - RULE_FAILED
        - PARSE_ERROR
        - VALUE_ERROR
      description: |
        If the validation rule is not valid, then this describes why the rule failed.
        * `"RULE_FAILED"` - The formula evaluated to `false` or `null`
        * `"PARSE_ERROR"` - The formula could not be parsed
        * `"VALUE_ERROR"` - An error occurred while evaluating the formula
      title: RuleValidationResultRulesItemsFailureReason
    RuleValidationResultRulesItems:
      type: object
      properties:
        name:
          type: string
          description: The name of the validation rule.
        valid:
          type: boolean
          description: >
            Indicates whether this validation rule passed or not. This field will be `true` only if the formula
            evaluates to `true`. If the rule's formula is array valued, then this field will only be `true` if the
            formula evaluates to `true` for every item in the array.
        validArray:
          type: array
          items:
            type: boolean
          description: >
            Present if the validation rule's formula is array valued. This field contains the formula's evaluated result
            for every item in the array.
        failureReason:
          $ref: '#/components/schemas/RuleValidationResultRulesItemsFailureReason'
          description: |
            If the validation rule is not valid, then this describes why the rule failed.
            * `"RULE_FAILED"` - The formula evaluated to `false` or `null`
            * `"PARSE_ERROR"` - The formula could not be parsed
            * `"VALUE_ERROR"` - An error occurred while evaluating the formula
        error:
          type: string
          description: |
            If the `failureReason` is `PARSE_ERROR` or `VALUE_ERROR`, then this field contains the error's details.
      required:
        - name
        - valid
      title: RuleValidationResultRulesItems
    RuleValidationResult:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RuleValidationResultRulesItems'
          description: The list of validation rules and their results.
        allPassed:
          type: boolean
          description: Indicates whether all validation rules passed.
      required:
        - rules
        - allPassed
      description: The result of a rule validation step.
      title: RuleValidationResult
    RuleValidationStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/RuleValidationStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/RuleValidationStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/RuleValidationStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/RuleValidationStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/RuleValidationResult'
            - type: 'null'
          description: >
            The result of this rule validation step. Currently, `result` is always present for returned step runs. It is
            nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: RuleValidationStepRun
    ExternalDataValidationStepRunObject:
      type: string
      enum:
        - workflow_step_run
      description: |
        The type of object. In this case, it will always be `"workflow_step_run"`.
      title: ExternalDataValidationStepRunObject
    ExternalDataValidationStepRunStepType:
      type: string
      enum:
        - EXTERNAL_DATA_VALIDATION
      description: The type of workflow step. Will always be `"EXTERNAL_DATA_VALIDATION"` for this step run type.
      title: ExternalDataValidationStepRunStepType
    ExternalDataValidationStepRunStatus:
      type: string
      enum:
        - PENDING
        - WAITING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of the workflow step run:
        * `"PENDING"` - The step run is waiting to be executed
        * `"WAITING"` - The step run is waiting for a dependency to complete
        * `"PROCESSING"` - The step run is currently executing
        * `"PROCESSED"` - The step run completed successfully
        * `"FAILED"` - The step run encountered an error
        * `"CANCELLED"` - The step run was cancelled
      title: ExternalDataValidationStepRunStatus
    ExternalDataValidationStepRunStepObject:
      type: string
      enum:
        - workflow_step
      description: |
        The type of object. In this case, it will always be `"workflow_step"`.
      title: ExternalDataValidationStepRunStepObject
    ExternalDataValidationStepRunStep:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExternalDataValidationStepRunStepObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step"`.
        id:
          type: string
          description: >
            **Deprecated:** This ID is not consistent across workflow versions. This field will be removed in a future
            API version.


            The ID of the workflow step.


            Example: `"step_xKm9pNv3qWsY_jL2tR5Dh"`
        name:
          type: string
          description: |
            The name of the workflow step.

            Example: `"Validate Invoice Total"`
        type:
          $ref: '#/components/schemas/ExternalDataValidationStepRunStepType'
          description: The type of workflow step. Will always be `"EXTERNAL_DATA_VALIDATION"` for this step run type.
      required:
        - object
        - id
        - name
        - type
      description: Base properties shared by all workflow step types.
      title: ExternalDataValidationStepRunStep
    ExternalDataValidationResultResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code returned by the external endpoint.
        data:
          $ref: '#/components/schemas/JsonObject'
          description: The JSON response body returned by the external endpoint.
      required:
        - status
        - data
      description: The response from the external validation endpoint.
      title: ExternalDataValidationResultResponse
    ExternalDataValidationResult:
      type: object
      properties:
        response:
          $ref: '#/components/schemas/ExternalDataValidationResultResponse'
          description: The response from the external validation endpoint.
      required:
        - response
      description: The result of an external data validation step.
      title: ExternalDataValidationResult
    ExternalDataValidationStepRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ExternalDataValidationStepRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_step_run"`.
        id:
          type: string
          description: |
            The ID of the workflow step run.

            Example: `"workflow_step_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflowRunId:
          type: string
          description: |
            The ID of the parent workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        stepType:
          $ref: '#/components/schemas/ExternalDataValidationStepRunStepType'
          description: |
            The type discriminator for this workflow step run, mirrors `step.type`.
        status:
          $ref: '#/components/schemas/ExternalDataValidationStepRunStatus'
          description: |
            The status of the workflow step run:
            * `"PENDING"` - The step run is waiting to be executed
            * `"WAITING"` - The step run is waiting for a dependency to complete
            * `"PROCESSING"` - The step run is currently executing
            * `"PROCESSED"` - The step run completed successfully
            * `"FAILED"` - The step run encountered an error
            * `"CANCELLED"` - The step run was cancelled
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: |
            The files associated with this step run.
        step:
          $ref: '#/components/schemas/ExternalDataValidationStepRunStep'
        result:
          oneOf:
            - $ref: '#/components/schemas/ExternalDataValidationResult'
            - type: 'null'
          description: >
            The result of this external data validation step. Currently, `result` is always present for returned step
            runs. It is nullable to allow for future support of returning step runs with non-successful statuses.
      required:
        - object
        - id
        - workflowRunId
        - stepType
        - status
        - files
        - step
        - result
      description: Base properties shared by all step run types.
      title: ExternalDataValidationStepRun
    StepRun:
      oneOf:
        - $ref: '#/components/schemas/ParseStepRun'
        - $ref: '#/components/schemas/ExtractStepRun'
        - $ref: '#/components/schemas/ClassifyStepRun'
        - $ref: '#/components/schemas/SplitStepRun'
        - $ref: '#/components/schemas/MergeExtractStepRun'
        - $ref: '#/components/schemas/ConditionalExtractStepRun'
        - $ref: '#/components/schemas/RuleValidationStepRun'
        - $ref: '#/components/schemas/ExternalDataValidationStepRun'
      description: |
        A workflow step run. The shape of the `result` field depends on the `stepType`.
      title: StepRun
    WorkflowRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowRunObject'
          description: |
            The type of object. In this case, it will always be `"workflow_run"`.
        id:
          type: string
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        workflow:
          $ref: '#/components/schemas/WorkflowSummary'
        workflowVersion:
          $ref: '#/components/schemas/WorkflowVersionSummary'
        dashboardUrl:
          type: string
          description: |
            A URL to view this workflow run in the Extend dashboard.

            Example: `"https://dashboard.extend.ai/workflows/workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        status:
          $ref: '#/components/schemas/WorkflowRunStatus'
        metadata:
          $ref: '#/components/schemas/RunMetadata'
          description: |
            The metadata that was passed in when running the Workflow.
        batchId:
          type:
            - string
            - 'null'
          description: >
            The batch ID of the WorkflowRun. If this WorkflowRun was created as part of a batch of files, all runs in
            that batch will have the same batch ID.


            Example: `"batch_7Ws31-F5"`
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
        failureReason:
          type:
            - string
            - 'null'
          description: |
            The reason why the workflow run failed. Will only be included if the workflow run status is "FAILED".
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A more detailed message about the failure. Will only be included if the workflow run status is "FAILED".
        initialRunAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) at which the workflow run was created. Will follow the RFC 3339 format. Will be null if
            the run hasn't started yet.


            Example: `"2025-04-28T17:01:39.285Z"`
        reviewedByUser:
          type:
            - string
            - 'null'
          description: >
            The email address of the person who reviewed the workflow run. Will be null if the workflow run has not been
            reviewed.


            Example: `"jane.doe@example.com"`
        reviewed:
          type: boolean
          description: |
            Whether the workflow run has been reviewed.
        rejectionNote:
          type:
            - string
            - 'null'
          description: |
            A note that is added if a workflow run is rejected.

            Example: `"Invalid invoice format"`
        reviewedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) at which the workflow run was reviewed. Will follow the RFC 3339 format. Will be null if
            the workflow run has not been reviewed.


            Example: `"2024-03-21T16:45:00Z"`
        startTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) at which the workflow run started executing. This will always be after the `initialRunAt`
            time. Will follow the RFC 3339 format. Will be null if the workflow run has not started executing.


            Example: `"2024-03-21T15:30:00Z"`
        endTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) that the workflow finished executing. Will follow the RFC 3339 format. Will be null if the
            workflow run has not finished executing.


            Example: `"2024-03-21T15:35:00Z"`
        stepRuns:
          type: array
          items:
            $ref: '#/components/schemas/StepRun'
          description: >
            An array of WorkflowStepRun objects. Each WorkflowStepRun represents a single run of a WorkflowStep and
            contains details about the step's execution and result.
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsage'
            - type: 'null'
          description: >
            Usage credits consumed by this workflow run, including a breakdown of every contributing child run.


            **Availability:** Will not be returned for runs created before October 7, 2025 or for customers on legacy
            billing systems.
      required:
        - object
        - id
        - workflow
        - workflowVersion
        - dashboardUrl
        - status
        - metadata
        - batchId
        - files
        - failureReason
        - failureMessage
        - initialRunAt
        - reviewedByUser
        - reviewed
        - rejectionNote
        - reviewedAt
        - startTime
        - endTime
        - stepRuns
        - usage
      description: Workflow run object.
      title: WorkflowRun
    WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to be processed. Files can be provided as a URL, an Extend file ID, or raw text.
      title: WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile
    WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems:
      type: object
      properties:
        file:
          $ref: '#/components/schemas/WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile'
          description: The file to be processed. Files can be provided as a URL, an Extend file ID, or raw text.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
        secrets:
          $ref: '#/components/schemas/RunSecrets'
      required:
        - file
      title: WorkflowRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems
    workflowRuns_createBatch_Response_200:
      type: object
      properties:
        batchId:
          type: string
          description: >-
            A unique identifier for the submitted batch. This ID can be used to correlate the workflow runs created by
            this request. You can find this `batchId` associated with individual runs when listing workflow runs or in
            webhook payloads.
      required:
        - batchId
      title: workflowRuns_createBatch_Response_200
    workflowRuns_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted workflow run
      required:
        - id
      title: workflowRuns_delete_Response_200
    WorkflowRunsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: WorkflowRunsGetResponsesContentApplicationJsonSchemaObject
    WorkflowRunSummaryObject:
      type: string
      enum:
        - workflow_run
      description: |
        The type of object. In this case, it will always be `"workflow_run"`.
      title: WorkflowRunSummaryObject
    WorkflowRunSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowRunSummaryObject'
          description: |
            The type of object. In this case, it will always be `"workflow_run"`.
        id:
          type: string
          description: |
            The ID of the workflow run.

            Example: `"workflow_run_Zk9mNP12Qw4-yTv8BdR3H"`
        status:
          $ref: '#/components/schemas/WorkflowRunStatus'
        workflow:
          $ref: '#/components/schemas/WorkflowSummary'
        workflowVersion:
          $ref: '#/components/schemas/WorkflowVersionSummary'
        dashboardUrl:
          type: string
          description: |
            A URL to view this workflow run in the Extend dashboard.

            Example: `"https://dashboard.extend.ai/workflows/workflow_run_xKm9pNv3qWsY_jL2tR5Dh"`
        reviewedByUser:
          type:
            - string
            - 'null'
          description: >
            The user of the person who reviewed the workflow run. Will be null if the workflow run has not been
            reviewed.


            Example: `"jane.doe@example.com"`
        reviewedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) at which the workflow run was reviewed. Will follow the RFC 3339 format. Will be null if
            the workflow run has not been reviewed.


            Example: `"2024-03-21T16:45:00Z"`
        initialRunAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The time (in UTC) at which the workflow was initially created. Will follow the RFC 3339 format. Will be null
            if the run hasn't started yet.


            Example: `"2024-03-21T15:30:00Z"`
        startTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The start time (in UTC) that the workflow actually started executing. This occurs after the `initialRunAt`
            time. Will follow the RFC 3339 format. Will be null if not started.


            Example: `"2024-03-21T15:30:00Z"`
        endTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            The end time (in UTC) that the workflow finished. Will follow the RFC 3339 format. Will be null if not
            finished.


            Example: `"2024-03-21T15:35:00Z"`
        batchId:
          type:
            - string
            - 'null'
          description: >
            The batch ID of the workflow run. If that workflow run was created from a batch of files, all runs in that
            batch will have the same batch ID.


            Example: `"batch_7Ws31-F5"`
        rejectionNote:
          type:
            - string
            - 'null'
          description: |
            The note that was added when the workflow run was rejected.

            Example: `"Invalid invoice format"`
        files:
          type: array
          items:
            $ref: '#/components/schemas/FileSummary'
          description: >
            The input files that this workflow run was executed on. Provided directly on the list response so you don't
            need to fetch each run individually to inspect its input.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        usage:
          oneOf:
            - $ref: '#/components/schemas/RunUsageSummary'
            - type: 'null'
          description: >
            Usage credits consumed by this workflow run. Omits `breakdown` — fetch the full workflow run by id to see
            the per-line items for every contributing child run.


            **Availability:** Will not be returned for runs created before October 7, 2025 or for customers on legacy
            billing systems.
      required:
        - object
        - id
        - status
        - workflow
        - workflowVersion
        - dashboardUrl
        - reviewedByUser
        - reviewedAt
        - initialRunAt
        - startTime
        - endTime
        - batchId
        - rejectionNote
        - files
        - createdAt
        - updatedAt
        - usage
      title: WorkflowRunSummary
    workflowRuns_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowRunsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: workflowRuns_list_Response_200
    TriggerStepDefinitionType:
      type: string
      enum:
        - TRIGGER
      title: TriggerStepDefinitionType
    SimpleNextEntry:
      type: object
      properties:
        step:
          type: string
          description: The name of the target step.
      required:
        - step
      description: A next entry for non-branching steps. Routes to the target step unconditionally.
      title: SimpleNextEntry
    TriggerStepDefinition:
      type: object
      properties:
        name:
          type: string
          description: Unique name for this step.
        type:
          $ref: '#/components/schemas/TriggerStepDefinitionType'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
          description: Must contain exactly one downstream step, and that step should be the workflow's `PARSE` step.
      required:
        - name
        - type
      description: >
        The entry point of the workflow. Every workflow must have exactly one trigger step, and it must route to exactly
        one `PARSE` step.


        See the [Trigger step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#trigger).
      title: TriggerStepDefinition
    ParseStepDefinitionType:
      type: string
      enum:
        - PARSE
      title: ParseStepDefinitionType
    ParseStepDefinitionConfig:
      type: object
      properties:
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
      title: ParseStepDefinitionConfig
    ParseStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ParseStepDefinitionType'
        config:
          $ref: '#/components/schemas/ParseStepDefinitionConfig'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
      required:
        - name
        - type
      description: >
        Parses file content (OCR, text extraction). Every workflow should have exactly one parse step immediately after
        the trigger.


        See the [Parse step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#parse).
      title: ParseStepDefinition
    ExtractStepDefinitionType:
      type: string
      enum:
        - EXTRACT
      title: ExtractStepDefinitionType
    ExtractorRef:
      type: object
      properties:
        id:
          type: string
          description: The extractor ID.
        version:
          type: string
          description: >
            The extractor version to use: `"latest"` (most recent published version), `"draft"`, or a specific semver
            string (e.g. `"1.0"`).
      required:
        - id
        - version
      description: A reference to an extractor.
      title: ExtractorRef
    WorkflowInlineExtractConfig:
      type: object
      properties:
        baseProcessor:
          $ref: '#/components/schemas/ExtractBaseProcessor'
          default: extraction_performance
        baseVersion:
          type: string
          description: >-
            The version of the `"extraction_performance"` or `"extraction_light"` processor to use. If not provided, the
            latest stable version for the selected `baseProcessor` will be used automatically. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        extractionRules:
          type: string
          description: Custom rules to guide the extraction process in natural language.
        schema:
          $ref: '#/components/schemas/JsonObject'
          description: >
            JSON Schema definition of the data to extract. Required for inline workflow configs.


            See the [JSON Schema guide](https://docs.extend.ai/2026-02-09/extraction/schema) for details and examples of
            schema configuration.
        advancedOptions:
          $ref: '#/components/schemas/ExtractAdvancedOptions'
          description: Advanced configuration options.
        parseConfig:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - schema
      description: >
        An inline extractor configuration for an `EXTRACT` workflow step. Same shape as the `config` accepted by [Create
        Extract Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/extract/create-extract-run), except
        `schema` is required — schema-less extraction (inferring the schema from the file at run time) is not supported
        in workflows.
      title: WorkflowInlineExtractConfig
    ExtractStepDefinitionConfig:
      type: object
      properties:
        extractor:
          $ref: '#/components/schemas/ExtractorRef'
          description: Reference to a saved extractor. Provide either this or `extractorConfig`, not both.
        extractorConfig:
          $ref: '#/components/schemas/WorkflowInlineExtractConfig'
          description: >
            Inline extractor configuration. Provide either this or `extractor`, not both. Unlike the run endpoints,
            `schema` is required — schema-less extraction is not supported in workflows.


            Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is
            involved).
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.


        When present, must contain exactly one of `extractor` (saved processor reference) or `extractorConfig` (inline
        configuration) — not both.
      title: ExtractStepDefinitionConfig
    ExtractStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ExtractStepDefinitionType'
        config:
          $ref: '#/components/schemas/ExtractStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.


            When present, must contain exactly one of `extractor` (saved processor reference) or `extractorConfig`
            (inline configuration) — not both.
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
          description: Can only be set when `config` is present.
      required:
        - name
        - type
      description: >
        Extracts structured data from parsed content using an extractor.


        The step's extractor can be specified in one of two ways:


        - **Saved reference** (`extractor`): references a saved extractor by ID. The reference must include an explicit
        `version` — `"latest"`, `"draft"`, or a specific semver string (e.g. `"1.0"`).

        - **Inline config** (`extractorConfig`): embeds the full extractor configuration directly in the step. No saved
        extractor is needed, so the workflow definition contains no workspace-specific processor IDs and is portable
        across workspaces.


        See the [Extract step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#extract).
      title: ExtractStepDefinition
    ClassifyStepDefinitionType:
      type: string
      enum:
        - CLASSIFY
      title: ClassifyStepDefinitionType
    ClassifierRef:
      type: object
      properties:
        id:
          type: string
          description: The classifier ID.
        version:
          type: string
          description: >
            The classifier version to use: `"draft"` or a specific semver string (e.g. `"0.1"`). `"latest"` is not
            allowed because classification IDs used for routing are tied to a specific version's config.
      required:
        - id
        - version
      description: A reference to a classifier.
      title: ClassifierRef
    ClassifyStepDefinitionConfig:
      type: object
      properties:
        classifier:
          $ref: '#/components/schemas/ClassifierRef'
          description: >
            Reference to a saved classifier. Provide either this or `classifierConfig`, not both.


            The `version` is required and must be a pinned version (semver like `"0.1"` or `"draft"`). `"latest"` is not
            allowed.
        classifierConfig:
          $ref: '#/components/schemas/ClassifyConfig'
          description: >
            Inline classifier configuration. Provide either this or `classifier`, not both. Same shape as the `config`
            accepted by [Create Classify
            Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/classify/create-classify-run).


            Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is
            involved).
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.


        When present, must contain exactly one of `classifier` (saved processor reference) or `classifierConfig` (inline
        configuration) — not both.


        The `next[].classificationId` values must match classification `id` values (not `type` strings) from the
        classifier's configuration — the referenced version's config for a saved reference, or the inline
        `classifications` array for an inline config. For example, if the classifier defines `{ "id": "cls_invoice",
        "type": "invoice" }`, use `"cls_invoice"` as the `classificationId`.


        See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).
      title: ClassifyStepDefinitionConfig
    ClassificationNextEntry:
      type: object
      properties:
        step:
          type: string
          description: The name of the target step.
        classificationId:
          type: string
          description: >
            Must match a classification `id` from the referenced classifier's or splitter's configuration (e.g.
            `"cls_invoice"`). Classification IDs are stable across renames — if a classification type is renamed, the ID
            stays the same and routing continues to work.
      required:
        - step
        - classificationId
      description: >
        A next entry for `CLASSIFY` and `SPLIT` steps. Routes based on the classification result.


        See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows)
        for end-to-end examples.
      title: ClassificationNextEntry
    ClassifyStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ClassifyStepDefinitionType'
        config:
          $ref: '#/components/schemas/ClassifyStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.


            When present, must contain exactly one of `classifier` (saved processor reference) or `classifierConfig`
            (inline configuration) — not both.


            The `next[].classificationId` values must match classification `id` values (not `type` strings) from the
            classifier's configuration — the referenced version's config for a saved reference, or the inline
            `classifications` array for an inline config. For example, if the classifier defines `{ "id": "cls_invoice",
            "type": "invoice" }`, use `"cls_invoice"` as the `classificationId`.


            See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).
        next:
          type: array
          items:
            $ref: '#/components/schemas/ClassificationNextEntry'
          description: >
            Can only be set when `config` is present. Each entry must include a `classificationId` matching a
            classification `id` from the classifier's configuration (saved or inline). Use the classification's stable
            `id` (e.g. `"cls_invoice"`), not the `type` string.


            See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).
      required:
        - name
        - type
      description: >
        Classifies documents using a classifier. Routes to different next steps based on classification result.


        The step's classifier can be specified in one of two ways:


        - **Saved reference** (`classifier`): references a saved classifier by ID. The reference must include a pinned
        `version` — `"latest"` is not supported for `CLASSIFY` steps. Use a specific semver string (e.g. `"0.1"`) or
        `"draft"`. This is because classification IDs used for routing are tied to a specific processor version's
        config.

        - **Inline config** (`classifierConfig`): embeds the full classifier configuration directly in the step. No
        saved classifier is needed, so the workflow definition contains no workspace-specific processor IDs and is
        portable across workspaces. Routing (`next[].classificationId`) validates against the inline `classifications`
        array.


        See the [Classify step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#classify).
      title: ClassifyStepDefinition
    SplitStepDefinitionType:
      type: string
      enum:
        - SPLIT
      title: SplitStepDefinitionType
    SplitterRef:
      type: object
      properties:
        id:
          type: string
          description: The splitter ID.
        version:
          type: string
          description: >
            The splitter version to use: `"draft"` or a specific semver string (e.g. `"0.1"`). `"latest"` is not allowed
            because classification IDs used for routing are tied to a specific version's config.
      required:
        - id
        - version
      description: A reference to a splitter.
      title: SplitterRef
    SplitStepDefinitionConfig:
      type: object
      properties:
        splitter:
          $ref: '#/components/schemas/SplitterRef'
          description: >
            Reference to a saved splitter. Provide either this or `splitterConfig`, not both.


            The `version` is required and must be a pinned version (semver like `"0.1"` or `"draft"`). `"latest"` is not
            allowed.
        splitterConfig:
          $ref: '#/components/schemas/SplitConfig'
          description: >
            Inline splitter configuration. Provide either this or `splitter`, not both. Same shape as the `config`
            accepted by [Create Split
            Run](https://docs.extend.ai/2026-02-09/api-reference/endpoints/split/create-split-run).


            Inline configs are returned verbatim in responses (there is no saved processor, so no `version` is
            involved).
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.


        When present, must contain exactly one of `splitter` (saved processor reference) or `splitterConfig` (inline
        configuration) — not both.


        The `next[].classificationId` values must match split classification `id` values (not `type` strings) from the
        splitter's configuration — the referenced version's config for a saved reference, or the inline
        `splitClassifications` array for an inline config. For example, if the splitter defines `{ "id": "cls_receipt",
        "type": "receipt" }`, use `"cls_receipt"` as the `classificationId`.


        See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).
      title: SplitStepDefinitionConfig
    SplitStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/SplitStepDefinitionType'
        config:
          $ref: '#/components/schemas/SplitStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.


            When present, must contain exactly one of `splitter` (saved processor reference) or `splitterConfig` (inline
            configuration) — not both.


            The `next[].classificationId` values must match split classification `id` values (not `type` strings) from
            the splitter's configuration — the referenced version's config for a saved reference, or the inline
            `splitClassifications` array for an inline config. For example, if the splitter defines `{ "id":
            "cls_receipt", "type": "receipt" }`, use `"cls_receipt"` as the `classificationId`.


            See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).
        next:
          type: array
          items:
            $ref: '#/components/schemas/ClassificationNextEntry'
          description: >
            Can only be set when `config` is present. Each entry must include a `classificationId` matching a split
            classification `id` from the splitter's configuration (saved or inline). Use the classification's stable
            `id` (e.g. `"cls_receipt"`), not the `type` string.


            See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).
      required:
        - name
        - type
      description: >
        Splits a multi-document file into individual documents using a splitter. Routes to different next steps based on
        split type.


        The step's splitter can be specified in one of two ways:


        - **Saved reference** (`splitter`): references a saved splitter by ID. The reference must include a pinned
        `version` — `"latest"` is not supported for `SPLIT` steps. Use a specific semver string (e.g. `"0.1"`) or
        `"draft"`. This is because classification IDs used for routing are tied to a specific processor version's
        config.

        - **Inline config** (`splitterConfig`): embeds the full splitter configuration directly in the step. No saved
        splitter is needed, so the workflow definition contains no workspace-specific processor IDs and is portable
        across workspaces. Routing (`next[].classificationId`) validates against the inline `splitClassifications`
        array.


        See the [Split step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#split).
      title: SplitStepDefinition
    MergeExtractStepDefinitionType:
      type: string
      enum:
        - MERGE_EXTRACT
      title: MergeExtractStepDefinitionType
    MergeExtractStepDefinitionConfigMergeOrder:
      type: string
      enum:
        - confidence
        - alphabetic
        - first_to_execute
        - last_to_execute
      description: >
        How to order fields when merging. Defaults to confidence.


        See the [Merge Extract step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#merge-extract).
      title: MergeExtractStepDefinitionConfigMergeOrder
    MergeExtractStepDefinitionConfig:
      type: object
      properties:
        mergeOrder:
          $ref: '#/components/schemas/MergeExtractStepDefinitionConfigMergeOrder'
          description: >
            How to order fields when merging. Defaults to confidence.


            See the [Merge Extract step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#merge-extract).
      title: MergeExtractStepDefinitionConfig
    MergeExtractStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/MergeExtractStepDefinitionType'
        config:
          $ref: '#/components/schemas/MergeExtractStepDefinitionConfig'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
      required:
        - name
        - type
      description: >
        Merges extraction outputs from multiple upstream extract steps.


        See the [Merge Extract step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#merge-extract).
      title: MergeExtractStepDefinition
    ConditionalStepDefinitionType:
      type: string
      enum:
        - CONDITIONAL
      title: ConditionalStepDefinitionType
    ConditionalStepDefinitionConfigConditionsItemsType:
      type: string
      enum:
        - IF
        - ELSE_IF
        - ELSE
      title: ConditionalStepDefinitionConfigConditionsItemsType
    ConditionalStepDefinitionConfigConditionsItemsOperation:
      type: string
      enum:
        - EQUALS
        - GTE
        - LTE
        - IS_NULL
        - CONTAINS
        - NO_OP
      description: |
        The comparison operation for this branch.

        See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
      title: ConditionalStepDefinitionConfigConditionsItemsOperation
    ConditionalStepDefinitionConfigConditionsItems:
      type: object
      properties:
        id:
          type: string
          description: Unique ID for this condition branch.
        type:
          $ref: '#/components/schemas/ConditionalStepDefinitionConfigConditionsItemsType'
        operation:
          $ref: '#/components/schemas/ConditionalStepDefinitionConfigConditionsItemsOperation'
          description: >
            The comparison operation for this branch.


            See the [Conditional step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
        leftOperand:
          type: string
          description: >
            The left operand expression. This is typically a workflow variable or dynamic expression.


            See the [Conditional step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
        rightOperand:
          type: string
          description: >
            The right operand value. This is typically a literal comparison value and is omitted for fallback branches
            like `ELSE`.


            See the [Conditional step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
      required:
        - id
        - type
      title: ConditionalStepDefinitionConfigConditionsItems
    ConditionalStepDefinitionConfig:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/ConditionalStepDefinitionConfigConditionsItems'
          description: >
            Ordered conditional branches for this step. Use `IF` for the first branch, `ELSE_IF` for additional
            branches, and `ELSE` for the fallback branch.


            See the [Conditional step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
      required:
        - conditions
      title: ConditionalStepDefinitionConfig
    ConditionalNextEntry:
      type: object
      properties:
        step:
          type: string
          description: The name of the target step.
        conditionId:
          type: string
          description: |
            Must match one of the `config.conditions[].id` values on the conditional step.
      required:
        - step
        - conditionId
      description: >
        A next entry for `CONDITIONAL` steps. Routes based on which condition branch matched.


        See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows)
        for end-to-end examples.
      title: ConditionalNextEntry
    ConditionalStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ConditionalStepDefinitionType'
        config:
          $ref: '#/components/schemas/ConditionalStepDefinitionConfig'
        next:
          type: array
          items:
            $ref: '#/components/schemas/ConditionalNextEntry'
          description: >
            Each entry should include a `conditionId` matching a `config.conditions[].id` value.


            See the [Conditional step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
      required:
        - name
        - type
        - config
      description: |
        Routes to different next steps based on ordered conditional branches evaluated against upstream step outputs.

        See the [Conditional step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional).
      title: ConditionalStepDefinition
    ConditionalExtractStepDefinitionType:
      type: string
      enum:
        - CONDITIONAL_EXTRACT
      title: ConditionalExtractStepDefinitionType
    ConditionalExtractStepDefinitionConfigRulesItems:
      type: object
      properties:
        name:
          type: string
        formula:
          type: string
          description: >
            The formula that determines when this extractor runs.


            See the [Conditional Extract step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract) and
            [Formulas](https://docs.extend.ai/2026-02-09/workflows/formulas).
        extractor:
          $ref: '#/components/schemas/ExtractorRef'
      required:
        - formula
        - extractor
      title: ConditionalExtractStepDefinitionConfigRulesItems
    ConditionalExtractStepDefinitionConfig:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/ConditionalExtractStepDefinitionConfigRulesItems'
          description: >
            Formula-based extractor rules for this step. Each rule pairs a formula with an extractor reference. The last
            rule must have `formula: "TRUE"` as a default catch-all.


            See the [Conditional Extract step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract).
      required:
        - rules
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.
      title: ConditionalExtractStepDefinitionConfig
    ConditionalExtractStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ConditionalExtractStepDefinitionType'
        config:
          $ref: '#/components/schemas/ConditionalExtractStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
          description: Can only be set when `config` is present.
      required:
        - name
        - type
      description: >
        Runs extractors based on formula conditions.


        Each extractor reference must include an explicit `version`. Valid values are `"latest"`, `"draft"`, or a
        specific semver string (e.g. `"1.0"`). Rules only support saved extractor references — inline configs are not
        supported in `CONDITIONAL_EXTRACT` rules.


        See the [Conditional Extract step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#conditional-extract).
      title: ConditionalExtractStepDefinition
    ExternalDataValidationStepDefinitionType:
      type: string
      enum:
        - EXTERNAL_DATA_VALIDATION
      title: ExternalDataValidationStepDefinitionType
    ExternalDataValidationStepDefinitionConfigRequestOptionsMethod:
      type: string
      enum:
        - GET
        - POST
        - PUT
      title: ExternalDataValidationStepDefinitionConfigRequestOptionsMethod
    ExternalDataValidationStepDefinitionConfigRequestOptionsContentType:
      type: string
      enum:
        - application/json
        - text/plain
      description: >
        Content type of the request body sent to the external endpoint.


        See the [External Data Validation step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      title: ExternalDataValidationStepDefinitionConfigRequestOptionsContentType
    ExternalDataValidationStepDefinitionConfigRequestOptions:
      type: object
      properties:
        url:
          type: string
          description: The URL to send the validation request to.
        method:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionConfigRequestOptionsMethod'
        headers:
          type: object
          additionalProperties:
            type: string
          description: >
            Optional HTTP headers to include on the external validation request.


            See the [External Data Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
        contentType:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionConfigRequestOptionsContentType'
          description: >
            Content type of the request body sent to the external endpoint.


            See the [External Data Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      required:
        - url
        - method
      description: >
        HTTP request configuration for the external validation call.


        See the [External Data Validation step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      title: ExternalDataValidationStepDefinitionConfigRequestOptions
    ExternalDataValidationStepDefinitionConfigFailureBehavior:
      type: string
      enum:
        - CONTINUE
        - EXIT
      description: >
        Whether to continue or exit the workflow on validation failure. Defaults to `CONTINUE`.


        See the [External Data Validation step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      title: ExternalDataValidationStepDefinitionConfigFailureBehavior
    ExternalDataValidationStepDefinitionConfig:
      type: object
      properties:
        requestOptions:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionConfigRequestOptions'
          description: >
            HTTP request configuration for the external validation call.


            See the [External Data Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
        failureBehavior:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionConfigFailureBehavior'
          description: >
            Whether to continue or exit the workflow on validation failure. Defaults to `CONTINUE`.


            See the [External Data Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      required:
        - requestOptions
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.
      title: ExternalDataValidationStepDefinitionConfig
    ExternalDataValidationStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionType'
        config:
          $ref: '#/components/schemas/ExternalDataValidationStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
          description: Can only be set when `config` is present.
      required:
        - name
        - type
      description: >
        Sends extraction data to an external HTTP endpoint for validation.


        See the [External Data Validation step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#external-data-validation).
      title: ExternalDataValidationStepDefinition
    WebhookResponseStepDefinitionType:
      type: string
      enum:
        - WEBHOOK_RESPONSE
      title: WebhookResponseStepDefinitionType
    WebhookResponseStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/WebhookResponseStepDefinitionType'
      required:
        - name
        - type
      description: >
        A terminal step that triggers webhook delivery of the workflow results.


        See the [Webhook Response step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#webhook-response).
      title: WebhookResponseStepDefinition
    RuleValidationStepDefinitionType:
      type: string
      enum:
        - RULE_VALIDATION
      title: RuleValidationStepDefinitionType
    RuleValidationStepDefinitionConfigRulesItems:
      type: object
      properties:
        name:
          type: string
        formula:
          type: string
          description: >
            Boolean formula used to validate the workflow data for this rule.


            See the [Rule Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation) and
            [Formulas](https://docs.extend.ai/2026-02-09/workflows/formulas).
        description:
          type: string
      required:
        - name
        - formula
      title: RuleValidationStepDefinitionConfigRulesItems
    RuleValidationStepDefinitionConfig:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RuleValidationStepDefinitionConfigRulesItems'
          description: >
            Validation rules for this step. Each rule defines a name and a boolean formula.


            See the [Rule Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).
      required:
        - rules
      description: >
        Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step is
        not yet configured.
      title: RuleValidationStepDefinitionConfig
    RuleValidationNextEntryResult:
      type: string
      enum:
        - pass
        - fail
      description: |
        Routes based on whether all validation rules passed.
      title: RuleValidationNextEntryResult
    RuleValidationNextEntry:
      type: object
      properties:
        step:
          type: string
          description: The name of the target step.
        result:
          $ref: '#/components/schemas/RuleValidationNextEntryResult'
          description: |
            Routes based on whether all validation rules passed.
      required:
        - step
        - result
      description: >
        A next entry for `RULE_VALIDATION` steps. Routes based on whether all validation rules passed.


        See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows)
        for end-to-end examples.
      title: RuleValidationNextEntry
    RuleValidationStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/RuleValidationStepDefinitionType'
        config:
          $ref: '#/components/schemas/RuleValidationStepDefinitionConfig'
          description: >
            Optional on create/update. Required before the workflow can be deployed. Omitted in responses when the step
            is not yet configured.
        next:
          type: array
          items:
            $ref: '#/components/schemas/RuleValidationNextEntry'
          description: >
            Can only be set when `config` is present. Each entry must include a `result` of `"pass"` or `"fail"` to
            route based on whether all validation rules passed.


            See the [Rule Validation step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).
      required:
        - name
        - type
      description: >
        Validates extraction outputs against formula-based rules. Routes to pass/fail next steps.


        See the [Rule Validation step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#rule-validation).
      title: RuleValidationStepDefinition
    HumanReviewStepDefinitionType:
      type: string
      enum:
        - HUMAN_REVIEW
      title: HumanReviewStepDefinitionType
    HumanReviewStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/HumanReviewStepDefinitionType'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
      required:
        - name
        - type
      description: >
        Pauses the workflow for human review in the dashboard.


        See the [Human Review step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#human-review).
      title: HumanReviewStepDefinition
    CollectStepDefinitionType:
      type: string
      enum:
        - COLLECT
      title: CollectStepDefinitionType
    CollectStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/CollectStepDefinitionType'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
      required:
        - name
        - type
      description: |
        Collects outputs from multiple upstream branches before continuing.

        See the [Collect step docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#collect).
      title: CollectStepDefinition
    FileConversionStepDefinitionType:
      type: string
      enum:
        - FILE_CONVERSION
      title: FileConversionStepDefinitionType
    FileConversionStepDefinitionConfigFailureBehavior:
      type: string
      enum:
        - CONTINUE
        - EXIT
      description: >
        Whether to continue or exit the workflow if file conversion fails. Defaults to `EXIT`.


        See the [File Conversion step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#file-conversion).
      title: FileConversionStepDefinitionConfigFailureBehavior
    FileConversionStepDefinitionConfig:
      type: object
      properties:
        failureBehavior:
          $ref: '#/components/schemas/FileConversionStepDefinitionConfigFailureBehavior'
          description: >
            Whether to continue or exit the workflow if file conversion fails. Defaults to `EXIT`.


            See the [File Conversion step
            docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#file-conversion).
      title: FileConversionStepDefinitionConfig
    FileConversionStepDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/FileConversionStepDefinitionType'
        config:
          $ref: '#/components/schemas/FileConversionStepDefinitionConfig'
        next:
          type: array
          items:
            $ref: '#/components/schemas/SimpleNextEntry'
      required:
        - name
        - type
      description: >
        Converts files to a different format.


        See the [File Conversion step
        docs](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows#file-conversion).
      title: FileConversionStepDefinition
    WorkflowStepDefinition:
      oneOf:
        - $ref: '#/components/schemas/TriggerStepDefinition'
        - $ref: '#/components/schemas/ParseStepDefinition'
        - $ref: '#/components/schemas/ExtractStepDefinition'
        - $ref: '#/components/schemas/ClassifyStepDefinition'
        - $ref: '#/components/schemas/SplitStepDefinition'
        - $ref: '#/components/schemas/MergeExtractStepDefinition'
        - $ref: '#/components/schemas/ConditionalStepDefinition'
        - $ref: '#/components/schemas/ConditionalExtractStepDefinition'
        - $ref: '#/components/schemas/ExternalDataValidationStepDefinition'
        - $ref: '#/components/schemas/WebhookResponseStepDefinition'
        - $ref: '#/components/schemas/RuleValidationStepDefinition'
        - $ref: '#/components/schemas/HumanReviewStepDefinition'
        - $ref: '#/components/schemas/CollectStepDefinition'
        - $ref: '#/components/schemas/FileConversionStepDefinition'
      description: >
        A workflow step definition used when creating, updating, deploying, and retrieving workflow versions.


        See the [Configuring Workflows via API guide](https://docs.extend.ai/2026-02-09/workflows/configuring-workflows)
        for routing patterns and examples.
      title: WorkflowStepDefinition
    WorkflowObject:
      type: string
      enum:
        - workflow
      description: The type of object. Always `"workflow"`.
      title: WorkflowObject
    WorkflowVersionObject:
      type: string
      enum:
        - workflow_version
      description: The type of object. Always `"workflow_version"`.
      title: WorkflowVersionObject
    WorkflowVersion:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowVersionObject'
          description: The type of object. Always `"workflow_version"`.
        id:
          type: string
          description: The ID of the workflow version.
        version:
          type: string
          description: |
            The version number as a string, or `"draft"` for the draft version.
        name:
          type:
            - string
            - 'null'
          description: The name of the workflow version.
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepDefinition'
          description: The step definitions for this version.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - version
        - name
        - steps
        - createdAt
        - createdBy
      description: A workflow version with its step definitions.
      title: WorkflowVersion
    Workflow:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowObject'
          description: The type of object. Always `"workflow"`.
        id:
          type: string
          description: The ID of the workflow.
        name:
          type: string
          description: The name of the workflow.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        draftVersion:
          $ref: '#/components/schemas/WorkflowVersion'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - name
        - createdAt
        - updatedAt
        - draftVersion
        - createdBy
      description: A workflow with its draft version and steps.
      title: Workflow
    WorkflowsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: WorkflowsGetResponsesContentApplicationJsonSchemaObject
    workflows_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: workflows_list_Response_200
    WorkflowsIdVersionsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: WorkflowsIdVersionsGetResponsesContentApplicationJsonSchemaObject
    workflowVersions_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WorkflowsIdVersionsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowVersionSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: workflowVersions_list_Response_200
    EvaluationSetObject:
      type: string
      enum:
        - evaluation_set
      description: |
        The type of object. In this case, it will always be `"evaluation_set"`.
      title: EvaluationSetObject
    EvaluationSetEntity:
      oneOf:
        - $ref: '#/components/schemas/ExtractorSummary'
        - $ref: '#/components/schemas/ClassifierSummary'
        - $ref: '#/components/schemas/SplitterSummary'
      description: The extractor, classifier, or splitter associated with this evaluation set.
      title: EvaluationSetEntity
    EvaluationSet:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetObject'
          description: |
            The type of object. In this case, it will always be `"evaluation_set"`.
        id:
          type: string
          description: |
            The ID of the evaluation set.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
        name:
          type: string
          description: |
            The name of the evaluation set.

            Example: `"Invoice Processing Test Set"`
        description:
          type: string
          description: |
            A description of the evaluation set.

            Example: `"Q4 2023 vendor invoices for accuracy testing"`
        entity:
          $ref: '#/components/schemas/EvaluationSetEntity'
          description: The extractor, classifier, or splitter associated with this evaluation set.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - name
        - description
        - entity
        - createdAt
        - updatedAt
        - createdBy
      title: EvaluationSet
    EvaluationSetsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: EvaluationSetsGetResponsesContentApplicationJsonSchemaObject
    evaluationSets_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/EvaluationSet'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: evaluationSets_list_Response_200
    EvaluationSetsEvaluationSetIdItemsPostRequestBodyContentApplicationJsonSchemaItemsItems:
      type: object
      properties:
        fileId:
          type: string
          description: |
            Extend's internal ID for the file. It will always start with "file_".

            Example: `"file_xK9mLPqRtN3vS8wF5hB2cQ"`
        expectedOutput:
          $ref: '#/components/schemas/ProvidedProcessorOutput'
          description: >-
            The expected output that will be compared to the actual output of the extractor, classifier, or splitter
            when run against the file.
      required:
        - fileId
        - expectedOutput
      title: EvaluationSetsEvaluationSetIdItemsPostRequestBodyContentApplicationJsonSchemaItemsItems
    EvaluationSetItemObject:
      type: string
      enum:
        - evaluation_set_item
      description: |
        The type of object. In this case, it will always be `"evaluation_set_item"`.
      title: EvaluationSetItemObject
    EvaluationSetItem:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetItemObject'
          description: |
            The type of object. In this case, it will always be `"evaluation_set_item"`.
        id:
          type: string
          description: |
            The ID of the evaluation set item.

            Example: `"evi_kR9mNP12Qw4yTv8BdR3H"`
        evaluationSetId:
          type: string
          description: |
            The ID of the evaluation set that this item belongs to.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
        file:
          $ref: '#/components/schemas/FileSummary'
          description: A summary of the file associated with the evaluation set item.
        expectedOutput:
          $ref: '#/components/schemas/ProvidedProcessorOutput'
          description: >-
            The expected output that will be used to evaluate the performance of the extractor, classifier, or splitter
            associated with the evaluation set. This must conform to the output schema of the entity associated with the
            evaluation set.
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - evaluationSetId
        - file
        - expectedOutput
        - createdBy
      title: EvaluationSetItem
    evaluationSetItems_create_Response_200:
      type: object
      properties:
        evaluationSetItems:
          type: array
          items:
            $ref: '#/components/schemas/EvaluationSetItem'
      required:
        - evaluationSetItems
      title: evaluationSetItems_create_Response_200
    evaluationSetItems_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted evaluation set item.
      required:
        - id
      title: evaluationSetItems_delete_Response_200
    EvaluationSetsEvaluationSetIdItemsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: EvaluationSetsEvaluationSetIdItemsGetResponsesContentApplicationJsonSchemaObject
    EvaluationSetItemSummaryObject:
      type: string
      enum:
        - evaluation_set_item
      description: |
        The type of object. In this case, it will always be `"evaluation_set_item"`.
      title: EvaluationSetItemSummaryObject
    EvaluationSetItemSummary:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetItemSummaryObject'
          description: |
            The type of object. In this case, it will always be `"evaluation_set_item"`.
        id:
          type: string
          description: |
            The ID of the evaluation set item.

            Example: `"evi_kR9mNP12Qw4yTv8BdR3H"`
        file:
          $ref: '#/components/schemas/FileSummary'
          description: A summary of the file associated with the evaluation set item.
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - file
        - createdBy
      title: EvaluationSetItemSummary
    evaluationSetItems_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetsEvaluationSetIdItemsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/EvaluationSetItemSummary'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: evaluationSetItems_list_Response_200
    EvaluationSetRunsPostRequestBodyContentApplicationJsonSchemaEntity:
      type: object
      properties:
        id:
          type: string
          description: The ID of the extractor, classifier, or splitter to evaluate.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
      required:
        - id
      description: >
        Optional processor and version to run against the evaluation set. If omitted, the evaluation set's processor is
        run at its draft version.
      title: EvaluationSetRunsPostRequestBodyContentApplicationJsonSchemaEntity
    EvaluationSetRunObject:
      type: string
      enum:
        - evaluation_set_run
      description: |
        The type of object. In this case, it will always be `"evaluation_set_run"`.
      title: EvaluationSetRunObject
    EvaluationSetRunEntity:
      oneOf:
        - $ref: '#/components/schemas/ExtractorSummary'
        - $ref: '#/components/schemas/ClassifierSummary'
        - $ref: '#/components/schemas/SplitterSummary'
      description: The extractor, classifier, or splitter that was run.
      title: EvaluationSetRunEntity
    EvaluationSetRunEntityVersion:
      oneOf:
        - $ref: '#/components/schemas/ExtractorVersionSummary'
        - $ref: '#/components/schemas/ClassifierVersionSummary'
        - $ref: '#/components/schemas/SplitterVersionSummary'
      description: The version of the extractor, classifier, or splitter that was run.
      title: EvaluationSetRunEntityVersion
    ExtractEvaluationSetRunMetricsType:
      type: string
      enum:
        - EXTRACT
      description: The type of processor for this evaluation set. Always `"EXTRACT"` for extractor evaluation runs.
      title: ExtractEvaluationSetRunMetricsType
    EvaluationSetRunFieldMetric:
      type: object
      properties:
        countTotal:
          type: number
          format: double
          description: The number of runs that included this field in the schema.
        countPresent:
          type: number
          format: double
          description: The number of runs where the model produced a non-null value for this field.
        countExpected:
          type: number
          format: double
          description: The number of runs where an expected value was provided.
        countAccurate:
          type: number
          format: double
          description: The number of runs where the extracted value matched the expected value.
        accuracy:
          type: number
          format: double
          description: |
            Accuracy for this field, computed as `countAccurate / countExpected`. Omitted when `countExpected` is `0`.
      description: Per-field accuracy statistics for an extract evaluation run.
      title: EvaluationSetRunFieldMetric
    ClassifyEvaluationSetRunMetricsType:
      type: string
      enum:
        - CLASSIFY
      description: The type of processor for this evaluation set. Always `"CLASSIFY"` for classifier evaluation runs.
      title: ClassifyEvaluationSetRunMetricsType
    ClassificationMetric:
      type: object
      properties:
        countExpected:
          type: number
          format: double
          description: The number of files whose expected classification was this class.
        countPredicted:
          type: number
          format: double
          description: The number of files the model classified as this class.
        countCorrect:
          type: number
          format: double
          description: The number of files correctly classified as this class.
        precision:
          type: number
          format: double
          description: |
            `countCorrect / countPredicted` for this class.
        recall:
          type: number
          format: double
          description: |
            `countCorrect / countExpected` for this class.
        f1:
          type: number
          format: double
          description: |
            Harmonic mean of `precision` and `recall`.
      description: Per-class precision, recall, and F1 for a classify evaluation run.
      title: ClassificationMetric
    SplitterEvaluationSetRunMetricsType:
      type: string
      enum:
        - SPLITTER
      description: The type of processor for this evaluation set. Always `"SPLITTER"` for splitter evaluation runs.
      title: SplitterEvaluationSetRunMetricsType
    EvaluationSetRunMetrics:
      oneOf:
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/ExtractEvaluationSetRunMetricsType'
              description: The type of processor for this evaluation set. Always `"EXTRACT"` for extractor evaluation runs.
            numFilesTotal:
              type: number
              format: double
              description: The total number of files that will be processed in this evaluation set run.
            numFilesProcessed:
              type: number
              format: double
              description: The number of files that have finished processing.
            numFiles:
              type: number
              format: double
              description: Deprecated. Use `numFilesProcessed` instead.
            numPages:
              type: number
              format: double
              description: The total number of pages processed across the completed files.
            meanLatencyMs:
              type: number
              format: double
              description: Mean per-file latency in milliseconds.
            p50LatencyMs:
              type: number
              format: double
              description: 50th percentile per-file latency in milliseconds.
            p90LatencyMs:
              type: number
              format: double
              description: 90th percentile per-file latency in milliseconds.
            p95LatencyMs:
              type: number
              format: double
              description: 95th percentile per-file latency in milliseconds.
            p99LatencyMs:
              type: number
              format: double
              description: 99th percentile per-file latency in milliseconds.
            accuracy:
              type: number
              format: double
              description: Aggregate accuracy across every reviewed field in `fieldMetrics`.
            fieldMetrics:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/EvaluationSetRunFieldMetric'
              description: >
                Per-field accuracy statistics. Keys are the extractor schema's field names — nested fields are flattened
                to dot-joined paths. See [Extraction response
                format](https://docs.extend.ai/2026-02-09/extraction/response-format#output-value-and-metadata) for more
                on how extractor field paths are structured.
          required:
            - type
          description: |
            Metrics for an evaluation set run against an extractor.
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/ClassifyEvaluationSetRunMetricsType'
              description: The type of processor for this evaluation set. Always `"CLASSIFY"` for classifier evaluation runs.
            numFilesTotal:
              type: number
              format: double
              description: The total number of files that will be processed in this evaluation set run.
            numFilesProcessed:
              type: number
              format: double
              description: The number of files that have finished processing.
            numFiles:
              type: number
              format: double
              description: Deprecated. Use `numFilesProcessed` instead.
            numPages:
              type: number
              format: double
              description: The total number of pages processed across the completed files.
            meanLatencyMs:
              type: number
              format: double
              description: Mean per-file latency in milliseconds.
            p50LatencyMs:
              type: number
              format: double
              description: 50th percentile per-file latency in milliseconds.
            p90LatencyMs:
              type: number
              format: double
              description: 90th percentile per-file latency in milliseconds.
            p95LatencyMs:
              type: number
              format: double
              description: 95th percentile per-file latency in milliseconds.
            p99LatencyMs:
              type: number
              format: double
              description: 99th percentile per-file latency in milliseconds.
            accuracy:
              type: number
              format: double
              description: >
                Overall accuracy across the evaluation set, computed as the share of files whose predicted class matched
                the expected class.
            classificationMetrics:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/ClassificationMetric'
              description: >
                Per-class precision, recall, and F1. Keys are the classifier's classification types as defined in the
                classifier configuration.
          required:
            - type
          description: |
            Metrics for an evaluation set run against a classifier.
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/SplitterEvaluationSetRunMetricsType'
              description: The type of processor for this evaluation set. Always `"SPLITTER"` for splitter evaluation runs.
            numFilesTotal:
              type: number
              format: double
              description: The total number of files that will be processed in this evaluation set run.
            numFilesProcessed:
              type: number
              format: double
              description: The number of files that have finished processing.
            numFiles:
              type: number
              format: double
              description: Deprecated. Use `numFilesProcessed` instead.
            numPages:
              type: number
              format: double
              description: The total number of pages processed across the completed files.
            meanLatencyMs:
              type: number
              format: double
              description: Mean per-file latency in milliseconds.
            p50LatencyMs:
              type: number
              format: double
              description: 50th percentile per-file latency in milliseconds.
            p90LatencyMs:
              type: number
              format: double
              description: 90th percentile per-file latency in milliseconds.
            p95LatencyMs:
              type: number
              format: double
              description: 95th percentile per-file latency in milliseconds.
            p99LatencyMs:
              type: number
              format: double
              description: 99th percentile per-file latency in milliseconds.
            precision:
              type: number
              format: double
              description: |
                `numSplitsCorrect / numSplitsPredicted`.
            recall:
              type: number
              format: double
              description: |
                `numSplitsCorrect / numSplitsExpected`.
            f1:
              type: number
              format: double
              description: Harmonic mean of `precision` and `recall`.
            numSplitsExpected:
              type: number
              format: double
              description: The total number of expected split documents across the evaluation set.
            numSplitsPredicted:
              type: number
              format: double
              description: The total number of split documents the model produced.
            numSplitsCorrect:
              type: number
              format: double
              description: The number of predicted splits that exactly matched an expected split.
          required:
            - type
          description: |
            Metrics for an evaluation set run against a splitter.
      discriminator:
        propertyName: type
      description: |
        Metrics for the evaluation set run. The shape depends on the entity type.
      title: EvaluationSetRunMetrics
    BatchRunStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of a batch run:
        * `"PENDING"` - The batch has been created and is waiting to be processed
        * `"PROCESSING"` - The batch is currently being processed
        * `"PROCESSED"` - All runs in the batch have completed successfully
        * `"FAILED"` - The batch failed to process
        * `"CANCELLED"` - The batch was cancelled
      title: BatchRunStatus
    EvaluationSetRunOptions:
      type: object
      properties:
        fuzzyMatchFields:
          type: array
          items:
            type: string
          description: The fields that were fuzzy matched.
        excludeFields:
          type: array
          items:
            type: string
          description: The fields that were excluded from the run.
      description: The options for the evaluation set run.
      title: EvaluationSetRunOptions
    EvaluationSetRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/EvaluationSetRunObject'
          description: |
            The type of object. In this case, it will always be `"evaluation_set_run"`.
        id:
          type: string
          description: |
            The unique identifier for this evaluation set run.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
        evaluationSetId:
          type: string
          description: |
            The ID of the evaluation set that was run.

            Example: `"ev_2LcgeY_mp2T5yPaEuq5Lw"`
        entity:
          $ref: '#/components/schemas/EvaluationSetRunEntity'
          description: The extractor, classifier, or splitter that was run.
        entityVersion:
          $ref: '#/components/schemas/EvaluationSetRunEntityVersion'
          description: The version of the extractor, classifier, or splitter that was run.
        metrics:
          $ref: '#/components/schemas/EvaluationSetRunMetrics'
          description: |
            Metrics for the evaluation set run. The shape depends on the entity type.
        status:
          $ref: '#/components/schemas/BatchRunStatus'
        options:
          $ref: '#/components/schemas/EvaluationSetRunOptions'
          description: The options for the evaluation set run.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        updatedAt:
          $ref: '#/components/schemas/UpdatedAt'
      required:
        - object
        - id
        - evaluationSetId
        - entity
        - entityVersion
        - metrics
        - status
        - options
        - createdAt
        - updatedAt
      title: EvaluationSetRun
    WebhookEndpointStatus:
      type: string
      enum:
        - enabled
        - disabled
      description: The status of the webhook endpoint.
      title: WebhookEndpointStatus
    WebhookEndpointEventType:
      type: string
      enum:
        - parse_run.processed
        - parse_run.failed
        - edit_run.processed
        - edit_run.failed
        - extract_run.processed
        - extract_run.failed
        - classify_run.processed
        - classify_run.failed
        - split_run.processed
        - split_run.failed
        - batch_processor_run.processed
        - batch_processor_run.failed
        - batch_parse_run.processed
        - batch_parse_run.failed
        - extractor.created
        - extractor.updated
        - extractor.deleted
        - extractor.draft.updated
        - extractor.version.published
        - classifier.created
        - classifier.updated
        - classifier.deleted
        - classifier.draft.updated
        - classifier.version.published
        - splitter.created
        - splitter.updated
        - splitter.deleted
        - splitter.draft.updated
        - splitter.version.published
        - workflow.created
        - workflow.deployed
        - workflow.deleted
      description: >
        Event types available for webhook endpoints at the global level. Includes run events and resource lifecycle
        events.
      title: WebhookEndpointEventType
    ApiVersionEnum:
      type: string
      title: ApiVersionEnum
    WebhookPayloadFormat:
      type: string
      enum:
        - json
        - url
      description: |
        The format used to deliver webhook payloads.

        - `json` — the full payload is sent inline in the webhook request body.
        - `url` — large payloads are replaced with a signed download URL.
      title: WebhookPayloadFormat
    WebhookPayloadOptions:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/WebhookPayloadFormat'
        urlThresholdBytes:
          type: integer
          description: >
            When `format` is `url`, payloads larger than this threshold (in bytes) are delivered as a signed download
            URL instead of inline JSON. Only applicable when `format` is `url`.
      required:
        - format
      description: Configuration for how webhook payloads are delivered.
      title: WebhookPayloadOptions
    WebhookAdvancedOptions:
      type: object
      properties:
        headers:
          type: object
          additionalProperties:
            type: string
          description: Custom HTTP headers to include in webhook requests.
        payload:
          $ref: '#/components/schemas/WebhookPayloadOptions'
      description: Advanced configuration options for the webhook endpoint, including custom headers and payload delivery settings.
      title: WebhookAdvancedOptions
    WebhookEndpointCreateObject:
      type: string
      enum:
        - webhook_endpoint
      title: WebhookEndpointCreateObject
    WebhookEndpointCreate:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WebhookEndpointCreateObject'
        id:
          type: string
          description: Unique identifier for the webhook endpoint.
        url:
          type: string
          format: uri
          description: The URL that webhook events are sent to.
        name:
          type: string
          description: A human-readable name for the webhook endpoint.
        status:
          $ref: '#/components/schemas/WebhookEndpointStatus'
        enabledEvents:
          type: array
          items:
            $ref: '#/components/schemas/WebhookEndpointEventType'
          description: >
            The list of event types this endpoint is subscribed to at the global level. These are events that are not
            scoped to a specific resource.
        apiVersion:
          $ref: '#/components/schemas/ApiVersionEnum'
        advancedOptions:
          oneOf:
            - $ref: '#/components/schemas/WebhookAdvancedOptions'
            - type: 'null'
          description: >-
            Advanced configuration options for the webhook endpoint, including custom headers and payload delivery
            settings.
        signingSecret:
          type: string
          description: >
            The signing secret used to verify webhook payloads. This is only returned when creating the endpoint and
            cannot be retrieved again.


            Store it securely — you will need it to verify webhook signatures.
        createdAt:
          type: string
          format: date-time
          description: The date and time the webhook endpoint was created.
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - url
        - name
        - status
        - enabledEvents
        - apiVersion
        - advancedOptions
        - signingSecret
        - createdAt
        - createdBy
      description: >
        The response when creating a webhook endpoint. Includes the `signingSecret`, which is only returned on creation
        and cannot be retrieved again.
      title: WebhookEndpointCreate
    WebhookEndpointsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: WebhookEndpointsGetResponsesContentApplicationJsonSchemaObject
    WebhookEndpointObject:
      type: string
      enum:
        - webhook_endpoint
      title: WebhookEndpointObject
    WebhookEndpoint:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WebhookEndpointObject'
        id:
          type: string
          description: Unique identifier for the webhook endpoint.
        url:
          type: string
          format: uri
          description: The URL that webhook events are sent to.
        name:
          type: string
          description: A human-readable name for the webhook endpoint.
        status:
          $ref: '#/components/schemas/WebhookEndpointStatus'
        enabledEvents:
          type: array
          items:
            $ref: '#/components/schemas/WebhookEndpointEventType'
          description: >
            The list of event types this endpoint is subscribed to at the global level. These are events that are not
            scoped to a specific resource.
        apiVersion:
          $ref: '#/components/schemas/ApiVersionEnum'
        advancedOptions:
          oneOf:
            - $ref: '#/components/schemas/WebhookAdvancedOptions'
            - type: 'null'
          description: >-
            Advanced configuration options for the webhook endpoint, including custom headers and payload delivery
            settings.
        createdAt:
          type: string
          format: date-time
          description: The date and time the webhook endpoint was created.
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
      required:
        - object
        - id
        - url
        - name
        - status
        - enabledEvents
        - apiVersion
        - advancedOptions
        - createdAt
        - createdBy
      title: WebhookEndpoint
    webhookEndpoints_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WebhookEndpointsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/WebhookEndpoint'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: webhookEndpoints_list_Response_200
    webhookEndpoints_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted webhook endpoint.
      required:
        - id
      title: webhookEndpoints_delete_Response_200
    WebhookSubscriptionResourceType:
      type: string
      enum:
        - extractor
        - classifier
        - splitter
        - workflow
      description: The type of resource the webhook subscription is for.
      title: WebhookSubscriptionResourceType
    WebhookSubscriptionEventType:
      type: string
      enum:
        - extract_run.processed
        - extract_run.failed
        - classify_run.processed
        - classify_run.failed
        - split_run.processed
        - split_run.failed
        - batch_processor_run.processed
        - batch_processor_run.failed
        - workflow_run.completed
        - workflow_run.failed
        - workflow_run.needs_review
        - workflow_run.rejected
        - workflow_run.cancelled
        - workflow_run.step_run.processed
      description: >
        Event types available for resource-scoped webhook subscriptions. The valid subset depends on the `resourceType`:


        - **extractor**: `extract_run.processed`, `extract_run.failed`, `batch_processor_run.processed`,
        `batch_processor_run.failed`

        - **classifier**: `classify_run.processed`, `classify_run.failed`, `batch_processor_run.processed`,
        `batch_processor_run.failed`

        - **splitter**: `split_run.processed`, `split_run.failed`, `batch_processor_run.processed`,
        `batch_processor_run.failed`

        - **workflow**: `workflow_run.completed`, `workflow_run.failed`, `workflow_run.needs_review`,
        `workflow_run.rejected`, `workflow_run.cancelled`, `workflow_run.step_run.processed`
      title: WebhookSubscriptionEventType
    WebhookSubscriptionObject:
      type: string
      enum:
        - webhook_subscription
      title: WebhookSubscriptionObject
    WebhookSubscription:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WebhookSubscriptionObject'
        id:
          type: string
          description: Unique identifier for the webhook subscription.
        webhookEndpointId:
          type: string
          description: The ID of the webhook endpoint this subscription belongs to.
        resourceType:
          $ref: '#/components/schemas/WebhookSubscriptionResourceType'
        resourceId:
          type: string
          description: >
            The ID of the resource this subscription is scoped to (e.g., an extractor, classifier, splitter, or
            workflow).
        enabledEvents:
          type: array
          items:
            $ref: '#/components/schemas/WebhookSubscriptionEventType'
          description: >
            The list of event types this subscription is subscribed to. The valid event types depend on the
            `resourceType`.
        createdAt:
          type: string
          format: date-time
          description: The date and time the webhook subscription was created.
      required:
        - object
        - id
        - webhookEndpointId
        - resourceType
        - resourceId
        - enabledEvents
        - createdAt
      title: WebhookSubscription
    WebhookSubscriptionsGetResponsesContentApplicationJsonSchemaObject:
      type: string
      enum:
        - list
      title: WebhookSubscriptionsGetResponsesContentApplicationJsonSchemaObject
    webhookSubscriptions_list_Response_200:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/WebhookSubscriptionsGetResponsesContentApplicationJsonSchemaObject'
        data:
          type: array
          items:
            $ref: '#/components/schemas/WebhookSubscription'
        nextPageToken:
          $ref: '#/components/schemas/NextPageToken'
      required:
        - object
        - data
      title: webhookSubscriptions_list_Response_200
    webhookSubscriptions_delete_Response_200:
      type: object
      properties:
        id:
          type: string
          description: The ID of the deleted webhook subscription.
      required:
        - id
      title: webhookSubscriptions_delete_Response_200
    ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to parse. Can be a URL, an Extend file ID, or raw text.
      title: ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile
    ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems:
      type: object
      properties:
        file:
          $ref: '#/components/schemas/ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile'
          description: The file to parse. Can be a URL, an Extend file ID, or raw text.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
      required:
        - file
      title: ParseRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems
    BatchRunObject:
      type: string
      enum:
        - batch_run
      description: The type of object. Always `"batch_run"`.
      title: BatchRunObject
    BatchRun:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/BatchRunObject'
          description: The type of object. Always `"batch_run"`.
        id:
          type: string
          description: |
            The unique identifier for this batch run.

            Example: `"bpr_Xj8mK2pL9nR4vT7qY5wZ"`
        status:
          $ref: '#/components/schemas/BatchRunStatus'
        runCount:
          type: integer
          description: The number of individual runs in this batch.
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
      required:
        - object
        - id
        - status
        - runCount
        - createdAt
      description: >
        A batch run represents a batch of files submitted for processing via one of the batch endpoints (`POST
        /parse_runs/batch`, `POST /extract_runs/batch`, `POST /classify_runs/batch`, or `POST /split_runs/batch`). Use
        `GET /batch_runs/{id}` to poll the status.


        **Note:** This object is not used for workflow batch runs. See `POST /workflow_runs/batch` for workflow
        batching.
      title: BatchRun
    ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaExtractor:
      type: object
      properties:
        id:
          type: string
          description: The ID of the extractor to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ExtractOverrideConfigJson'
          description: >
            Optional partial configuration override applied to every run in this batch. Only the fields you provide will
            override the extractor's saved configuration.
      required:
        - id
      description: Reference to the extractor to run against every input in this batch.
      title: ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaExtractor
    ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to extract from. Can be a URL, an Extend file ID, or raw text.
      title: ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile
    ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems:
      type: object
      properties:
        file:
          $ref: '#/components/schemas/ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile'
          description: The file to extract from. Can be a URL, an Extend file ID, or raw text.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
      required:
        - file
      title: ExtractRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems
    ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaClassifier:
      type: object
      properties:
        id:
          type: string
          description: The ID of the classifier to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/ClassifyOverrideConfig'
          description: >
            Optional partial configuration override applied to every run in this batch. Only the fields you provide will
            override the classifier's saved configuration.
      required:
        - id
      description: Reference to the classifier to run against every input in this batch.
      title: ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaClassifier
    ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
        - $ref: '#/components/schemas/FileFromText'
      description: The file to classify. Can be a URL, an Extend file ID, or raw text.
      title: ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile
    ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems:
      type: object
      properties:
        file:
          $ref: '#/components/schemas/ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile'
          description: The file to classify. Can be a URL, an Extend file ID, or raw text.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
      required:
        - file
      title: ClassifyRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems
    SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaSplitter:
      type: object
      properties:
        id:
          type: string
          description: The ID of the splitter to use.
        version:
          $ref: '#/components/schemas/ProcessorVersionString'
          default: latest
        overrideConfig:
          $ref: '#/components/schemas/SplitOverrideConfig'
          description: >
            Optional partial configuration override applied to every run in this batch. Only the fields you provide will
            override the splitter's saved configuration.
      required:
        - id
      description: Reference to the splitter to run against every input in this batch.
      title: SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaSplitter
    SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile:
      oneOf:
        - $ref: '#/components/schemas/FileFromUrl'
        - $ref: '#/components/schemas/FileFromId'
      description: The file to split. Can be a URL or an Extend file ID. Raw text input is not supported.
      title: SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile
    SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems:
      type: object
      properties:
        file:
          $ref: '#/components/schemas/SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItemsFile'
          description: The file to split. Can be a URL or an Extend file ID. Raw text input is not supported.
        metadata:
          $ref: '#/components/schemas/RunMetadata'
      required:
        - file
      title: SplitRunsBatchPostRequestBodyContentApplicationJsonSchemaInputsItems
    LegacyProcessorId:
      type: string
      description: |
        The ID of the processor to be run.

        Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
      title: LegacyProcessorId
    LegacyProcessorRunFileInput:
      type: object
      properties:
        fileName:
          type: string
          description: >-
            The name of the file to be processed. If not provided, the file name will be inferred from the URL. It is
            highly recommended to include this parameter for legibility.
        fileUrl:
          type: string
          description: >-
            A URL where the file can be downloaded from. If you use presigned URLs, we recommend an expiration time of
            5-15 minutes. One of a `fileUrl` or `fileId` must be provided.
        fileId:
          type: string
          description: >
            Extend's internal ID for the file. It will always start with `file_`. One of a `fileUrl` or `fileId` must be
            provided. You can view a file ID from the Extend UI, for instance from running a parser or from a previous
            file creation. If you provide a `fileId`, any parsed data will be reused.
      description: Input file for running a single processor.
      title: LegacyProcessorRunFileInput
    LegacyJsonObject:
      type: object
      additionalProperties:
        description: Any type
      description: A flexible object that can hold any arbitrary JSON key-value structure.
      title: LegacyJsonObject
    LegacyClassificationConfigType:
      type: string
      enum:
        - CLASSIFY
      description: The type of configuration. Must be `"CLASSIFY"` for classification processors.
      title: LegacyClassificationConfigType
    LegacyClassificationConfigBaseProcessor:
      type: string
      enum:
        - classification_performance
        - classification_light
      default: classification_performance
      description: >
        The base processor to use. For classifiers, this must be either `"classification_performance"` or
        `"classification_light"`. See [Classification
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
        more details.
      title: LegacyClassificationConfigBaseProcessor
    LegacyClassification:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the classification. We recommend lowercase, underscore-separated format.
        type:
          type: string
          description: Type identifier for the classification.
        description:
          type: string
          description: A detailed description of the classification.
      required:
        - id
        - type
        - description
      title: LegacyClassification
    LegacyClassificationAdvancedOptionsContext:
      type: string
      enum:
        - default
        - max
      default: default
      description: The context to use for classification.
      title: LegacyClassificationAdvancedOptionsContext
    LegacyClassificationAdvancedOptions:
      type: object
      properties:
        context:
          $ref: '#/components/schemas/LegacyClassificationAdvancedOptionsContext'
          default: default
          description: The context to use for classification.
        advancedMultimodalEnabled:
          type: boolean
          default: false
          description: Enable advanced multimodal processing for better handling of visual elements during classification.
        fixedPageLimit:
          type: integer
          description: >-
            Limit processing to a specific number of pages from the beginning of the document. See [Page
            Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
      title: LegacyClassificationAdvancedOptions
    LegacyClassificationConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/LegacyClassificationConfigType'
          description: The type of configuration. Must be `"CLASSIFY"` for classification processors.
        baseProcessor:
          $ref: '#/components/schemas/LegacyClassificationConfigBaseProcessor'
          default: classification_performance
          description: >
            The base processor to use. For classifiers, this must be either `"classification_performance"` or
            `"classification_light"`. See [Classification
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
            more details.
        baseVersion:
          type: string
          description: >-
            The version of the `"classification_performance"` or `"classification_light"` processor to use. If this is
            provided, the `baseProcessor` must also be provided. See [Classification
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/classification/classification-performance) for
            more details.
        classifications:
          type: array
          items:
            $ref: '#/components/schemas/LegacyClassification'
          description: Array of possible classifications for the document.
        classificationRules:
          type: string
          description: Custom rules to guide the classification process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/LegacyClassificationAdvancedOptions'
          description: Advanced configuration options.
        parser:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - type
        - classifications
      title: LegacyClassificationConfig
    LegacyExtractionConfigType:
      type: string
      enum:
        - EXTRACT
      description: The type of configuration. Must be "EXTRACT" for extraction processors.
      title: LegacyExtractionConfigType
    LegacyExtractionConfigBaseProcessor:
      type: string
      enum:
        - extraction_performance
        - extraction_light
      default: extraction_performance
      description: >
        The base processor to use. For extractors, this must be either `"extraction_performance"` or
        `"extraction_light"`. See [Extraction
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
        details.
      title: LegacyExtractionConfigBaseProcessor
    LegacyExtractionFieldType:
      type: string
      enum:
        - string
        - number
        - currency
        - boolean
        - date
        - array
        - enum
        - object
        - signature
      description: The type of the field.
      title: LegacyExtractionFieldType
    LegacyExtractionField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the field.
        name:
          type: string
          description: Human-readable name for the field.
        type:
          $ref: '#/components/schemas/LegacyExtractionFieldType'
          description: The type of the field.
        description:
          type: string
          description: Detailed description of the field, including expected content and format.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/LegacyExtractionField'
          description: Required when type is "array" or "object". Contains nested field definitions.
        enum:
          type: array
          items:
            $ref: '#/components/schemas/Enum'
          description: Required when type is "enum". List of allowed values.
      required:
        - id
        - name
        - type
        - description
      title: LegacyExtractionField
    LegacyExtractionAdvancedOptionsArrayCitationStrategy:
      type: string
      enum:
        - item
        - property
      description: >-
        Granularity for array citations. This requires citationsEnabled=true and a base processor version that supports
        property-level array citations (extraction_performance ≥ 4.4.0).
      title: LegacyExtractionAdvancedOptionsArrayCitationStrategy
    LegacyExtractionAdvancedOptionsReviewAgent:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether to enable the review agent for the extraction output.
      description: |
        Configuration for the review agent that analyzes extraction results.
        When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5)
        and may include additional `insights` of type `issue` or `review_summary` to help identify
        fields that may need manual review.

        Enabling the review agent incurs additional credits.

        To learn more, view the [Review Agent Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
      title: LegacyExtractionAdvancedOptionsReviewAgent
    LegacyExtractChunkingOptionsChunkingStrategy:
      type: string
      enum:
        - standard
        - semantic
      description: The strategy to use for chunking the document.
      title: LegacyExtractChunkingOptionsChunkingStrategy
    LegacyExtractChunkingOptionsChunkSelectionStrategy:
      type: string
      enum:
        - intelligent
        - confidence
        - take_first
        - take_last
      description: The strategy to use for selecting chunks.
      title: LegacyExtractChunkingOptionsChunkSelectionStrategy
    LegacyExtractChunkingOptions:
      type: object
      properties:
        chunkingStrategy:
          $ref: '#/components/schemas/LegacyExtractChunkingOptionsChunkingStrategy'
          description: The strategy to use for chunking the document.
        pageChunkSize:
          type: integer
          description: The size of page chunks.
        chunkSelectionStrategy:
          $ref: '#/components/schemas/LegacyExtractChunkingOptionsChunkSelectionStrategy'
          description: The strategy to use for selecting chunks.
        customSemanticChunkingRules:
          type: string
          description: Custom rules for semantic chunking.
      title: LegacyExtractChunkingOptions
    LegacyExtractionAdvancedOptionsExcelSheetSelectionStrategy:
      type: string
      enum:
        - intelligent
        - all
        - first
        - last
      description: Strategy for selecting sheets from Excel documents.
      title: LegacyExtractionAdvancedOptionsExcelSheetSelectionStrategy
    LegacyExtractionAdvancedOptions:
      type: object
      properties:
        documentKind:
          type: string
          description: DEPRECATED - use extractionRules for all system prompts.
        keyDefinitions:
          type: string
          description: DEPRECATED - use extractionRules for all system prompts.
        modelReasoningInsightsEnabled:
          type: boolean
          description: Whether to enable model reasoning insights.
        advancedMultimodalEnabled:
          type: boolean
          description: Whether to enable advanced multimodal features.
        citationsEnabled:
          type: boolean
          description: Whether to enable citations in the output.
        arrayCitationStrategy:
          $ref: '#/components/schemas/LegacyExtractionAdvancedOptionsArrayCitationStrategy'
          description: >-
            Granularity for array citations. This requires citationsEnabled=true and a base processor version that
            supports property-level array citations (extraction_performance ≥ 4.4.0).
        advancedFigureParsingEnabled:
          type: boolean
          description: Whether to enable advanced figure parsing.
        reviewAgent:
          $ref: '#/components/schemas/LegacyExtractionAdvancedOptionsReviewAgent'
          description: >
            Configuration for the review agent that analyzes extraction results.

            When enabled, each field in the output metadata will include a `reviewAgentScore` (1-5)

            and may include additional `insights` of type `issue` or `review_summary` to help identify

            fields that may need manual review.


            Enabling the review agent incurs additional credits.


            To learn more, view the [Review Agent
            Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
        arrayStrategy:
          $ref: '#/components/schemas/ArrayStrategy'
          description: Strategy for handling large arrays in documents.
        chunkingOptions:
          $ref: '#/components/schemas/LegacyExtractChunkingOptions'
        excelSheetRanges:
          type: array
          items:
            $ref: '#/components/schemas/ExcelSheetRange'
          description: Ranges of sheet indices to extract from Excel documents.
        excelSheetSelectionStrategy:
          $ref: '#/components/schemas/LegacyExtractionAdvancedOptionsExcelSheetSelectionStrategy'
          description: Strategy for selecting sheets from Excel documents.
        fixedPageLimit:
          type: integer
          description: DEPRECATED - See [Page Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
      title: LegacyExtractionAdvancedOptions
    LegacyExtractionConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/LegacyExtractionConfigType'
          description: The type of configuration. Must be "EXTRACT" for extraction processors.
        baseProcessor:
          $ref: '#/components/schemas/LegacyExtractionConfigBaseProcessor'
          default: extraction_performance
          description: >
            The base processor to use. For extractors, this must be either `"extraction_performance"` or
            `"extraction_light"`. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        baseVersion:
          type: string
          description: >-
            The version of the `"extraction_performance"` or `"extraction_light"` processor to use. If this is provided,
            the `baseProcessor` must also be provided. See [Extraction
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/extraction/extraction-performance) for more
            details.
        extractionRules:
          type: string
          description: Custom rules to guide the extraction process in natural language.
        schema:
          $ref: '#/components/schemas/JsonObject'
          description: >
            JSON Schema definition of the data to extract. Either `fields` or `schema` must be provided.


            See the [JSON Schema guide](https://docs.extend.ai/2026-02-09/extraction/schema) for details and examples of
            schema configuration.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/LegacyExtractionField'
          description: |
            Array of fields to extract from the document. Either `fields` or `schema` must be provided.

            We recommend using `schema` for new implementations.
        advancedOptions:
          $ref: '#/components/schemas/LegacyExtractionAdvancedOptions'
          description: Advanced configuration options.
        parser:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - type
      title: LegacyExtractionConfig
    LegacySplitterConfigType:
      type: string
      enum:
        - SPLITTER
      description: The type of configuration. Must be "SPLITTER" for splitter processors.
      title: LegacySplitterConfigType
    LegacySplitterConfigBaseProcessor:
      type: string
      enum:
        - splitting_performance
        - splitting_light
      default: splitting_performance
      description: >
        The base processor to use. For splitters, this can currently only be `"splitting_performance"` or
        `"splitting_light"`. See [Splitting
        Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more details.
      title: LegacySplitterConfigBaseProcessor
    LegacySplitterAdvancedOptionsSplitMethod:
      type: string
      enum:
        - high_precision
        - low_latency
      default: high_precision
      description: >
        The method to use for splitting documents. `high_precision` is more accurate but slower, while `low_latency` is
        faster but less precise.


        **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, this field has no impact
        and is ignored if provided. It is still accepted for compatibility with older integrations.
      title: LegacySplitterAdvancedOptionsSplitMethod
    LegacySplitterAdvancedOptions:
      type: object
      properties:
        splitIdentifierRules:
          type: string
          description: Custom rules for identifying split points.
        splitMethod:
          $ref: '#/components/schemas/LegacySplitterAdvancedOptionsSplitMethod'
          default: high_precision
          description: >
            The method to use for splitting documents. `high_precision` is more accurate but slower, while `low_latency`
            is faster but less precise.


            **Deprecated:** For `splitting_light` >= 1.3.0 and `splitting_performance` >= 1.5.0, this field has no
            impact and is ignored if provided. It is still accepted for compatibility with older integrations.
        splitExcelDocumentsBySheetEnabled:
          type: boolean
          default: false
          description: For Excel documents, split by worksheet.
        fixedPageLimit:
          type: integer
          description: >-
            Limit processing to a specific number of pages from the beginning of the document. See [Page
            Ranges](https://docs.extend.ai/2026-02-09/page-ranges).
        pageRanges:
          $ref: '#/components/schemas/PageRanges'
      title: LegacySplitterAdvancedOptions
    LegacySplitterConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/LegacySplitterConfigType'
          description: The type of configuration. Must be "SPLITTER" for splitter processors.
        baseProcessor:
          $ref: '#/components/schemas/LegacySplitterConfigBaseProcessor'
          default: splitting_performance
          description: >
            The base processor to use. For splitters, this can currently only be `"splitting_performance"` or
            `"splitting_light"`. See [Splitting
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more
            details.
        baseVersion:
          type: string
          description: >-
            The version of the `"splitting_performance"` or `"splitting_light"` processor to use. If this is provided,
            the `baseProcessor` must also be provided. See [Splitting
            Changelog](https://docs.extend.ai/2026-02-09/model-versioning/splitting/splitting-performance) for more
            details.
        splitClassifications:
          type: array
          items:
            $ref: '#/components/schemas/LegacyClassification'
          description: Array of classifications that define the possible types of document sections.
        splitRules:
          type: string
          description: Custom rules to guide the document splitting process in natural language.
        advancedOptions:
          $ref: '#/components/schemas/LegacySplitterAdvancedOptions'
          description: Advanced configuration options.
        parser:
          $ref: '#/components/schemas/ParseConfig'
          description: Configuration options for the parsing process.
      required:
        - type
        - splitClassifications
      title: LegacySplitterConfig
    ProcessorRunsPostRequestBodyContentApplicationJsonSchemaConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: >-
        The configuration for the processor run. If this is provided, this config will be used. If not provided, the
        config for the specific version you provide will be used. The type of configuration must match the processor
        type.
      title: ProcessorRunsPostRequestBodyContentApplicationJsonSchemaConfig
    LegacyProcessorStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
        - CANCELLED
      description: |
        The status of a processor run:
        * `"PENDING"` - The processor run has not started yet
        * `"PROCESSING"` - The processor run is in progress
        * `"PROCESSED"` - The processor run completed successfully
        * `"FAILED"` - The processor run failed
        * `"CANCELLED"` - The processor run was cancelled
      title: LegacyProcessorStatus
    LegacyJsonOutputMetadataCitationsItemsPolygonItems:
      type: object
      properties:
        x:
          type: number
          format: double
          description: X coordinate of the point
        'y':
          type: number
          format: double
          description: Y coordinate of the point
      required:
        - x
        - 'y'
      title: LegacyJsonOutputMetadataCitationsItemsPolygonItems
    LegacyJsonOutputMetadataCitationsItems:
      type: object
      properties:
        page:
          type: number
          format: double
          description: Page number where the citation was found
        referenceText:
          type:
            - string
            - 'null'
          description: The text that was referenced
        polygon:
          type: array
          items:
            $ref: '#/components/schemas/LegacyJsonOutputMetadataCitationsItemsPolygonItems'
          description: Array of points defining the polygon around the referenced text
        pageWidth:
          type: number
          format: double
          description: Width of the page in points
        pageHeight:
          type: number
          format: double
          description: Height of the page in points
      title: LegacyJsonOutputMetadataCitationsItems
    LegacyJsonOutputMetadata:
      type: object
      properties:
        ocrConfidence:
          type:
            - number
            - 'null'
          format: double
          description: Confidence score from OCR processing, if applicable
        logprobsConfidence:
          type:
            - number
            - 'null'
          format: double
          description: Confidence score based on model logprobs
        reviewAgentScore:
          type:
            - integer
            - 'null'
          description: >
            A 1-5 score indicating the review agent's confidence in the extracted value.

            - 5: High confidence, no issues detected

            - 4: Good confidence, minor observations

            - 3: Moderate confidence, some uncertainty

            - 2: Low confidence, likely issues

            - 1: Very low confidence, significant problems detected


            These scores will be present when the `reviewAgent.enabled` flag is set to `true` in the processor config.

            If the review agent is enabled but a score is not returned for a field, this value will be `null`.

            To learn more, view the [Review Agent
            Documentation](https://docs.extend.ai/2026-02-09/extraction/review-agent)
        citations:
          type: array
          items:
            $ref: '#/components/schemas/LegacyJsonOutputMetadataCitationsItems'
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
      required:
        - logprobsConfidence
      title: LegacyJsonOutputMetadata
    LegacyJsonOutput:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/JsonObject'
          description: The extracted values conforming to the schema defined in the processor config
        metadata:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LegacyJsonOutputMetadata'
          description: Metadata about the extracted fields
      required:
        - value
        - metadata
      title: LegacyJsonOutput
    LegacyExtractionFieldResultType:
      type: string
      enum:
        - string
        - number
        - currency
        - boolean
        - date
        - enum
        - array
        - object
        - signature
      description: The type of the extracted field
      title: LegacyExtractionFieldResultType
    LegacyExtractionFieldResult:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this field
        type:
          $ref: '#/components/schemas/LegacyExtractionFieldResultType'
          description: The type of the extracted field
        value:
          description: >-
            The extracted value, type depends on the field type. More details can be found
            [here](https://docs.extend.ai/2026-02-09/extraction/response-format).
        confidence:
          type: number
          format: double
          description: A value between 0 and 1 indicating confidence in the extraction
        schema:
          type: array
          items:
            $ref: '#/components/schemas/LegacyExtractionField'
          description: The field schema of nested fields
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
          description: Reasoning and other insights from the model
        references:
          type: array
          items:
            $ref: '#/components/schemas/ExtractionFieldResultReference'
          description: References for the extracted field
        enum:
          type: array
          items:
            $ref: '#/components/schemas/EnumOption'
          description: The enum options for enum fields, only set when type=enum
      required:
        - id
        - type
        - value
        - references
      title: LegacyExtractionFieldResult
    LegacyFieldsArrayOutput:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/LegacyExtractionFieldResult'
      description: The output from an extraction processor
      title: LegacyFieldsArrayOutput
    LegacyExtractionOutput:
      oneOf:
        - $ref: '#/components/schemas/LegacyJsonOutput'
        - $ref: '#/components/schemas/LegacyFieldsArrayOutput'
      description: The output from an extraction processor
      title: LegacyExtractionOutput
    LegacyClassifierOutput:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this classification
        type:
          type: string
          description: The type of classification
        confidence:
          type: number
          format: double
          description: >-
            A value between 0 and 1 indicating the model's confidence in the classification, where 1 represents maximum
            confidence
        insights:
          type: array
          items:
            $ref: '#/components/schemas/Insight'
          description: Additional insights about the classification decision
      required:
        - id
        - type
        - confidence
        - insights
      title: LegacyClassifierOutput
    LegacySplitterOutputSplitsItems:
      type: object
      properties:
        type:
          type: string
          description: The type of the split document (set in the processor config), corresponds to the classificationId
        observation:
          type: string
          description: Explanation of the results
        identifier:
          type: string
          description: Identifier for the split document (e.g. invoice number)
        startPage:
          type: integer
          description: The start page of the split document
        endPage:
          type: integer
          description: The end page of the split document
        name:
          type: string
          description: Optional name for the split
        classificationId:
          type: string
          description: ID of the classification type (set in the processor config)
        id:
          type: string
          description: Unique ID for this split
        fileId:
          type: string
          description: File ID associated with this split
      required:
        - type
        - observation
        - identifier
        - startPage
        - endPage
        - classificationId
        - id
        - fileId
      title: LegacySplitterOutputSplitsItems
    LegacySplitterOutput:
      type: object
      properties:
        splits:
          type: array
          items:
            $ref: '#/components/schemas/LegacySplitterOutputSplitsItems'
        isExternal:
          type: boolean
      required:
        - splits
      title: LegacySplitterOutput
    LegacyProcessorOutput:
      oneOf:
        - $ref: '#/components/schemas/LegacyExtractionOutput'
        - $ref: '#/components/schemas/LegacyClassifierOutput'
        - $ref: '#/components/schemas/LegacySplitterOutput'
      description: The output from a processor run. The type of output will match the processor type.
      title: LegacyProcessorOutput
    LegacyExtractionOutputEdits:
      type: object
      properties:
        originalValue:
          description: The original value before editing.
        editedValue:
          description: The value after editing.
        notes:
          type: string
          description: Any notes added during editing.
        page:
          type: number
          format: double
          description: The page number where the edit was made.
        fieldType:
          type: string
          description: The type of the edited field.
      description: |
        A record of edits made to the processor output.
      title: LegacyExtractionOutputEdits
    LegacyProcessorRunType:
      type: string
      enum:
        - CLASSIFY
        - EXTRACT
        - SPLITTER
      description: |
        The type of processor:
        * `"CLASSIFY"` - Classifies documents into categories
        * `"EXTRACT"` - Extracts structured data from documents
        * `"SPLITTER"` - Splits documents into multiple parts
      title: LegacyProcessorRunType
    LegacyProcessorRunConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: The configuration used for this processor run. The type of configuration will match the processor type.
      title: LegacyProcessorRunConfig
    LegacyProcessorRunMergedProcessorsItems:
      type: object
      properties:
        processorId:
          type: string
          description: |
            The ID of the merged processor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        processorVersionId:
          type: string
          description: |
            The ID of the specific processor version used.
        processorName:
          type: string
          description: |
            The name of the merged processor.

            Example: `"Invoice Line Items Processor"`
      required:
        - processorId
        - processorVersionId
        - processorName
      title: LegacyProcessorRunMergedProcessorsItems
    LegacyDocumentProcessorRunCredits:
      type: object
      properties:
        credits:
          type: number
          format: double
          description: >-
            The number of credits consumed specifically for document processing in this processor run. This does not
            include file parsing credits.
      required:
        - credits
      description: >
        These are usage credits for document processing (extraction, classification, or splitting). File parsing credits
        are tracked separately and can be retrieved from the [Get
        File](https://docs.extend.ai/2026-02-09/api-reference/endpoints/file/get-file) endpoint.


        This field will not be returned for processor runs created before October 7, 2025, or for customers on legacy
        billing systems.


        For more details on how credits work, see our [Credits Guide](https://docs.extend.ai/general/how-credits-work).
      title: LegacyDocumentProcessorRunCredits
    LegacyProcessorRun:
      type: object
      properties:
        object:
          type: string
          description: |
            The type of response. In this case, it will always be `"document_processor_run"`.
        id:
          type: string
          description: |
            The unique identifier for this processor run.

            Example: `"exr_Xj8mK2pL9nR4vT7qY5wZ"`
        processorId:
          type: string
          description: |
            The ID of the processor used for this run.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        processorVersionId:
          type: string
          description: |
            The ID of the specific processor version used.
        processorName:
          type: string
          description: |
            The name of the processor.

            Example: `"Invoice Processor"`
        status:
          $ref: '#/components/schemas/LegacyProcessorStatus'
        output:
          $ref: '#/components/schemas/LegacyProcessorOutput'
          description: |
            The final output, either reviewed or initial.

            Conforms to the shape of output types and depends on the processor type and configuration shape.
        failureReason:
          type: string
          description: |
            If the run failed, indicates the reason for failure.
        failureMessage:
          type: string
          description: |
            If the run failed, provides a detailed message about the failure.
        metadata:
          $ref: '#/components/schemas/JsonObject'
          description: Any metadata that was provided when creating the processor run.
        reviewed:
          type: boolean
          description: Indicates whether the run has been reviewed.
        edited:
          type: boolean
          description: Indicates whether the run results have been edited.
        edits:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LegacyExtractionOutputEdits'
        type:
          $ref: '#/components/schemas/LegacyProcessorRunType'
          description: |
            The type of processor:
            * `"CLASSIFY"` - Classifies documents into categories
            * `"EXTRACT"` - Extracts structured data from documents
            * `"SPLITTER"` - Splits documents into multiple parts
        config:
          $ref: '#/components/schemas/LegacyProcessorRunConfig'
          description: The configuration used for this processor run. The type of configuration will match the processor type.
        initialOutput:
          $ref: '#/components/schemas/LegacyProcessorOutput'
          description: The initial output from the processor run. The type of output will match the processor type.
        reviewedOutput:
          $ref: '#/components/schemas/LegacyProcessorOutput'
          description: The output after review, if any.
        files:
          type: array
          items:
            $ref: '#/components/schemas/File'
          description: |
            Details of the processed files.

            If this was a file generated from a splitter processor, this will be the sub file.

            See the File object for more details.
        mergedProcessors:
          type: array
          items:
            $ref: '#/components/schemas/LegacyProcessorRunMergedProcessorsItems'
          description: >
            An array of processors that were merged to create this output. Will be an empty array unless this output was
            the result of a MergeExtraction step in a workflow.
        url:
          type: string
          description: |
            The URL to view the processor run.
        usage:
          $ref: '#/components/schemas/LegacyDocumentProcessorRunCredits'
      required:
        - object
        - id
        - processorId
        - processorVersionId
        - processorName
        - status
        - output
        - reviewed
        - edited
        - edits
        - type
        - config
        - files
        - mergedProcessors
        - url
      title: LegacyProcessorRun
    processorRun_create_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processorRun:
          $ref: '#/components/schemas/LegacyProcessorRun'
      required:
        - success
        - processorRun
      title: processorRun_create_Response_200
    LegacyError:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
          description: Error message
      title: LegacyError
    RunProcessorRequestTooManyRequestsError:
      type: object
      properties:
        error:
          type: string
      required:
        - error
      title: RunProcessorRequestTooManyRequestsError
    processorRun_get_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processorRun:
          $ref: '#/components/schemas/LegacyProcessorRun'
      required:
        - success
        - processorRun
      title: processorRun_get_Response_200
    processorRun_delete_Response_200:
      type: object
      properties:
        success:
          type: boolean
        documentProcessorRunId:
          type: string
          description: The ID of the deleted processor run
        message:
          type: string
          description: Confirmation message
      required:
        - success
        - documentProcessorRunId
        - message
      title: processorRun_delete_Response_200
    LegacyExtendError:
      type: object
      properties:
        code:
          type: string
          description: Error code identifying the type of error
        message:
          type: string
          description: Human-readable error message
        requestId:
          type: string
          description: Unique request identifier for support purposes
        retryable:
          type: boolean
          description: Whether the request can be retried
      required:
        - code
        - message
        - requestId
        - retryable
      title: LegacyExtendError
    processorRun_cancel_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processorRun:
          $ref: '#/components/schemas/LegacyProcessorRun'
      required:
        - success
        - processorRun
      title: processorRun_cancel_Response_200
    LegacyProcessorType:
      type: string
      enum:
        - EXTRACT
        - CLASSIFY
        - SPLITTER
      description: |
        The type of processor:
        * `"EXTRACT"` - Extracts structured data from documents
        * `"CLASSIFY"` - Classifies documents into categories
        * `"SPLITTER"` - Splits documents into multiple parts
      title: LegacyProcessorType
    ProcessorRunsGetParametersSource:
      type: string
      enum:
        - ADMIN
        - BATCH_PROCESSOR_RUN
        - PLAYGROUND
        - WORKFLOW_CONFIGURATION
        - WORKFLOW_RUN
        - STUDIO
        - API
      title: ProcessorRunsGetParametersSource
    LegacySortByEnum:
      type: string
      enum:
        - updatedAt
        - createdAt
      default: updatedAt
      title: LegacySortByEnum
    LegacySortDirEnum:
      type: string
      enum:
        - asc
        - desc
      default: desc
      title: LegacySortDirEnum
    LegacyNextPageToken:
      type: string
      description: >
        The token used to fetch the page of results from a previous request. We use cursor based pagination and will
        return a `nextPageToken` in the response if there are more results.


        Note that if other parameters are changed in subsequent requests, you may receive inconsistent data.


        example: `"xK9mLPqRtN3vS8wF5hB2cQ==:zWvUxYjM4nKpL7aDgE9HbTcR2mAyX3/Q+CNkfBSw1dZ="`
      title: LegacyNextPageToken
    LegacyMaxPageSize:
      type: integer
      default: 10
      description: >-
        The maximum number of results to return in the response. You may receive less than this number if there are
        fewer results than the maximum.
      title: LegacyMaxPageSize
    LegacyProcessorRunSummaryType:
      type: string
      enum:
        - EXTRACT
        - SPLITTER
        - CLASSIFY
      description: |
        The type of processor that was run:
        * `"EXTRACT"` - Extraction processor
        * `"SPLITTER"` - Splitting processor
        * `"CLASSIFY"` - Classification processor
      title: LegacyProcessorRunSummaryType
    LegacyProcessorRunSummary:
      type: object
      properties:
        id:
          type: string
          description: |
            The ID of the processor run.

            Example: `"exr_Zk9mNP12Qw4-yTv8BdR3H"`
        status:
          $ref: '#/components/schemas/LegacyProcessorStatus'
        processorId:
          type: string
          description: |
            The ID of the processor that was run. Will always start with "ex_".

            Example: `"ex_BMdfq_yWM3sT-ZzvCnA3f"`
        processorName:
          type: string
          description: |
            The name of the processor that was run.

            Example: `"Invoice Extractor"`
        processorVersionId:
          type: string
          description: |
            The ID of the processor version that was run. Will always start with "exv_".

            Example: `"exv_Zk9mNP12Qw4-yTv8BdR3H"`
        type:
          $ref: '#/components/schemas/LegacyProcessorRunSummaryType'
          description: |
            The type of processor that was run:
            * `"EXTRACT"` - Extraction processor
            * `"SPLITTER"` - Splitting processor
            * `"CLASSIFY"` - Classification processor
        createdAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor run was created. Will follow the RFC 3339 format.

            Example: `"2024-03-21T15:29:55Z"`
        updatedAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor run was last updated. Will follow the RFC 3339 format.

            Example: `"2024-03-21T16:45:00Z"`
        usage:
          $ref: '#/components/schemas/LegacyDocumentProcessorRunCredits'
      required:
        - id
        - status
        - processorId
        - processorName
        - processorVersionId
        - createdAt
        - updatedAt
      title: LegacyProcessorRunSummary
    processorRun_list_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processorRuns:
          type: array
          items:
            $ref: '#/components/schemas/LegacyProcessorRunSummary'
        nextPageToken:
          $ref: '#/components/schemas/LegacyNextPageToken'
      required:
        - success
        - processorRuns
      title: processorRun_list_Response_200
    ProcessorsPostRequestBodyContentApplicationJsonSchemaConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: >-
        The configuration for the processor. The type of configuration must match the processor type. One of
        `cloneProcessorId` or `config` must be provided.
      title: ProcessorsPostRequestBodyContentApplicationJsonSchemaConfig
    LegacyProcessorVersionConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: >
        The configuration settings for this version of the document processor. The structure of this object will vary
        depending on the processor type.


        See the configuration section in the "Guides" tab, for yout specific processor type, for more details on the
        configuration settings.
      title: LegacyProcessorVersionConfig
    LegacyProcessorVersion:
      type: object
      properties:
        object:
          type: string
          description: |
            The type of the object. In this case, it will always be `"document_processor_version"`.
        id:
          type: string
          description: |
            The unique identifier for this version of the document processor.

            Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
        processorId:
          type: string
          description: |
            The ID of the parent document processor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        processorName:
          type: string
          description: |
            The name of the parent document processor.

            Example: `"Invoice Processor"`
        processorType:
          $ref: '#/components/schemas/LegacyProcessorType'
        description:
          type: string
          description: |
            An optional description of this version of the document processor.

            Example: `"Updated extraction fields for new invoice format"`
        version:
          type: string
          description: >
            The version number or identifier for this specific version of the document processor. The draft version will
            have version="draft".


            Examples: `"1.0"`, `"2.1"`, `"draft"`
        config:
          $ref: '#/components/schemas/LegacyProcessorVersionConfig'
          description: >
            The configuration settings for this version of the document processor. The structure of this object will
            vary depending on the processor type.


            See the configuration section in the "Guides" tab, for yout specific processor type, for more details on the
            configuration settings.
        createdAt:
          type: string
          format: date-time
          description: >
            The time (in UTC) at which this version of the document processor was created. Will follow the RFC 3339
            format.


            Example: `"2024-03-21T15:30:00Z"`
        updatedAt:
          type: string
          format: date-time
          description: >
            The time (in UTC) at which this version of the document processor was last updated. Will follow the RFC 3339
            format.


            Example: `"2024-03-21T16:45:00Z"`
      required:
        - object
        - id
        - processorId
        - processorType
        - version
        - config
        - createdAt
        - updatedAt
      title: LegacyProcessorVersion
    LegacyProcessor:
      type: object
      properties:
        object:
          type: string
          description: |
            The type of response. In this case, it will always be `"document_processor"`.
        id:
          type: string
          description: |
            The ID of the processor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the processor.

            Example: `"Invoice Processor"`
        type:
          $ref: '#/components/schemas/LegacyProcessorType'
        createdAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor was created. Will follow the RFC 3339 format.

            Example: `"2024-03-21T15:30:00Z"`
        updatedAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor was last updated. Will follow the RFC 3339 format.

            Example: `"2024-03-21T16:45:00Z"`
        draftVersion:
          $ref: '#/components/schemas/LegacyProcessorVersion'
      required:
        - object
        - id
        - name
        - type
        - createdAt
        - updatedAt
        - draftVersion
      title: LegacyProcessor
    processor_create_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processor:
          $ref: '#/components/schemas/LegacyProcessor'
      required:
        - success
        - processor
      title: processor_create_Response_200
    ProcessorsGetParametersSortBy:
      type: string
      enum:
        - createdAt
        - updatedAt
      default: updatedAt
      title: ProcessorsGetParametersSortBy
    ProcessorsGetParametersSortDir:
      type: string
      enum:
        - asc
        - desc
      default: desc
      title: ProcessorsGetParametersSortDir
    LegacyListProcessorsProcessorObject:
      type: string
      enum:
        - document_processor
      description: |
        The type of response. In this case, it will always be `"document_processor"`.
      title: LegacyListProcessorsProcessorObject
    LegacyListProcessorsProcessorVersion:
      type: object
      properties:
        id:
          type: string
          description: |
            The unique identifier for this version of the document processor.

            Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
        version:
          type: string
          description: |
            The version number or identifier for this processor version.

            Example: `"3"`
      required:
        - id
        - version
      title: LegacyListProcessorsProcessorVersion
    LegacyListProcessorsProcessor:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/LegacyListProcessorsProcessorObject'
          description: |
            The type of response. In this case, it will always be `"document_processor"`.
        id:
          type: string
          description: |
            The ID of the processor.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        name:
          type: string
          description: |
            The name of the processor.

            Example: `"Invoice Processor"`
        type:
          $ref: '#/components/schemas/LegacyProcessorType'
        versions:
          type: array
          items:
            $ref: '#/components/schemas/LegacyListProcessorsProcessorVersion'
          description: Array of all versions for this processor
        createdAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor was created. Will follow the RFC 3339 format.

            Example: `"2024-03-21T15:30:00Z"`
        updatedAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the processor was last updated. Will follow the RFC 3339 format.

            Example: `"2024-03-21T16:45:00Z"`
      required:
        - object
        - id
        - name
        - type
        - versions
        - createdAt
        - updatedAt
      title: LegacyListProcessorsProcessor
    LegacyListProcessorsResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates the request was successful
        warning:
          type:
            - string
            - 'null'
          description: Optional warning message
        processors:
          type: array
          items:
            $ref: '#/components/schemas/LegacyListProcessorsProcessor'
          description: Array of processors
        nextPageToken:
          type:
            - string
            - 'null'
          description: Token for retrieving the next page of results. Will be null if there are no more results.
      required:
        - success
        - processors
      title: LegacyListProcessorsResponse
    ProcessorsIdPostRequestBodyContentApplicationJsonSchemaConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: |
        The new configuration for the processor. The type of configuration must match the processor type:
        * For classification processors, use `ClassificationConfig`
        * For extraction processors, use `ExtractionConfig`
        * For splitter processors, use `SplitterConfig`
      title: ProcessorsIdPostRequestBodyContentApplicationJsonSchemaConfig
    processor_update_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processor:
          $ref: '#/components/schemas/LegacyProcessor'
      required:
        - success
        - processor
      title: processor_update_Response_200
    processorVersion_list_Response_200:
      type: object
      properties:
        success:
          type: boolean
        versions:
          type: array
          items:
            $ref: '#/components/schemas/LegacyProcessorVersion'
          description: An array of ProcessorVersion objects representing all versions of the specified processor.
      required:
        - success
        - versions
      title: processorVersion_list_Response_200
    ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaReleaseType:
      type: string
      enum:
        - major
        - minor
      description: >-
        The type of release for this version. The two options are "major" and "minor", which will increment the version
        number accordingly.
      title: ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaReleaseType
    ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaConfig:
      oneOf:
        - $ref: '#/components/schemas/LegacyClassificationConfig'
        - $ref: '#/components/schemas/LegacyExtractionConfig'
        - $ref: '#/components/schemas/LegacySplitterConfig'
      description: The configuration for this version of the processor. The type of configuration must match the processor type.
      title: ProcessorsIdPublishPostRequestBodyContentApplicationJsonSchemaConfig
    processorVersion_create_Response_200:
      type: object
      properties:
        success:
          type: boolean
        processorVersion:
          $ref: '#/components/schemas/LegacyProcessorVersion'
      required:
        - success
        - processorVersion
      title: processorVersion_create_Response_200
    processorVersion_get_Response_200:
      type: object
      properties:
        success:
          type: boolean
        version:
          $ref: '#/components/schemas/LegacyProcessorVersion'
          description: A ProcessorVersion object representing the requested version of the processor.
      required:
        - success
        - version
      title: processorVersion_get_Response_200
    LegacyBatchProcessorRunMetrics:
      type: object
      properties:
        numFiles:
          type: number
          format: double
          description: The total number of files processed in this batch run
        numPages:
          type: number
          format: double
          description: The total number of pages processed in this batch run
      title: LegacyBatchProcessorRunMetrics
    LegacyBatchProcessorRunStatus:
      type: string
      enum:
        - PENDING
        - PROCESSING
        - PROCESSED
        - FAILED
      description: |
        The current status of the batch processor run:
        * `"PENDING"` - The batch processor run is waiting to start
        * `"PROCESSING"` - The batch processor run is in progress
        * `"PROCESSED"` - The batch processor run completed successfully
        * `"FAILED"` - The batch processor run encountered an error
      title: LegacyBatchProcessorRunStatus
    LegacyBatchProcessorRunSource:
      type: string
      enum:
        - EVAL_SET
        - PLAYGROUND
        - STUDIO
      description: >
        The source of the batch processor run:

        * `"EVAL_SET"` - The batch processor run was made from an evaluation set. The `sourceId` will be the ID of the
        evaluation set (e.g., `"ev_1234"`)

        * `"PLAYGROUND"` - The batch processor run was made from the playground. The `sourceId` will not be set

        * `"STUDIO"` - The batch processor run was made for a processor in Studio. The `sourceId` will be the ID of the
        processor (e.g., `"ex_1234"`)
      title: LegacyBatchProcessorRunSource
    LegacyBatchProcessorRunOptions:
      type: object
      properties:
        fuzzyMatchFields:
          type: array
          items:
            type: string
          description: The fields that were fuzzy matched.
        excludeFields:
          type: array
          items:
            type: string
          description: The fields that were excluded from the run.
      description: The options for the batch processor run.
      title: LegacyBatchProcessorRunOptions
    LegacyBatchProcessorRun:
      type: object
      properties:
        object:
          type: string
          description: |
            The type of response. In this case, it will always be `"batch_processor_run"`.
        id:
          type: string
          description: |
            The unique identifier for this batch processor run.

            Example: `"batch_processor_run_Xj8mK2pL9nR4vT7qY5wZ"`
        processorId:
          type: string
          description: |
            The ID of the processor used for this run.

            Example: `"ex_Xj8mK2pL9nR4vT7qY5wZ"`
        processorVersionId:
          type: string
          description: |
            The ID of the specific processor version used.

            Example: `"exv_xK9mLPqRtN3vS8wF5hB2cQ"`
        processorName:
          type: string
          description: |
            The name of the processor.

            Example: `"Invoice Processor"`
        metrics:
          $ref: '#/components/schemas/LegacyBatchProcessorRunMetrics'
        status:
          $ref: '#/components/schemas/LegacyBatchProcessorRunStatus'
          description: |
            The current status of the batch processor run:
            * `"PENDING"` - The batch processor run is waiting to start
            * `"PROCESSING"` - The batch processor run is in progress
            * `"PROCESSED"` - The batch processor run completed successfully
            * `"FAILED"` - The batch processor run encountered an error
        source:
          $ref: '#/components/schemas/LegacyBatchProcessorRunSource'
          description: >
            The source of the batch processor run:

            * `"EVAL_SET"` - The batch processor run was made from an evaluation set. The `sourceId` will be the ID of
            the evaluation set (e.g., `"ev_1234"`)

            * `"PLAYGROUND"` - The batch processor run was made from the playground. The `sourceId` will not be set

            * `"STUDIO"` - The batch processor run was made for a processor in Studio. The `sourceId` will be the ID of
            the processor (e.g., `"ex_1234"`)
        sourceId:
          type: string
          description: |
            The ID of the source of the batch processor run. See the `source` field for more details.
            Example: `"ev_1234"` for EVAL_SET source, `"ex_1234"` for STUDIO source
        runCount:
          type: integer
          description: The number of runs that were made.
        options:
          $ref: '#/components/schemas/LegacyBatchProcessorRunOptions'
          description: The options for the batch processor run.
        createdAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the batch processor run was created. Will follow the RFC 3339 format.

            Example: `"2024-03-21T15:30:00Z"`
        updatedAt:
          type: string
          format: date-time
          description: |
            The time (in UTC) at which the batch processor run was last updated. Will follow the RFC 3339 format.

            Example: `"2024-03-21T16:45:00Z"`
      required:
        - object
        - id
        - processorId
        - processorVersionId
        - processorName
        - metrics
        - status
        - source
        - runCount
        - options
        - createdAt
        - updatedAt
      title: LegacyBatchProcessorRun
    batchProcessorRun_get_Response_200:
      type: object
      properties:
        success:
          type: boolean
        batchProcessorRun:
          $ref: '#/components/schemas/LegacyBatchProcessorRun'
      required:
        - success
        - batchProcessorRun
      title: batchProcessorRun_get_Response_200
    ParseRunStatusObject:
      type: string
      enum:
        - parse_run_status
      description: The type of object. Will always be `"parse_run_status"`.
      title: ParseRunStatusObject
    ParseRunStatusStatus:
      type: string
      enum:
        - PROCESSING
        - PROCESSED
        - FAILED
      description: |
        The status of the parse run:
        * `"PROCESSING"` - The file is still being processed
        * `"PROCESSED"` - The file was successfully processed
        * `"FAILED"` - The processing failed (see `failureReason` for details)
      title: ParseRunStatusStatus
    ParseRunStatus:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/ParseRunStatusObject'
          description: The type of object. Will always be `"parse_run_status"`.
        id:
          type: string
          description: |
            A unique identifier for the parse run.

            Example: `"pr_xK9mLPqRtN3vS8wF5hB2cQ"`
        status:
          $ref: '#/components/schemas/ParseRunStatusStatus'
          description: |
            The status of the parse run:
            * `"PROCESSING"` - The file is still being processed
            * `"PROCESSED"` - The file was successfully processed
            * `"FAILED"` - The processing failed (see `failureReason` for details)
        failureReason:
          type:
            - string
            - 'null'
          description: |
            The reason for failure.

            **Availability:** Present when `status` is `"FAILED"`.
        failureMessage:
          type:
            - string
            - 'null'
          description: |
            A human-readable description of the failure.

            **Availability:** Present when `status` is `"FAILED"`.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/RunMetadata'
            - type: 'null'
          description: |
            Any metadata that was provided when creating the parse run.

            **Availability:** Present when metadata was provided during creation.
      required:
        - object
        - id
        - status
        - failureReason
      description: |
        Minimal parse run status object sent in webhook notifications.
        Contains only the essential status information, without the full output data.
      title: ParseRunStatus
    ParseRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ParseRunStatus'
      required:
        - eventId
        - payload
      title: ParseRunProcessedWebhookEvent
    ParseRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ParseRunStatus'
      required:
        - eventId
        - payload
      title: ParseRunFailedWebhookEvent
    ExtractRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ExtractRun'
      required:
        - eventId
        - payload
      title: ExtractRunProcessedWebhookEvent
    ExtractRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ExtractRun'
      required:
        - eventId
        - payload
      title: ExtractRunFailedWebhookEvent
    ExtractorCreatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Extractor'
      required:
        - eventId
        - payload
      title: ExtractorCreatedWebhookEvent
    ExtractorUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Extractor'
      required:
        - eventId
        - payload
      title: ExtractorUpdatedWebhookEvent
    ExtractorDeletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Extractor'
      required:
        - eventId
        - payload
      title: ExtractorDeletedWebhookEvent
    ExtractorDraftUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Extractor'
      required:
        - eventId
        - payload
      title: ExtractorDraftUpdatedWebhookEvent
    ExtractorVersionPublishedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ExtractorVersion'
      required:
        - eventId
        - payload
      title: ExtractorVersionPublishedWebhookEvent
    ClassifyRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ClassifyRun'
      required:
        - eventId
        - payload
      title: ClassifyRunProcessedWebhookEvent
    ClassifyRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ClassifyRun'
      required:
        - eventId
        - payload
      title: ClassifyRunFailedWebhookEvent
    ClassifierCreatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Classifier'
      required:
        - eventId
        - payload
      title: ClassifierCreatedWebhookEvent
    ClassifierUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Classifier'
      required:
        - eventId
        - payload
      title: ClassifierUpdatedWebhookEvent
    ClassifierDeletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Classifier'
      required:
        - eventId
        - payload
      title: ClassifierDeletedWebhookEvent
    ClassifierDraftUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Classifier'
      required:
        - eventId
        - payload
      title: ClassifierDraftUpdatedWebhookEvent
    ClassifierVersionPublishedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/ClassifierVersion'
      required:
        - eventId
        - payload
      title: ClassifierVersionPublishedWebhookEvent
    SplitRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/SplitRun'
      required:
        - eventId
        - payload
      title: SplitRunProcessedWebhookEvent
    SplitRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/SplitRun'
      required:
        - eventId
        - payload
      title: SplitRunFailedWebhookEvent
    SplitterCreatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Splitter'
      required:
        - eventId
        - payload
      title: SplitterCreatedWebhookEvent
    SplitterUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Splitter'
      required:
        - eventId
        - payload
      title: SplitterUpdatedWebhookEvent
    SplitterDeletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Splitter'
      required:
        - eventId
        - payload
      title: SplitterDeletedWebhookEvent
    SplitterDraftUpdatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Splitter'
      required:
        - eventId
        - payload
      title: SplitterDraftUpdatedWebhookEvent
    SplitterVersionPublishedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/SplitterVersion'
      required:
        - eventId
        - payload
      title: SplitterVersionPublishedWebhookEvent
    BatchProcessorRunCompletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/BatchRun'
      required:
        - eventId
        - payload
      title: BatchProcessorRunCompletedWebhookEvent
    BatchProcessorRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/BatchRun'
      required:
        - eventId
        - payload
      title: BatchProcessorRunFailedWebhookEvent
    BatchParseRunCompletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/BatchRun'
      required:
        - eventId
        - payload
      title: BatchParseRunCompletedWebhookEvent
    BatchParseRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/BatchRun'
      required:
        - eventId
        - payload
      title: BatchParseRunFailedWebhookEvent
    EditRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/EditRun'
      required:
        - eventId
        - payload
      title: EditRunProcessedWebhookEvent
    EditRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/EditRun'
      required:
        - eventId
        - payload
      title: EditRunFailedWebhookEvent
    WorkflowRunCompletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/WorkflowRun'
      required:
        - eventId
        - payload
      title: WorkflowRunCompletedWebhookEvent
    WorkflowRunFailedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/WorkflowRun'
      required:
        - eventId
        - payload
      title: WorkflowRunFailedWebhookEvent
    WorkflowRunNeedsReviewWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/WorkflowRun'
      required:
        - eventId
        - payload
      title: WorkflowRunNeedsReviewWebhookEvent
    WorkflowRunRejectedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/WorkflowRun'
      required:
        - eventId
        - payload
      title: WorkflowRunRejectedWebhookEvent
    WorkflowRunCancelledWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/WorkflowRun'
      required:
        - eventId
        - payload
      title: WorkflowRunCancelledWebhookEvent
    WorkflowRunStepRunProcessedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/StepRun'
      required:
        - eventId
        - payload
      title: WorkflowRunStepRunProcessedWebhookEvent
    WorkflowCreatedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Workflow'
      required:
        - eventId
        - payload
      title: WorkflowCreatedWebhookEvent
    WorkflowDeployedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Workflow'
      required:
        - eventId
        - payload
      title: WorkflowDeployedWebhookEvent
    WorkflowDeletedWebhookEvent:
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event
        payload:
          $ref: '#/components/schemas/Workflow'
      required:
        - eventId
        - payload
      title: WorkflowDeletedWebhookEvent
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
