---
title: "Parse"
method: POST
path: "/parse"
---

# Parse

`POST /parse`

## Request body

- union
  - SyncParseConfig
    - `input` union, required — For parse/split/extract pipelines, 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 4. A jobid:// prefixed URL obtained from a previous /parse invocation 5. A list of URLs (for multi-document pipelines, V3 API only) For edit pipelines, this should be a string containing the edit instructions
      - string
      - string[]
      - UploadResponse
        - `file_id` string, required
        - `presigned_url` string, nullable
    - `enhance` Enhance
      - `agentic` union[] — Agentic uses vision language models to enhance the accuracy of the output of different types of extraction. This will incur a cost and latency increase.
        - union
          - TableAgentic
            - `scope` 'table', required
            - `prompt` string, nullable — Custom prompt for table agentic.
          - FigureAgentic
            - `scope` 'figure', required
            - `prompt` string, nullable — Custom prompt for figure agentic.
            - `advanced_chart_agent` boolean — If True, use the advanced chart agent. Defaults to False.
            - `return_overlays` boolean — If True, return overlays for the figure. This is so you can use the overlays to double check the quality of the extraction
          - TextAgentic
            - `scope` 'text', required
            - `prompt` string, nullable — Custom instructions for agentic text. Note: This only applies to form regions (key-value).
      - `summarize_figures` boolean — If True, summarize figures using a small vision language model. Defaults to True.
      - `intelligent_ordering` boolean — If True, use an advanced vision language model to improve reading order accuracy, with a small increase in latency. Defaults to False.
    - `retrieval` Retrieval
      - `chunking` Chunking
        - `chunk_mode` 'variable' | 'section' | 'page' | 'disabled' | 'block' | 'page_sections' — 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.
        - `chunk_size` integer, nullable — The approximate size of chunks (in characters) that the document will be split into. Defaults to null, in which case the chunk size is variable between 250 - 1500 characters.
        - `chunk_overlap` integer — Number of characters of overlap to include from adjacent chunks. Defaults to 0.
      - `filter_blocks` string[] — A list of block types to filter out from 'content' and 'embed' fields. By default, no blocks are filtered.
      - `embedding_optimized` boolean — If True, use embedding optimized mode. Defaults to False.
    - `formatting` Formatting
      - `add_page_markers` boolean — If True, add page markers to the output. Defaults to False. Useful for extracting data with page specific information.
      - `table_output_format` 'html' | 'json' | 'md' | 'jsonbbox' | 'dynamic' | 'csv' — The mode to use for table output. Defaults to dynamic, which returns md for simpler tables and html for more complex tables.
      - `merge_tables` boolean — A flag to indicate if consecutive tables with the same number of columns should be merged. Defaults to False.
      - `include` string[] — A list of formatting to include in the output.
    - `spreadsheet` Spreadsheet
      - `split_large_tables` SplitLargeTables
        - `enabled` boolean — If True, split large tables into smaller tables. Defaults to True.
        - `size` union — The size of the tables to split into. Defaults to 50. Use 'row' and 'column' to independently specify the number of rows and columns to include when splitting. If you only want to split by rows or columns, set the other value to None.
          - integer
          - SplitLargeTableSizes
            - `row` integer, nullable — The number of rows to include in each chunk when splitting large tables. Does not chunk rows if set to None.
            - `column` integer, nullable — The number of columns to include in each chunk when splitting large tables. Does not chunk columns if set to None.
      - `include` string[] — Whether to include cell color, formula, and dropdown information in the output.
      - `clustering` 'accurate' | 'fast' | 'disabled' — In a spreadsheet with different tables inside, we enable splitting up the tables by default. Accurate mode applies more powerful models for superior accuracy, at 5× the default per-cell rate. Disabling will register as one large table.
      - `exclude` string[] — Whether to exclude hidden sheets, rows, or columns in the output.
    - `settings` Settings
      - `ocr_system` 'standard' | 'legacy' — Standard is our best multilingual OCR system. Legacy only supports germanic languages and is available for backwards compatibility.
      - `extraction_mode` 'ocr' | 'hybrid' — The mode to use for text extraction from PDFs. OCR mode uses optical character recognition only. Hybrid mode combines OCR with embedded PDF text for best accuracy (default).
      - `force_url_result` boolean — Force the result to be returned in URL form.
      - `force_file_extension` string, nullable — Force the URL to be downloaded as a specific file extension (e.g. `.png`).
      - `return_ocr_data` boolean — If True, return OCR data in the result. Defaults to False.
      - `return_images` string[] — Whether to return images for the specified block types. 'page' returns full page images. By default, no images are returned.
      - `embed_pdf_metadata` boolean — If True, embed OCR metadata into the returned PDF. Defaults to False.
      - `persist_results` boolean — If True, persist the results indefinitely. Defaults to False.
      - `timeout` number, nullable — The timeout for the job in seconds.
      - `page_range` union — 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.
        - PageRange
          - `start` integer, nullable — The page number to start processing from (1-indexed).
          - `end` integer, nullable — The page number to stop processing at (1-indexed).
        - PageRange[]
          - `start` integer, nullable — The page number to start processing from (1-indexed).
          - `end` integer, nullable — The page number to stop processing at (1-indexed).
        - integer[]
        - string[]
      - `document_password` string, nullable — Password to decrypt password-protected documents.
  - AsyncParseConfig
    - `async` ConfigV3AsyncConfig
      - `metadata` unknown
      - `priority` boolean — 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.
      - `webhook` union — The webhook configuration for the asynchronous processing.
        - SvixWebhookConfig
          - `mode` 'svix'
          - `channels` string[] — A list of Svix channels the message will be delivered down, omit to send to all channels.
        - DirectWebhookConfig
          - `mode` 'direct'
          - `url` string, required
    - `input` union, required — For parse/split/extract pipelines, 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 4. A jobid:// prefixed URL obtained from a previous /parse invocation 5. A list of URLs (for multi-document pipelines, V3 API only) For edit pipelines, this should be a string containing the edit instructions
      - string
      - string[]
      - UploadResponse
        - `file_id` string, required
        - `presigned_url` string, nullable
    - `enhance` Enhance
      - `agentic` union[] — Agentic uses vision language models to enhance the accuracy of the output of different types of extraction. This will incur a cost and latency increase.
        - union
          - TableAgentic
            - `scope` 'table', required
            - `prompt` string, nullable — Custom prompt for table agentic.
          - FigureAgentic
            - `scope` 'figure', required
            - `prompt` string, nullable — Custom prompt for figure agentic.
            - `advanced_chart_agent` boolean — If True, use the advanced chart agent. Defaults to False.
            - `return_overlays` boolean — If True, return overlays for the figure. This is so you can use the overlays to double check the quality of the extraction
          - TextAgentic
            - `scope` 'text', required
            - `prompt` string, nullable — Custom instructions for agentic text. Note: This only applies to form regions (key-value).
      - `summarize_figures` boolean — If True, summarize figures using a small vision language model. Defaults to True.
      - `intelligent_ordering` boolean — If True, use an advanced vision language model to improve reading order accuracy, with a small increase in latency. Defaults to False.
    - `retrieval` Retrieval
      - `chunking` Chunking
        - `chunk_mode` 'variable' | 'section' | 'page' | 'disabled' | 'block' | 'page_sections' — 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.
        - `chunk_size` integer, nullable — The approximate size of chunks (in characters) that the document will be split into. Defaults to null, in which case the chunk size is variable between 250 - 1500 characters.
        - `chunk_overlap` integer — Number of characters of overlap to include from adjacent chunks. Defaults to 0.
      - `filter_blocks` string[] — A list of block types to filter out from 'content' and 'embed' fields. By default, no blocks are filtered.
      - `embedding_optimized` boolean — If True, use embedding optimized mode. Defaults to False.
    - `formatting` Formatting
      - `add_page_markers` boolean — If True, add page markers to the output. Defaults to False. Useful for extracting data with page specific information.
      - `table_output_format` 'html' | 'json' | 'md' | 'jsonbbox' | 'dynamic' | 'csv' — The mode to use for table output. Defaults to dynamic, which returns md for simpler tables and html for more complex tables.
      - `merge_tables` boolean — A flag to indicate if consecutive tables with the same number of columns should be merged. Defaults to False.
      - `include` string[] — A list of formatting to include in the output.
    - `spreadsheet` Spreadsheet
      - `split_large_tables` SplitLargeTables
        - `enabled` boolean — If True, split large tables into smaller tables. Defaults to True.
        - `size` union — The size of the tables to split into. Defaults to 50. Use 'row' and 'column' to independently specify the number of rows and columns to include when splitting. If you only want to split by rows or columns, set the other value to None.
          - integer
          - SplitLargeTableSizes
            - `row` integer, nullable — The number of rows to include in each chunk when splitting large tables. Does not chunk rows if set to None.
            - `column` integer, nullable — The number of columns to include in each chunk when splitting large tables. Does not chunk columns if set to None.
      - `include` string[] — Whether to include cell color, formula, and dropdown information in the output.
      - `clustering` 'accurate' | 'fast' | 'disabled' — In a spreadsheet with different tables inside, we enable splitting up the tables by default. Accurate mode applies more powerful models for superior accuracy, at 5× the default per-cell rate. Disabling will register as one large table.
      - `exclude` string[] — Whether to exclude hidden sheets, rows, or columns in the output.
    - `settings` Settings
      - `ocr_system` 'standard' | 'legacy' — Standard is our best multilingual OCR system. Legacy only supports germanic languages and is available for backwards compatibility.
      - `extraction_mode` 'ocr' | 'hybrid' — The mode to use for text extraction from PDFs. OCR mode uses optical character recognition only. Hybrid mode combines OCR with embedded PDF text for best accuracy (default).
      - `force_url_result` boolean — Force the result to be returned in URL form.
      - `force_file_extension` string, nullable — Force the URL to be downloaded as a specific file extension (e.g. `.png`).
      - `return_ocr_data` boolean — If True, return OCR data in the result. Defaults to False.
      - `return_images` string[] — Whether to return images for the specified block types. 'page' returns full page images. By default, no images are returned.
      - `embed_pdf_metadata` boolean — If True, embed OCR metadata into the returned PDF. Defaults to False.
      - `persist_results` boolean — If True, persist the results indefinitely. Defaults to False.
      - `timeout` number, nullable — The timeout for the job in seconds.
      - `page_range` union — 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.
        - PageRange
          - `start` integer, nullable — The page number to start processing from (1-indexed).
          - `end` integer, nullable — The page number to stop processing at (1-indexed).
        - PageRange[]
          - `start` integer, nullable — The page number to start processing from (1-indexed).
          - `end` integer, nullable — The page number to stop processing at (1-indexed).
        - integer[]
        - string[]
      - `document_password` string, nullable — Password to decrypt password-protected documents.
    - `queue_priority` 'auto' | 'batch' — Customer-facing queue priority for parse jobs.

## Response `200`

Successful Response

- union
  - ParseResponse
    - `job_id` string, required
    - `duration` number, required — The duration of the parse request in seconds.
    - `pdf_url` string, nullable — The storage URL of the converted PDF file.
    - `studio_link` string, nullable — The link to the studio pipeline for the document.
    - `usage` ParseUsage, required
      - `num_pages` integer, required
      - `credits` number, nullable
      - `credit_breakdown` object, nullable
    - `result` union, required — 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.
      - FullResult
        - `type` 'full', required — type = 'full'
        - `chunks` ParseChunk[], required
          - `content` string, required — The content of the chunk extracted from the document.
          - `embed` string, required — Chunk content optimized for embedding and retrieval.
          - `enriched` string, nullable, required — The enriched content of the chunk extracted from the document.
          - `enrichment_success` boolean — Whether the enrichment was successful.
          - `blocks` ParseBlock[], required
            - `type` 'Header' | 'Footer' | 'Title' | 'Section Header' | 'Page Number' | 'List Item' | 'Figure' | 'Table' | 'Key Value' | 'Text' | 'Comment' | 'Signature', required — The type of block extracted from the document.
            - `bbox` BoundingBox, required
              - …
            - `content` string, required — The content of the block extracted from the document.
            - `image_url` string, nullable — (Experimental) The URL of the image associated with the block.
            - `chart_data` string[], nullable — (Experimental) The URL/link to chart data JSON for figure blocks processed by chart agent.
            - `confidence` string, nullable — The confidence for the block. It is either low or high and takes into account factors like OCR and table structure
            - `granular_confidence` GranularConfidence
              - …
            - `extra` object, nullable — Extra metadata fields for the block. Fields like 'is_chart' will only appear when set to True.
        - `ocr` OCRResult
          - `words` OCRWord[], required
            - `text` string, required
            - `bbox` BoundingBox, required
              - …
            - `confidence` number, nullable — OCR confidence score between 0 and 1, where 1 indicates highest confidence
            - `chunk_index` integer, nullable — The index of the chunk that the word belongs to.
            - `rotation` integer, nullable — The rotation angle in degrees, from 0 to 360, counterclockwise.
          - `lines` OCRLine[], required
            - `text` string, required
            - `bbox` BoundingBox, required
              - …
            - `confidence` number, nullable — OCR confidence score between 0 and 1, where 1 indicates highest confidence
            - `chunk_index` integer, nullable — The index of the chunk that the line belongs to.
            - `rotation` integer, nullable — The rotation angle in degrees, from 0 to 360, counterclockwise.
        - `custom` unknown
      - UrlResult
        - `type` 'url', required — type = 'url'
        - `url` string, required
        - `result_id` string, required
  - AsyncParseResponse
    - `job_id` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-03-23** `b95a9d9d17e3` — 1 info
  - added the new optional request property `oneOf[subschema #2: AsyncParseConfig]/queue_priority`
- **2026-03-20** `f8daaa99696f` — 1 info
  - added the optional property `anyOf[subschema #1: ParseResponse]/usage/credit_breakdown` to the response with the `200` status

[Change history](https://skmtc.dev/reductoai/apis/reducto-api/changes/parse/post.md)

---

[API](https://skmtc.dev/reductoai/apis/reducto-api.md) · [All operations](https://skmtc.dev/reductoai/apis/reducto-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reductoai/reducto-api/revisions/9dcbb133ea8d/schema)
