Extend Parse API

The Parse API from Extend — 3 operation(s) for parse.

OpenAPI Specification

extend-ai-parse-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Extend Batch Parse API
  description: The Extend API turns documents into high quality structured data. It exposes file management, synchronous and asynchronous document processors (parse, extract, classify, split), reusable processor definitions (extractors, classifiers, splitters), durable multi-step workflows and workflow runs, evaluation sets, and batch processing. All requests are authenticated with a Bearer API token and should pin an API version via the x-extend-api-version header.
  termsOfService: https://www.extend.ai
  contact:
    name: Extend Support
    url: https://docs.extend.ai
  version: '2026-02-09'
servers:
- url: https://api.extend.ai
  description: Extend production API
security:
- BearerAuth: []
tags:
- name: Parse
paths:
  /parse:
    post:
      operationId: parseFile
      tags:
      - Parse
      summary: Parse a file (synchronous)
      description: Synchronously parse a document into markdown and structured chunks. Has a five minute timeout and is intended for onboarding and testing; use POST /parse_runs for production.
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - name: responseType
        in: query
        required: false
        schema:
          type: string
          enum:
          - json
          - url
          default: json
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseRequest'
      responses:
        '200':
          description: A processed parse run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        default:
          $ref: '#/components/responses/ApiError'
  /parse_runs:
    post:
      operationId: createParseRun
      tags:
      - Parse
      summary: Create a parse run (asynchronous)
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseRequest'
      responses:
        '200':
          description: The created parse run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        default:
          $ref: '#/components/responses/ApiError'
    get:
      operationId: listParseRuns
      tags:
      - Parse
      summary: List parse runs
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/MaxPageSize'
      responses:
        '200':
          description: A page of parse runs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  parseRuns:
                    type: array
                    items:
                      $ref: '#/components/schemas/ParseRun'
                  nextPageToken:
                    type: string
        default:
          $ref: '#/components/responses/ApiError'
  /parse_runs/{id}:
    get:
      operationId: getParseRun
      tags:
      - Parse
      summary: Get a parse run
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: The requested parse run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseRun'
        default:
          $ref: '#/components/responses/ApiError'
components:
  schemas:
    ParseRequest:
      type: object
      required:
      - file
      properties:
        file:
          $ref: '#/components/schemas/FileInput'
        config:
          type: object
          description: Parse configuration (target, blocks, figures, tables, OCR options).
        metadata:
          $ref: '#/components/schemas/RunMetadata'
    RunStatus:
      type: string
      enum:
      - PENDING
      - PROCESSING
      - PROCESSED
      - FAILED
      - CANCELLED
      - NEEDS_REVIEW
      - REJECTED
    FileInput:
      oneOf:
      - $ref: '#/components/schemas/FileFromUrl'
      - $ref: '#/components/schemas/FileFromId'
      - $ref: '#/components/schemas/FileFromText'
    FileFromUrl:
      type: object
      required:
      - url
      properties:
        url:
          type: string
        name:
          type: string
        settings:
          type: object
          properties:
            password:
              type: string
    RunMetadata:
      type: object
      additionalProperties: true
      description: Custom metadata for a run, up to 10KB.
    ParseRun:
      type: object
      properties:
        object:
          type: string
          example: parse_run
        id:
          type: string
        status:
          $ref: '#/components/schemas/RunStatus'
        file:
          type: object
        output:
          type: object
          properties:
            chunks:
              type: array
              items:
                type: object
        config:
          type: object
        metrics:
          type: object
          properties:
            processingTimeMs:
              type: integer
            pageCount:
              type: integer
        usage:
          type: object
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    FileFromText:
      type: object
      required:
      - text
      properties:
        text:
          type: string
    FileFromId:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    ApiError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        retryable:
          type: boolean
        requestId:
          type: string
  parameters:
    PathId:
      name: id
      in: path
      required: true
      schema:
        type: string
    MaxPageSize:
      name: maxPageSize
      in: query
      required: false
      schema:
        type: integer
    NextPageToken:
      name: nextPageToken
      in: query
      required: false
      schema:
        type: string
    ApiVersion:
      name: x-extend-api-version
      in: header
      required: false
      description: API version to pin the request to, for example 2026-02-09.
      schema:
        type: string
        example: '2026-02-09'
  responses:
    ApiError:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Provide your Extend API token as a Bearer token in the Authorization header.