> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Parse



## OpenAPI

````yaml openapi-legacy.json post /parse
openapi: 3.1.0
info:
  title: Reducto API (Legacy)
  version: v1.11.81-297-g4204a908d
servers:
  - url: https://platform.reducto.ai
security: []
paths:
  /parse:
    post:
      summary: Parse
      operationId: parse_parse_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseConfigNew'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ParseResponse'
                  - $ref: '#/components/schemas/AsyncParseResponse'
                title: Response Parse Parse Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - SkippableHTTPBearer: []
components:
  schemas:
    ParseConfigNew:
      properties:
        options:
          $ref: '#/components/schemas/BaseProcessingOptions'
        advanced_options:
          $ref: '#/components/schemas/AdvancedProcessingOptions'
        experimental_options:
          $ref: '#/components/schemas/ExperimentalProcessingOptions'
        document_url:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/UploadResponse'
          title: Document Url
          description: >-
            The URL of the document to be processed. You can provide one of the
            following:

            1. A publicly available URL

            2. A presigned S3 URL

            3. A reducto:// prefixed URL obtained from the /upload endpoint
            after directly uploading a document
        priority:
          type: boolean
          title: Priority
          description: >-
            If True, attempts to process the job with priority if the user has
            priority processing budget available; by default, sync jobs are
            prioritized above async jobs.
          default: true
      additionalProperties: false
      type: object
      required:
        - document_url
      title: ParseConfigNew
    ParseResponse:
      properties:
        response_type:
          type: string
          const: parse
          title: Response Type
          default: parse
        job_id:
          type: string
          title: Job Id
        duration:
          type: number
          title: Duration
          description: The duration of the parse request in seconds.
        pdf_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Pdf Url
          description: The storage URL of the converted PDF file.
        studio_link:
          anyOf:
            - type: string
            - type: 'null'
          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:
          anyOf:
            - type: string
              enum:
                - base
                - lite
            - type: 'null'
          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
    AsyncParseResponse:
      properties:
        job_id:
          type: string
          title: Job Id
      type: object
      required:
        - job_id
      title: AsyncParseResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    BaseProcessingOptions:
      properties:
        ocr_mode:
          type: string
          enum:
            - standard
            - agentic
          title: Ocr Mode
          description: >-
            The mode to use for OCR. Agentic mode adds an extra pass, correcting
            any table/text mistakes at a small cost.
          default: standard
        extraction_mode:
          type: string
          enum:
            - ocr
            - metadata
            - hybrid
          title: Extraction Mode
          description: >-
            The mode to use for extraction. Metadata/hybrid are only recommended
            with high quality metadata embeddings.
          default: ocr
        chunking:
          $ref: '#/components/schemas/ChunkingConfig'
          description: >-
            The configuration options for chunking. Chunking is commonly used
            for RAG usecases.
          default:
            chunk_mode: variable
            chunk_overlap: 0
        table_summary:
          $ref: '#/components/schemas/TableSummaryConfig'
          description: The configuration options for table summarization.
          default:
            enabled: false
        figure_summary:
          $ref: '#/components/schemas/FigureSummaryConfig'
          description: The configuration options for figure summarization.
        filter_blocks:
          items:
            type: string
            enum:
              - Header
              - Footer
              - Title
              - Section Header
              - Page Number
              - List Item
              - Figure
              - Table
              - Key Value
              - Text
              - Comment
              - Signature
          type: array
          title: Filter Blocks
          description: >-
            A list of block types to filter from chunk content. Pass blocks to
            filter them from content. By default, no blocks are filtered.
          default: []
        force_url_result:
          type: boolean
          title: Force Url Result
          description: >-
            Force the result to be returned in URL form (by default only used
            for very large responses).
          default: false
      type: object
      title: BaseProcessingOptions
    AdvancedProcessingOptions:
      properties:
        ocr_system:
          type: string
          enum:
            - highres
            - multilingual
            - combined
            - reducto
            - legacy
          title: Ocr System
          description: >-
            The OCR system to use. Highres is recommended for documents with
            English characters. Legacy uses an alternative OCR backend.
          default: highres
        table_output_format:
          type: string
          enum:
            - html
            - json
            - md
            - jsonbbox
            - dynamic
            - ai_json
            - csv
          title: Table Output Format
          description: >-
            The mode to use for table output. Dynamic returns md for simpler
            tables and html for more complex tables.
          default: html
        merge_tables:
          type: boolean
          title: Merge Tables
          description: >-
            A flag to indicate if consecutive tables with the same number of
            columns should be merged across breaks and spaces.
          default: false
        include_formula_information:
          type: boolean
          title: Include Formula Information
          description: >-
            If True, preserve formula information in spreadsheet cells by
            wrapping text with LaTeX formula commands during parsing.
          default: false
        include_color_information:
          type: boolean
          title: Include Color Information
          description: >-
            If True, preserve Excel cell colours in the extracted spreadsheet
            text using LaTeX colour commands.
          default: false
        include_dropdown_information:
          type: boolean
          title: Include Dropdown Information
          description: >-
            If True, include dropdown options and the selected value when
            rendering spreadsheet cells.
          default: false
        continue_hierarchy:
          type: boolean
          title: Continue Hierarchy
          description: >-
            A flag to indicate if the hierarchy of the document should be
            continued from chunk to chunk.
          default: true
        keep_line_breaks:
          type: boolean
          title: Keep Line Breaks
          description: If line breaks should be preserved in the text.
          default: false
        page_range:
          anyOf:
            - $ref: '#/components/schemas/PageRange'
            - items:
                $ref: '#/components/schemas/PageRange'
              type: array
            - items:
                type: integer
              type: array
            - items:
                type: string
              type: array
          title: Page Range
          description: >-
            The page range to process (1-indexed). By default, the entire
            document is processed. For spreadsheets, you can also provide a list
            of sheet names.
          default: {}
        force_file_extension:
          type: string
          title: Force File Extension
          description: >-
            Force the URL to be downloaded as a specific file extension (e.g.
            .png).
        large_table_chunking:
          $ref: '#/components/schemas/LargeTableChunkingConfig'
          description: >-
            The configuration options for large table chunking (currently only
            supported on spreadsheet and CSV files).
          default:
            enabled: true
            size: 50
        spreadsheet_table_clustering:
          type: string
          enum:
            - default
            - disabled
            - intelligent
          title: Spreadsheet Table Clustering
          description: >-
            In a spreadsheet with different tables inside, we enable splitting
            up the tables by default. Intelligent mode applies more powerful
            models for superior accuracy, at 5× the default per-cell rate.
            Disabling will register as one large table.
          default: default
        max_cell_count:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Max Cell Count
          description: >-
            Maximum total non-empty cells allowed across all sheets. If
            exceeded, the request is rejected with a 422 error. Set to null to
            disable the limit. Defaults to null.
        add_page_markers:
          type: boolean
          title: Add Page Markers
          description: >-
            If True, add page markers to the output (e.g. [[PAGE 1 BEGINS HERE]]
            and [[PAGE 1 ENDS HERE]] added as blocks to the content). Defaults
            to False.
          default: false
        remove_text_formatting:
          type: boolean
          title: Remove Text Formatting
          description: >-
            If True, remove text formatting from the output (e.g. hyphens for
            list items). Defaults to False.
          default: false
        return_ocr_data:
          type: boolean
          title: Return Ocr Data
          description: If True, return OCR data in the result. Defaults to False.
          default: false
        document_password:
          type: string
          title: Document Password
          description: Password to decrypt password-protected documents.
        filter_line_numbers:
          type: boolean
          title: Filter Line Numbers
          description: If True, filter out line numbers from the output. Defaults to False.
          default: false
        read_comments:
          type: boolean
          title: Read Comments
          description: If True, pull in PDF comments from the document. Defaults to False.
          default: false
        persist_results:
          type: boolean
          title: Persist Results
          description: If True, persist the results indefinitely. Defaults to False.
          default: false
        exclude_hidden_sheets:
          type: boolean
          title: Exclude Hidden Sheets
          description: Skip hidden sheets in Excel files. Defaults to False.
          default: false
        exclude_hidden_rows_cols:
          type: boolean
          title: Exclude Hidden Rows Cols
          description: Skip hidden rows and cols in Excel files. Defaults to False.
          default: false
        enable_change_tracking:
          type: boolean
          title: Enable Change Tracking
          description: >-
            Enables model-based detection of underlines and strikethroughs,
            adding <u>/<s> tags to OCR text. Works with any extraction mode.
            Defaults to False.
          default: false
        enable_highlight_detection:
          type: boolean
          title: Enable Highlight Detection
          description: >-
            If True, enable highlight detection. Highlighted text will be
            surrounded by <mark> tags in the output. Defaults to False.
          default: false
        ignore_watermarks:
          type: boolean
          title: Ignore Watermarks
          description: >-
            If True, ignore and remove watermarks from OCR output. Defaults to
            False.
          default: false
      type: object
      title: AdvancedProcessingOptions
    ExperimentalProcessingOptions:
      properties:
        enrich:
          $ref: '#/components/schemas/EnrichConfig'
          description: The configuration options for enrichment.
          default:
            enabled: false
            mode: standard
        layout_enrichment:
          type: boolean
          title: Layout Enrichment
          description: >-
            Layout enrichment is a beta feature that improves our layout and
            reading order performance at the cost of increased latency. Defaults
            to False.
          default: false
        enable_checkboxes:
          type: boolean
          title: Enable Checkboxes
          description: >-
            Use an experimental checkbox detection model to add checkboxes to
            the output, defaults to False
          default: false
        enable_equations:
          type: boolean
          title: Enable Equations
          description: >-
            Use an experimental equation detection model to add equations to the
            output, defaults to False
          default: false
        rotate_pages:
          type: boolean
          title: Rotate Pages
          description: >-
            Use an orientation model to detect and rotate pages as needed,
            defaults to True
          default: true
        rotate_figures:
          type: boolean
          title: Rotate Figures
          description: >-
            Use an orientation model to detect and rotate figures as needed,
            defaults to False
          default: false
        enable_scripts:
          type: boolean
          title: Enable Scripts
          description: >-
            Add <sub> tag around subscripts and <sup> tag around superscripts,
            defaults to False
          default: false
        return_figure_images:
          type: boolean
          title: Return Figure Images
          description: >-
            If figure images should be returned in the result. Defaults to
            False.
          default: false
        return_table_images:
          type: boolean
          title: Return Table Images
          description: If table images should be returned in the result. Defaults to False.
          default: false
        return_page_images:
          type: boolean
          title: Return Page Images
          description: >-
            If full page images should be returned in the result. Defaults to
            False.
          default: false
        layout_model:
          type: string
          enum:
            - default
            - beta
          title: Layout Model
          description: >-
            The layout model to use for the document. This will be deprecated in
            the future.
          default: default
        embed_text_metadata_pdf:
          type: boolean
          title: Embed Text Metadata Pdf
          description: >-
            If extracted OCR text metadata should be embedded back into the
            returned PDF, overwriting any existing text. Defaults to False.
          default: false
        embed_pdf_metadata_dpi:
          type: integer
          maximum: 250
          minimum: 50
          title: Embed Pdf Metadata Dpi
          description: >-
            Render DPI used when rasterizing the source PDF before embedding the
            OCR text layer. Lower values produce dramatically smaller output
            PDFs; higher values preserve more detail when zoomed past 200%.
            Defaults to 100 (good for on-screen viewing); raise toward the
            source scan DPI for crisper output. Min 50, max 250.
          default: 100
        detect_signatures:
          type: boolean
          title: Detect Signatures
          description: If True, detect signatures in the document. Defaults to False.
          default: false
        danger_filter_wide_boxes:
          type: boolean
          title: Danger Filter Wide Boxes
          description: >-
            You probably shouldn't use this. If True, filter out boxes with
            width greater than 50% of the document width. Defaults to False. You
            probably don't want to use this.
          default: false
        user_specified_timeout_seconds:
          anyOf:
            - type: number
            - type: 'null'
          title: User Specified Timeout Seconds
          description: A user specified timeout, defaults to None
      additionalProperties: true
      type: object
      title: ExperimentalProcessingOptions
    UploadResponse:
      properties:
        file_id:
          type: string
          title: File Id
        presigned_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Presigned Url
      type: object
      required:
        - file_id
      title: UploadResponse
    ParseUsage:
      properties:
        num_pages:
          type: integer
          title: Num Pages
        credits:
          anyOf:
            - type: number
            - type: 'null'
          title: Credits
        credit_breakdown:
          anyOf:
            - 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
            - type: 'null'
          title: Credit Breakdown
        page_billing_breakdown:
          anyOf:
            - 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
            - type: 'null'
          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:
          anyOf:
            - type: integer
            - type: 'null'
          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
    FullResult:
      properties:
        type:
          type: string
          const: full
          title: Type
          description: type = 'full'
        chunks:
          items:
            $ref: '#/components/schemas/ParseChunk'
          type: array
          title: Chunks
        ocr:
          anyOf:
            - $ref: '#/components/schemas/OCRResult'
            - type: 'null'
        custom:
          anyOf:
            - {}
            - type: 'null'
          title: Custom
      type: object
      required:
        - type
        - chunks
      title: FullResult
    UrlResult:
      properties:
        type:
          type: string
          const: url
          title: Type
          description: type = 'url'
        url:
          type: string
          title: Url
        result_id:
          type: string
          title: Result Id
      type: object
      required:
        - type
        - url
        - result_id
      title: UrlResult
    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
    ChunkingConfig:
      properties:
        chunk_mode:
          type: string
          enum:
            - variable
            - section
            - page
            - block
            - disabled
            - page_sections
          title: Chunk Mode
          description: >-
            Choose how to partition chunks. Variable mode chunks by character
            length and visual context. Section mode chunks by section headers.
            Page mode chunks according to pages. Page sections mode chunks first
            by page, then by sections within each page. Disabled returns one
            single chunk.
          default: variable
        chunk_size:
          type: integer
          title: Chunk Size
          description: >-
            The approximate size of chunks (in characters) that the document
            will be split into. Defaults to None, in which case the chunk size
            is variable between 250 - 1500 characters.
        chunk_overlap:
          type: integer
          title: Chunk Overlap
          description: >-
            Number of characters of overlap to include from adjacent chunks.
            Defaults to 0.
          default: 0
      type: object
      title: ChunkingConfig
    TableSummaryConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: If table summarization should be performed.
          default: false
        prompt:
          type: string
          title: Prompt
          description: Add information to the prompt for table summarization.
      type: object
      title: TableSummaryConfig
    FigureSummaryConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: If figure summarization should be performed.
          default: false
        prompt:
          type: string
          title: Prompt
          description: >-
            Add information to the prompt for figure summarization. Note any
            visual cues that should be incorporated. Example: 'When provided a
            diagram, extract all of the figure content verbatim.'
        override:
          type: boolean
          title: Override
          description: If the figure summary prompt should override our default prompt.
          default: false
        advanced_chart_agent:
          type: boolean
          title: Advanced Chart Agent
          description: If True, use the advanced chart agent. Defaults to False.
          default: false
      type: object
      title: FigureSummaryConfig
    PageRange:
      properties:
        start:
          anyOf:
            - type: integer
            - type: 'null'
          title: Start
          description: The page number to start processing from (1-indexed).
        end:
          anyOf:
            - type: integer
            - type: 'null'
          title: End
          description: The page number to stop processing at (1-indexed).
      type: object
      title: PageRange
    LargeTableChunkingConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            If large tables should be chunked into smaller tables, currently
            only supported on spreadsheet and CSV files.
          default: true
        size:
          type: integer
          title: Size
          description: >-
            The max row/column size for a table to be chunked. Defaults to 50.
            Header rows/columns are persisted based on heuristics.
          default: 50
      type: object
      title: LargeTableChunkingConfig
    EnrichConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            If enabled, a large language/vision model will be used to
            postprocess the extracted content. Note: enabling enrich requires
            tables be outputted in markdown format. Defaults to False.
          default: false
        mode:
          type: string
          enum:
            - standard
            - page
            - table
            - table_auto
          title: Mode
          description: The mode to use for enrichment. Defaults to standard
          default: standard
        prompt:
          type: string
          title: Prompt
          description: Add information to the prompt for enrichment.
      type: object
      title: EnrichConfig
    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:
          anyOf:
            - type: string
            - type: 'null'
          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
    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
    ParseBlock:
      additionalProperties: true
      type: object
    OCRWord:
      properties:
        text:
          type: string
          title: Text
        bbox:
          $ref: '#/components/schemas/BoundingBox'
        confidence:
          anyOf:
            - type: number
            - type: 'null'
          title: Confidence
          description: >-
            OCR confidence score between 0 and 1, where 1 indicates highest
            confidence
        chunk_index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Chunk Index
          description: The index of the chunk that the word belongs to.
        rotation:
          anyOf:
            - type: integer
            - type: 'null'
          title: Rotation
          description: The rotation angle in degrees, from 0 to 360, counterclockwise.
      type: object
      required:
        - text
        - bbox
      title: OCRWord
    OCRLine:
      properties:
        text:
          type: string
          title: Text
        bbox:
          $ref: '#/components/schemas/BoundingBox'
        confidence:
          anyOf:
            - type: number
            - type: 'null'
          title: Confidence
          description: >-
            OCR confidence score between 0 and 1, where 1 indicates highest
            confidence
        chunk_index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Chunk Index
          description: The index of the chunk that the line belongs to.
        rotation:
          anyOf:
            - type: integer
            - type: 'null'
          title: Rotation
          description: The rotation angle in degrees, from 0 to 360, counterclockwise.
      type: object
      required:
        - text
        - bbox
      title: OCRLine
    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
  securitySchemes:
    SkippableHTTPBearer:
      type: http
      scheme: bearer

````