Skip to main content
Parse returns structured content in a format optimized for RAG and LLM applications. This page explains every field in the response.

Response Structure

{
  "job_id": "7600c8c5-a52f-49d2-8a7d-d75d1b51e141",
  "duration": 3.89,
  "result": {
    "type": "full",
    "chunks": [ ... ]
  },
  "usage": {
    "num_pages": 1,
    "credits": 2.0
  },
  "pdf_url": "https://...",
  "studio_link": "https://studio.reducto.ai/job/..."
}

Top-Level Fields

FieldTypeDescription
job_idstringUnique identifier for this job
durationnumberProcessing time in seconds
resultobjectContains parsed content (see below)
usage.num_pagesintegerNumber of pages processed
usage.creditsnumberCredits consumed
pdf_urlstringTemporary URL to download the processed PDF
studio_linkstringLink to view results in Reducto Studio

Result Types: Full vs URL

Parse can return results in two ways:
{
  "result": {
    "type": "full",
    "chunks": [
      { "content": "...", "blocks": [...] }
    ]
  }
}
When returned: Documents under ~6MB response size (most documents).How to use: Access result.chunks directly.
To always receive a URL (useful for consistent handling), set force_url_result: true in your request.

Understanding Chunks

Chunks are the primary output unit, optimized for RAG and embedding workflows.
{
  "content": "# Invoice\n\nBill To: Acme Corp\n123 Main St...",
  "embed": "# Invoice\n\nBill To: Acme Corp\n123 Main St...",
  "blocks": [ ... ],
  "enriched": null,
  "enrichment_success": false
}
FieldDescription
contentMarkdown-formatted content of this chunk
embedEmbedding-optimized version (may include table/figure summaries)
blocksArray of individual content blocks with positions
enrichedAI-enriched content (when enrich config enabled)
enrichment_successWhether enrichment completed successfully

content vs embed

  • content: Raw extracted content, preserves original text
  • embed: Optimized for vector embeddings, may include:
    • Table summaries (natural language descriptions)
    • Figure summaries (AI-generated descriptions)
For RAG: Use embed for your vector database, content for display.

Understanding Blocks

Blocks are the atomic content elements within each chunk. Every paragraph, table, header, and figure is a separate block.
{
  "type": "Table",
  "content": "<table><tr><th>Date</th><th>Amount</th></tr>...</table>",
  "bbox": {
    "left": 0.076,
    "top": 0.427,
    "width": 0.834,
    "height": 0.432,
    "page": 1,
    "original_page": 1
  },
  "confidence": "high",
  "granular_confidence": {
    "parse_confidence": 0.834,
    "extract_confidence": null
  },
  "image_url": null
}

Block Types

TypeDescriptionExample Content
TitleDocument title”Invoice #12345”
Section HeaderSection headings”Payment Terms”
HeaderPage headers”Page 1 of 5”
FooterPage footers”Confidential”
TextBody paragraphs”Thank you for your business…”
TableTabular dataHTML/Markdown table
FigureImages and chartsCaption or AI description
Key ValueLabel-value pairs”Total: $1,234.56”
List ItemBulleted/numbered items”• First item”
CheckboxForm checkboxes”☑ Agree to terms”

Block Fields

FieldTypeDescription
typestringBlock type (see table above)
contentstringThe actual content
bboxobjectPosition and size on the page
confidencestring”high” or “low”
granular_confidenceobjectNumeric confidence scores
image_urlstring|nullURL to block image (if return_images enabled)

Bounding Box Coordinates

Every block includes a bbox object describing its position on the page.
{
  "left": 0.076,
  "top": 0.427,
  "width": 0.834,
  "height": 0.432,
  "page": 1,
  "original_page": 1
}

Coordinate System

All coordinates are normalized to [0, 1] relative to page dimensions:
(0,0) ─────────────────────────── (1,0)
  │                                 │
  │    ┌─────────────────┐          │
  │    │     Block       │          │
  │    │  left=0.1       │          │
  │    │  top=0.2        │          │
  │    │  width=0.5      │          │
  │    │  height=0.3     │          │
  │    └─────────────────┘          │
  │                                 │
(0,1) ─────────────────────────── (1,1)
FieldDescription
leftDistance from left edge (0 = left edge, 1 = right edge)
topDistance from top edge (0 = top, 1 = bottom)
widthBlock width as fraction of page width
heightBlock height as fraction of page height
pagePage number (1-indexed) in the processed output
original_pagePage number in the source document
page and original_page differ when using page_range to process a subset of pages. For example, if you process pages 5-10, page 5 becomes page: 1 but original_page: 5.

Confidence Scores

Parse provides confidence scores to help you identify potentially problematic extractions.

String Confidence

"confidence": "high"  // or "low"
  • high: Extraction is reliable
  • low: May need review; consider enabling agentic mode

Granular Confidence

"granular_confidence": {
  "parse_confidence": 0.834,
  "extract_confidence": null
}
FieldDescription
parse_confidenceNumeric score (0-1) for parsing accuracy
extract_confidenceNumeric score for extraction (when using Extract endpoint)

Complete Example

Here’s a complete example showing the full structure:
{
  "job_id": "7600c8c5-a52f-49d2-8a7d-d75d1b51e141",
  "duration": 3.89,
  "result": {
    "type": "full",
    "chunks": [
      {
        "content": "# Bank Statement\n\nAccount: 12345678\nPeriod: Jan 1 - Jan 31, 2024\n\n## Transactions\n\n| Date | Description | Amount |\n|------|-------------|--------|\n| 01/05 | Direct Deposit | $2,500.00 |\n| 01/10 | Grocery Store | -$85.32 |",
        "embed": "# Bank Statement\n\nAccount: 12345678\nPeriod: Jan 1 - Jan 31, 2024\n\n## Transactions\n\nThis table shows transactions including a direct deposit of $2,500 and a grocery purchase of $85.32.",
        "blocks": [
          {
            "type": "Title",
            "content": "Bank Statement",
            "bbox": {
              "left": 0.35,
              "top": 0.02,
              "width": 0.30,
              "height": 0.03,
              "page": 1,
              "original_page": 1
            },
            "confidence": "high",
            "granular_confidence": {
              "parse_confidence": 0.95,
              "extract_confidence": null
            },
            "image_url": null
          },
          {
            "type": "Key Value",
            "content": "Account: 12345678",
            "bbox": {
              "left": 0.10,
              "top": 0.08,
              "width": 0.25,
              "height": 0.02,
              "page": 1,
              "original_page": 1
            },
            "confidence": "high",
            "granular_confidence": {
              "parse_confidence": 0.92,
              "extract_confidence": null
            },
            "image_url": null
          },
          {
            "type": "Section Header",
            "content": "Transactions",
            "bbox": {
              "left": 0.10,
              "top": 0.15,
              "width": 0.20,
              "height": 0.02,
              "page": 1,
              "original_page": 1
            },
            "confidence": "high",
            "granular_confidence": {
              "parse_confidence": 0.88,
              "extract_confidence": null
            },
            "image_url": null
          },
          {
            "type": "Table",
            "content": "| Date | Description | Amount |\n|------|-------------|--------|\n| 01/05 | Direct Deposit | $2,500.00 |\n| 01/10 | Grocery Store | -$85.32 |",
            "bbox": {
              "left": 0.10,
              "top": 0.20,
              "width": 0.80,
              "height": 0.25,
              "page": 1,
              "original_page": 1
            },
            "confidence": "high",
            "granular_confidence": {
              "parse_confidence": 0.78,
              "extract_confidence": null
            },
            "image_url": null
          }
        ],
        "enriched": null,
        "enrichment_success": false
      }
    ]
  },
  "usage": {
    "num_pages": 1,
    "credits": 2.0
  },
  "pdf_url": "https://storage.reducto.ai/pdfs/7600c8c5.pdf?...",
  "studio_link": "https://studio.reducto.ai/job/7600c8c5-a52f-49d2-8a7d-d75d1b51e141"
}