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

# Formats and capabilities

> Supported inputs, output formats, the capability matrix, container documents, and the parsing endpoints

This page catalogs the renderings parsing returns, the capabilities it recovers, the inputs it accepts, and the endpoints that drive it. For step-by-step usage, see the [tutorial](/document-parsing/tutorials/parse-your-first-document) and the how-to guides.

## Renderings

Markdown and annotated Markdown come from the result endpoint, `GET /documents/{job_id}/result`, selected with the `format` query parameter, which defaults to `markdown`. The strongly-typed structured result has its own endpoint, `GET /documents/{job_id}/structured`.

| Rendering  | How to fetch                         | Shape                                                                       | Best for                          |
| ---------- | ------------------------------------ | --------------------------------------------------------------------------- | --------------------------------- |
| Markdown   | `format=markdown`                    | Readable text with headings, lists, tables, formulas, and chart tables      | Language models and human readers |
| Structured | `GET /documents/{job_id}/structured` | Typed pages of elements, with tables, chart data, positions, and confidence | Programmatic use                  |
| Annotated  | `format=annotated`                   | Markdown with bounding-box provenance comments                              | Text together with position       |

The `format=json` value returns an earlier flat JSON rendering; the structured result is the typed, richer replacement for programmatic use. Guidance on choosing is in [choosing an output format](/document-parsing/guides/choosing-an-output-format). The fields are documented in the [output schema](/document-parsing/reference/output-schema).

## Capability matrix

Each row names a capability parsing recovers, along with the part of the result where it surfaces.

| Capability               | What it does                                             | Where it appears                                                                |
| ------------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Layout analysis          | Labels regions by content role                           | Element `label`; see [element types](/document-parsing/reference/element-types) |
| Heading hierarchy        | Assigns H1 to H6 from the document's typography          | Element `heading_level`                                                         |
| Table structure          | Recovers rows, columns, and spanning cells               | Element `table`                                                                 |
| Reading order            | Sequences content the way a person reads it              | Element `reading_order`                                                         |
| OCR                      | Recognizes text on scanned and image pages, multilingual | Element `text`                                                                  |
| Orientation correction   | Rotates pages upright by 90, 180, or 270 degrees         | Applied before recognition                                                      |
| Chart digitization       | Recovers line and scatter series from vector geometry    | Element `chart_data`                                                            |
| Vision model recognition | Reads formulas, charts, seals, and pictures              | Element `text` and `chart_data`                                                 |
| Confidence               | Scores each element and the document                     | Element `confidence`, document `confidence`                                     |
| Provenance               | Positions every element and chart point                  | Element `bbox`                                                                  |

## Inputs

| Input                     | Handling                                                                                                              |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Digital PDF               | Text, layout, and tables read directly from the file. Encrypted PDFs are decrypted where possible.                    |
| Scanned or image-only PDF | OCR runs per page, with orientation correction first.                                                                 |
| Image files               | Recognized through the same OCR path as scanned pages.                                                                |
| Office documents          | Word, Excel, and PowerPoint files are parsed into the same element model.                                             |
| Container files           | ZIP, TAR, and EML files expand into child documents, each parsed on its own. See [child documents](#child-documents). |

Mixed PDFs, where some pages carry a text layer and others are scanned, are decided page by page in a single pass. See [parsing scanned documents](/document-parsing/guides/parsing-scanned-documents).

## Job statuses

A job reported by `GET /documents/{job_id}` moves through these statuses.

| Status       | Meaning                            |
| ------------ | ---------------------------------- |
| `queued`     | Submitted and waiting to start.    |
| `processing` | Being parsed.                      |
| `completed`  | Finished; the result is available. |
| `failed`     | Parsing did not complete.          |

Poll until the status reaches `completed` or `failed`. A 2-second interval suits most documents.

## Child documents

A container file expands into one child document per file it holds, and each child is parsed independently. `GET /documents/{job_id}/children` lists them. Each entry reports:

| Field        | Type   | Description                           |
| ------------ | ------ | ------------------------------------- |
| `job_id`     | string | The child's own job identifier.       |
| `filename`   | string | The file's name within the container. |
| `status`     | string | The child's job status.               |
| `media_type` | string | The child's detected media type.      |

Fetch a child's result with its own `job_id`, the same way as any other job.

<Note>
  Container extraction applies safety limits against malicious archives, including caps on the number of files, the total decompressed size, and the nesting depth.
</Note>

## Endpoints

| Method and path                      | Purpose                                                              |
| ------------------------------------ | -------------------------------------------------------------------- |
| `POST /documents`                    | Submit a file for asynchronous parsing. Returns a `job_id`.          |
| `POST /documents/process`            | Parse synchronously and return the result in one call.               |
| `GET /documents/{job_id}`            | Get job status and, when complete, a summary.                        |
| `GET /documents/{job_id}/result`     | Fetch a readable or interchange rendering in the requested `format`. |
| `GET /documents/{job_id}/structured` | Fetch the strongly-typed structured result.                          |
| `GET /documents/{job_id}/children`   | List child documents from a container.                               |
| `GET /documents/{job_id}/trace`      | Stream progress as Server-Sent Events.                               |

<Note>
  The synchronous endpoint suits small files, roughly under 10 MB. For larger documents, submit asynchronously and poll, or stream the trace for progress.
</Note>

Full request and response detail for each endpoint is in the [Documents API reference](/api-reference/v2/endpoints/post-documents).

## Related

<CardGroup cols={2}>
  <Card title="Output schema" icon="code" href="/document-parsing/reference/output-schema">
    Field-by-field detail of the structured result.
  </Card>

  <Card title="How parsing works" icon="gears" href="/document-parsing/concepts/how-parsing-works">
    The stages behind these capabilities.
  </Card>
</CardGroup>
