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

# The Block Object

> Detailed information about the Block object structure and types returned by the `/parse` API endpoint.

## Overview

A Block represents a distinct content element within a document, such as a paragraph of text, a heading, a table, or a figure. Blocks are the fundamental units that make up chunks in parsed documents.

## Block Object Structure

<ResponseField name="object" type="string">
  The type of object. Always "block".
</ResponseField>

<ResponseField name="id" type="string">
  A unique identifier for the block, deterministically generated as a hash of the block content.
</ResponseField>

<ResponseField name="type" type="string">
  The type of block. Possible values include:

  * `text`: Regular text content
  * `heading`: Section or document headings
  * `section_heading`: Subsection headings
  * `table`: Tabular data with rows and columns
  * `figure`: Images, charts, or diagrams
</ResponseField>

<ResponseField name="content" type="string">
  The textual content of the block, formatted according to the target format specified in the parse request.
</ResponseField>

<ResponseField name="details" type="object">
  Additional details specific to the block type. The structure varies depending on the block type.

  <Expandable title="Block Type Details" defaultOpen>
    <ResponseField name="oneOf" type="object">
      <Expandable title="Figure Details" defaultOpen>
        <ResponseField name="type" type="string" default="figure_details">
          Indicates this is a figure details object.
        </ResponseField>

        <ResponseField name="imageUrl" type="string">
          URL to the clipped/segmented figure image. Only set if the option `figureImageClippingEnabled` is true (which is default true).
        </ResponseField>

        <ResponseField name="figureType" type="string">
          The refined type of figure - only set when figure classification and summarization is enabled. Possible values:

          * `image`: A photographic image
          * `chart`: A data chart or graph
          * `diagram`: A schematic or diagram
          * `logo`: A company or brand logo
          * `other`: Any other type of figure
        </ResponseField>
      </Expandable>

      <Expandable title="Table Details">
        <ResponseField name="type" type="string" default="table_details">
          Indicates this is a table details object.
        </ResponseField>

        <ResponseField name="rowCount" type="number">
          The number of rows in the table.
        </ResponseField>

        <ResponseField name="columnCount" type="number">
          The number of columns in the table.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata" type="object">
  Metadata about the block.

  <Expandable title="properties">
    <ResponseField name="pageNumber" type="number">
      The page number where the block appears in the document.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="polygon" type="array">
  An array of points defining the polygon that bounds the block on the page.
  Each point is an object with `x` and `y` coordinates.
</ResponseField>

<ResponseField name="boundingBox" type="object">
  A simplified rectangular bounding box for the block, derived from the polygon.

  <Expandable title="properties">
    <ResponseField name="top" type="number">
      The y-coordinate of the top edge of the bounding box.
    </ResponseField>

    <ResponseField name="left" type="number">
      The x-coordinate of the left edge of the bounding box.
    </ResponseField>

    <ResponseField name="width" type="number">
      The width of the bounding box.
    </ResponseField>

    <ResponseField name="height" type="number">
      The height of the bounding box.
    </ResponseField>
  </Expandable>
</ResponseField>

## Block Type Examples

<CodeGroup>
  ```json Text Block theme={null}
  {
    "object": "block",
    "id": "block_1a2b3c4d5e",
    "type": "text",
    "content": "This is a paragraph of text content that appears in the document.",
    "details": {},
    "metadata": {
      "pageNumber": 1
    },
    "polygon": [
      {"x": 100, "y": 50},
      {"x": 500, "y": 50},
      {"x": 500, "y": 80},
      {"x": 100, "y": 80}
    ],
    "boundingBox": {
      "top": 50,
      "left": 100,
      "width": 400,
      "height": 30
    }
  }
  ```

  ```json Heading Block theme={null}
  {
    "object": "block",
    "id": "block_2b3c4d5e6f",
    "type": "heading",
    "content": "Document Title",
    "details": {},
    "metadata": {
      "pageNumber": 1
    },
    "polygon": [
      {"x": 200, "y": 20},
      {"x": 400, "y": 20},
      {"x": 400, "y": 40},
      {"x": 200, "y": 40}
    ],
    "boundingBox": {
      "top": 20,
      "left": 200,
      "width": 200,
      "height": 20
    }
  }
  ```
</CodeGroup>
