Reducto Job API

The Job API from Reducto — 1 operation(s) for job.

Documentation

Specifications

SDKs

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-parseresponse.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-syncparseconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-asyncparseconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-extractsettings.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-syncextractconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-asyncextractconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-splitresponse.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-syncsplitconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-classifyconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-classifyresponse.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-editconfig.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-settings.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-parseblock.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-parsechunk.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/reducto/refs/heads/main/json-schema/reducto-uploadresponse.json

Other Resources

OpenAPI Specification

reducto-job-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Reducto Cancel Job API
  description: REST API for parsing, extracting, splitting, classifying, and editing complex documents. Supports PDFs, Word files, spreadsheets, presentations, and scanned images using layout-aware OCR and vision language models.
  version: v1.11.80-78-gc5c4ff11c
  contact:
    url: https://reducto.ai/
    email: support@reducto.ai
  license:
    name: Proprietary
servers:
- url: https://platform.reducto.ai
security:
- BearerAuth: []
tags:
- name: Job
paths:
  /job/{job_id}:
    get:
      summary: Retrieve Parse
      operationId: retrieve_parse_job__job_id__get
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          title: Job Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/AsyncJobResponse'
                - $ref: '#/components/schemas/EnhancedAsyncJobResponse'
                title: Response Retrieve Parse Job  Job Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Job
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    PipelineResponse:
      properties:
        response_type:
          type: string
          title: Response Type
          default: pipeline
          enum:
          - pipeline
        job_id:
          type: string
          title: Job Id
        usage:
          $ref: '#/components/schemas/ParseUsage'
        result:
          $ref: '#/components/schemas/PipelineResult'
      type: object
      required:
      - job_id
      - usage
      - result
      title: PipelineResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CriteriaConfidence:
      properties:
        criterion:
          type: string
          title: Criterion
        confidence:
          type: string
          enum:
          - high
          - low
          title: Confidence
      type: object
      required:
      - criterion
      - confidence
      title: CriteriaConfidence
      description: Confidence result for a single criterion.
    ParseUsage:
      properties:
        num_pages:
          type: integer
          title: Num Pages
        credits:
          type: number
          nullable: true
          title: Credits
        credit_breakdown:
          additionalProperties:
            type: number
          propertyNames:
            enum:
            - page
            - html_page
            - docx_native_page
            - chart_agent
            - spreadsheet_cells
            - billable_spreadsheet_pages
            - agentic
            - complex
            - enrich_table
            - figure_summary
            - table_summary
            - key_value
            - agentic_text
            - promptable_agentic_text
            - reducto_lite_page
          type: object
          nullable: true
          title: Credit Breakdown
        page_billing_breakdown:
          additionalProperties:
            items:
              type: string
              enum:
              - page
              - html_page
              - docx_native_page
              - agentic
              - complex
              - chart_agent
              - spreadsheet_cells
              - billable_spreadsheet_pages
              - enrich_table
              - figure_summary
              - table_summary
              - key_value
              - agentic_text
              - promptable_agentic_text
              - reducto_lite_page
            type: array
          type: object
          nullable: true
          title: Page Billing Breakdown
          description: Per-page breakdown of features used. Maps 1-indexed page numbers (as strings) to the list of billing features applied on that page (e.g. 'page', 'complex', 'chart_agent').
        non_empty_cell_count:
          type: integer
          nullable: true
          title: Non Empty Cell Count
          description: Total non-empty cells across all sheets. Only set for spreadsheet inputs.
      type: object
      required:
      - num_pages
      title: ParseUsage
    ParseBlock:
      properties:
        type:
          type: string
          enum:
          - Header
          - Footer
          - Title
          - Section Header
          - Page Number
          - List Item
          - Figure
          - Table
          - Key Value
          - Text
          - Comment
          - Signature
          title: Type
          description: The type of block extracted from the document.
        bbox:
          $ref: '#/components/schemas/BoundingBox'
          description: The bounding box of the block extracted from the document.
        content:
          type: string
          title: Content
          description: The content of the block extracted from the document.
        image_url:
          type: string
          nullable: true
          title: Image Url
          description: (Experimental) The URL of the image associated with the block.
        chart_data:
          items:
            type: string
          type: array
          nullable: true
          title: Chart Data
          description: (Experimental) The URL/link to chart data JSON for figure blocks processed by chart agent.
        confidence:
          type: string
          nullable: true
          title: Confidence
          description: The confidence for the block. It is either low or high and takes into account factors like OCR and table structure
          default: low
        granular_confidence:
          $ref: '#/components/schemas/GranularConfidence'
          nullable: true
          description: Granular confidence scores for the block. It is a dictionary of confidence scores for the block. The confidence scores will not be None if the user has enabled numeric confidence scores.
        extra:
          additionalProperties: true
          type: object
          nullable: true
          title: Extra
          description: Extra metadata fields for the block. Fields like 'is_chart' will only appear when set to True.
      type: object
      required:
      - type
      - bbox
      - content
      title: ParseBlock
    OCRResult:
      properties:
        words:
          items:
            $ref: '#/components/schemas/OCRWord'
          type: array
          title: Words
        lines:
          items:
            $ref: '#/components/schemas/OCRLine'
          type: array
          title: Lines
      type: object
      required:
      - words
      - lines
      title: OCRResult
    UrlResult:
      properties:
        type:
          type: string
          title: Type
          description: type = 'url'
          enum:
          - url
        url:
          type: string
          title: Url
        result_id:
          type: string
          title: Result Id
      type: object
      required:
      - type
      - url
      - result_id
      title: UrlResult
    ParseResponse:
      properties:
        response_type:
          type: string
          title: Response Type
          default: parse
          enum:
          - parse
        job_id:
          type: string
          title: Job Id
        duration:
          type: number
          title: Duration
          description: The duration of the parse request in seconds.
        pdf_url:
          type: string
          nullable: true
          title: Pdf Url
          description: The storage URL of the converted PDF file.
        studio_link:
          type: string
          nullable: true
          title: Studio Link
          description: The link to the studio pipeline for the document.
        usage:
          $ref: '#/components/schemas/ParseUsage'
        result:
          anyOf:
          - $ref: '#/components/schemas/FullResult'
          - $ref: '#/components/schemas/UrlResult'
          title: Result
          description: The response from the document processing service. Note that there can be two types of responses, Full Result and URL Result. This is due to limitations on the max return size on HTTPS. If the response is too large, it will be returned as a presigned URL in the URL response. You should handle this in your application.
        parse_mode:
          type: string
          enum:
          - base
          - lite
          nullable: true
          title: Parse Mode
          description: Which pipeline produced this response. ``lite`` means Reducto Flash Lite served the request; ``base`` is the standard pipeline. Optional / nullable for forward compatibility — older API instances or persisted responses written before this field existed will leave it ``None``; treat ``None`` as ``base``.
      type: object
      required:
      - job_id
      - duration
      - usage
      - result
      title: ParseResponse
    ResponseConfidence:
      properties:
        categories:
          items:
            $ref: '#/components/schemas/CategoryConfidence'
          type: array
          title: Categories
      type: object
      required:
      - categories
      title: ResponseConfidence
      description: Overall confidence breakdown for classification response.
    EditResponse:
      properties:
        response_type:
          type: string
          title: Response Type
          default: edit
          enum:
          - edit
        document_url:
          type: string
          title: Document Url
          description: Presigned URL to download the edited document.
        form_schema:
          items:
            $ref: '#/components/schemas/EditWidget'
          type: array
          nullable: true
          title: Form Schema
          description: Form schema for PDF forms. List of widgets with their types, descriptions, and bounding boxes.
        usage:
          $ref: '#/components/schemas/ParseUsage'
          nullable: true
          description: Usage information for the edit operation, including number of pages and credits charged.
      type: object
      required:
      - document_url
      title: EditResponse
    ParseChunk:
      properties:
        content:
          type: string
          title: Content
          description: The content of the chunk extracted from the document.
        embed:
          type: string
          title: Embed
          description: Chunk content optimized for embedding and retrieval.
        enriched:
          type: string
          nullable: true
          title: Enriched
          description: The enriched content of the chunk extracted from the document.
        enrichment_success:
          type: boolean
          title: Enrichment Success
          description: Whether the enrichment was successful.
          default: false
        blocks:
          items:
            $ref: '#/components/schemas/ParseBlock'
          type: array
          title: Blocks
      type: object
      required:
      - content
      - embed
      - enriched
      - blocks
      title: ParseChunk
    DeepSplitPartition:
      properties:
        name:
          type: string
          title: Name
        pages:
          items:
            $ref: '#/components/schemas/DeepSplitPageEvidence'
          type: array
          title: Pages
      type: object
      required:
      - name
      - pages
      title: DeepSplitPartition
    EnhancedAsyncJobResponse:
      properties:
        status:
          type: string
          enum:
          - Pending
          - Completed
          - Failed
          - Idle
          title: Status
        result:
          oneOf:
          - $ref: '#/components/schemas/ParseResponse'
          - $ref: '#/components/schemas/ExtractResponse'
          - $ref: '#/components/schemas/SplitResponse'
          - $ref: '#/components/schemas/EditResponse'
          - $ref: '#/components/schemas/PipelineResponse'
          - $ref: '#/components/schemas/V3ExtractResponse'
          - $ref: '#/components/schemas/ClassifyResponse'
          discriminator:
            propertyName: response_type
            mapping:
              classify: '#/components/schemas/ClassifyResponse'
              edit: '#/components/schemas/EditResponse'
              extract: '#/components/schemas/ExtractResponse'
              parse: '#/components/schemas/ParseResponse'
              pipeline: '#/components/schemas/PipelineResponse'
              split: '#/components/schemas/SplitResponse'
              v3_extract: '#/components/schemas/V3ExtractResponse'
          nullable: true
          title: Result
        progress:
          type: number
          nullable: true
          title: Progress
        reason:
          type: string
          nullable: true
          title: Reason
        type:
          type: string
          enum:
          - Parse
          - Extract
          - Split
          - Edit
          - Pipeline
          - Classify
          nullable: true
          title: Type
        num_pages:
          type: integer
          nullable: true
          title: Num Pages
        total_pages:
          type: integer
          nullable: true
          title: Total Pages
        source:
          nullable: true
          title: Source
        duration:
          type: number
          nullable: true
          title: Duration
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Created At
        raw_config:
          type: string
          nullable: true
          title: Raw Config
        bucket:
          nullable: true
          title: Bucket
      type: object
      required:
      - status
      title: EnhancedAsyncJobResponse
    CategoryConfidence:
      properties:
        category:
          type: string
          title: Category
        confidence:
          type: number
          title: Confidence
        criteria_confidence:
          items:
            $ref: '#/components/schemas/CriteriaConfidence'
          type: array
          title: Criteria Confidence
      type: object
      required:
      - category
      - confidence
      - criteria_confidence
      title: CategoryConfidence
      description: Confidence result for a category.
    SplitPartition:
      properties:
        name:
          type: string
          title: Name
        pages:
          items:
            type: integer
          type: array
          title: Pages
        conf:
          type: string
          enum:
          - high
          - low
          title: Conf
          default: low
      type: object
      required:
      - name
      - pages
      title: SplitPartition
    ClassifyUsage:
      properties:
        num_pages:
          type: integer
          title: Num Pages
        num_categories:
          type: integer
          title: Num Categories
        credits:
          type: number
          nullable: true
          title: Credits
      type: object
      required:
      - num_pages
      - num_categories
      title: ClassifyUsage
    BoundingBox:
      properties:
        left:
          type: number
          title: Left
        top:
          type: number
          title: Top
        width:
          type: number
          title: Width
        height:
          type: number
          title: Height
        page:
          type: integer
          title: Page
          description: The page number of the bounding box (1-indexed).
        original_page:
          type: integer
          title: Original Page
          description: The page number in the original document of the bounding box (1-indexed).
      type: object
      required:
      - left
      - top
      - width
      - height
      - page
      title: BoundingBox
    ExtractResponse:
      additionalProperties: true
      type: object
    EditWidget:
      properties:
        bbox:
          $ref: '#/components/schemas/BoundingBox'
          description: Bounding box coordinates of the widget
        description:
          type: string
          title: Description
          description: Description of the widget extracted from the document
        type:
          type: string
          enum:
          - text
          - checkbox
          - radio
          - dropdown
          - barcode
          title: Type
          description: Type of the form widget
        fill:
          type: boolean
          title: Fill
          description: If True (default), the system will attempt to fill this widget. If False, the widget will be created but intentionally left unfilled.
          default: true
        value:
          type: string
          nullable: true
          title: Value
          description: If provided, this value will be used directly instead of attempting to intelligently determine the field value.
        font_size:
          type: number
          maximum: 72
          minimum: 1
          nullable: true
          title: Font Size
          description: Font size in points for this specific field. Takes priority over the global font_size in EditOptions. If not set, falls back to the global font_size, then to auto-calculated sizing.
      type: object
      required:
      - bbox
      - description
      - type
      title: EditWidget
    SplitResponse:
      properties:
        response_type:
          type: string
          title: Response Type
          default: split
          enum:
          - split
        usage:
          $ref: '#/components/schemas/ParseUsage'
        result:
          anyOf:
          - $ref: '#/components/schemas/SplitResult'
          - $ref: '#/components/schemas/DeepSplitResult'
          title: Result
          description: The split result.
      type: object
      required:
      - usage
      - result
      title: SplitResponse
    ExtractSplitResponse:
      properties:
        split_name:
          type: string
          title: Split Name
        page_range:
          items:
            type: integer
          type: array
          title: Page Range
        partition:
          type: string
          nullable: true
          title: Partition
        result:
          anyOf:
          - $ref: '#/components/schemas/ExtractResponse'
          - $ref: '#/components/schemas/V3ExtractResponse'
          title: Result
      type: object
      required:
      - split_name
      - page_range
      - result
      title: ExtractSplitResponse
      description: This is the response format for Extract -> Split Pipelines
    OCRWord:
      properties:
        text:
          type: string
          title: Text
        bbox:
          $ref: '#/components/schemas/BoundingBox'
        confidence:
          type: number
          nullable: true
          title: Confidence
          description: OCR confidence score between 0 and 1, where 1 indicates highest confidence
        chunk_index:
          type: integer
          nullable: true
          title: Chunk Index
          description: The index of the chunk that the word belongs to.
        rotation:
          type: integer
          nullable: true
          title: Rotation
          description: The rotation angle in degrees, from 0 to 360, counterclockwise.
      type: object
      required:
      - text
      - bbox
      title: OCRWord
    ClassifyResponse:
      properties:
        response_type:
          type: string
          title: Response Type
          default: classify
          enum:
          - classify
        job_id:
          type: string
          title: Job Id
        result:
          $ref: '#/components/schemas/ClassifyResponseCategory'
        response_confidence:
          $ref: '#/components/schemas/ResponseConfidence'
          nullable: true
        usage:
          $ref: '#/components/schemas/ClassifyUsage'
          nullable: true
        duration:
          type: number
          nullable: true
          title: Duration
          description: The duration of the classify request in seconds.
      type: object
      required:
      - job_id
      - result
      title: ClassifyResponse
      description: Response from classify job - returned when polling /job/{job_id}
    DeepSplit:
      properties:
        name:
          type: string
          title: Name
        pages:
          items:
            $ref: '#/components/schemas/DeepSplitPageEvidence'
          type: array
          title: Pages
        partitions:
          items:
            $ref: '#/components/schemas/DeepSplitPartition'
          type: array
          nullable: true
          title: Partitions
      type: object
      required:
      - name
      - pages
      title: DeepSplit
    PipelineResult:
      properties:
        parse:
          anyOf:
          - $ref: '#/components/schemas/ParseResponse'
          - items:
              $ref: '#/components/schemas/ParseResponse'
            type: array
          title: Parse
          nullable: true
        extract:
          anyOf:
          - items:
              $ref: '#/components/schemas/ExtractSplitResponse'
            type: array
          - $ref: '#/components/schemas/ExtractResponse'
          - $ref: '#/components/schemas/V3ExtractResponse'
          title: Extract
          nullable: true
        split:
          $ref: '#/components/schemas/SplitResponse'
          nullable: true
        edit:
          $ref: '#/components/schemas/EditResponse'
          nullable: true
      type: object
      required:
      - parse
      - extract
      - split
      title: PipelineResult
    DeepSplitResult:
      properties:
        splits:
          items:
            $ref: '#/components/schemas/DeepSplit'
          type: array
          title: Splits
      type: object
      required:
      - splits
      title: DeepSplitResult
    Split:
      properties:
        name:
          type: string
          title: Name
        pages:
          items:
            type: integer
          type: array
          title: Pages
        conf:
          type: string
          enum:
          - high
          - low
          title: Conf
          default: low
        partitions:
          items:
            $ref: '#/components/schemas/SplitPartition'
          type: array
          nullable: true
          title: Partitions
      type: object
      required:
      - name
      - pages
      title: Split
    AsyncJobResponse:
      properties:
        status:
          type: string
          enum:
          - Pending
          - Completed
          - Failed
          - Idle
          title: Status
        result:
          oneOf:
          - $ref: '#/components/schemas/ParseResponse'
          - $ref: '#/components/schemas/ExtractResponse'
          - $ref: '#/components/schemas/SplitResponse'
          - $ref: '#/components/schemas/EditResponse'
          - $ref: '#/components/schemas/PipelineResponse'
          - $ref: '#/components/schemas/V3ExtractResponse'
          - $ref: '#/components/schemas/ClassifyResponse'
          discriminator:
            propertyName: response_type
            mapping:
              classify: '#/components/schemas/ClassifyResponse'
              edit: '#/components/schemas/EditResponse'
              extract: '#/components/schemas/ExtractResponse'
              parse: '#/components/schemas/ParseResponse'
              pipeline: '#/components/schemas/PipelineResponse'
              split: '#/components/schemas/SplitResponse'
              v3_extract: '#/components/schemas/V3ExtractResponse'
          nullable: true
          title: Result
        progress:
          type: number
          nullable: true
          title: Progress
        reason:
          type: string
          nullable: true
          title: Reason
      type: object
      required:
      - status
      title: AsyncJobResponse
    ClassifyResponseCategory:
      properties:
        category:
          type: string
          title: Category
      type: object
      required:
      - category
      title: ClassifyResponseCategory
    GranularConfidence:
      properties:
        extract_confidence:
          type: number
          nullable: true
          title: Extract Confidence
        parse_confidence:
          type: number
          nullable: true
          title: Parse Confidence
      type: object
      title: GranularConfidence
    DeepSplitPageEvidence:
      properties:
        page_number:
          type: integer
          title: Page Number
        evidence:
          type: string
          title: Evidence
        confidence:
          type: string
          enum:
          - high
          - medium
          - low
          nullable: true
          title: Confidence
      type: object
      required:
      - page_number
      - evidence
      title: DeepSplitPageEvidence
    OCRLine:
      properties:
        text:
          type: string
          title: Text
        bbox:
          $ref: '#/components/schemas/BoundingBox'
        confidence:
          type: number
          nullable: true
          title: Confidence
          description: OCR confidence score between 0 and 1, where 1 indicates highest confidence
        chunk_index:
          type: integer
          nullable: true
          title: Chunk Index
          description: The index of the chunk that the line belongs to.
        rotation:
          type: integer
          nullable: true
          title: Rotation
          description: The rotation angle in degrees, from 0 to 360, counterclockwise.
      type: object
      required:
      - text
      - bbox
      title: OCRLine
    SplitResult:
      properties:
        section_mapping:
          additionalProperties:
            items:
              type: integer
            type: array
          type: object
          nullable: true
          title: Section Mapping
        splits:
          items:
            $ref: '#/components/schemas/Split'
          type: array
          title: Splits
      type: object
      required:
      - section_mapping
      - splits
      title: SplitResult
    FullResult:
      properties:
        type:
          type: string
          title: Type
          description: type = 'full'
          enum:
          - full
        chunks:
          items:
            $ref: '#/components/schemas/ParseChunk'
          type: array
          title: Chunks
        ocr:
          $ref: '#/components/schemas/OCRResult'
          nullable: true
        custom:
          nullable: true
          title: Custom
      type: object
      required:
      - type
      - chunks
      title: FullResult
    V3ExtractResponse:
      additionalProperties: true
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key passed as a Bearer token in the Authorization header.