# PDF to Structured JSON (Pages, Paragraphs, Tables, Geometry)

> PDF to Structured JSON (Pages, Paragraphs, Tables, Geometry) is a paid API for AI agents from manyfish-seller.redcliff-d7368db1.westus2.azurecontainerapps.io, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-13).

Extracts and normalizes pages, paragraphs, tables, sections, and geometric layout from a base64-encoded PDF into structured JSON.

## Facts

- Endpoint: POST https://manyfish-seller.redcliff-d7368db1.westus2.azurecontainerapps.io/api/v1/content/pdf-to-json
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pdf-to-structured-json-pages-paragraphs-tables-geometry-8d40dc1e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8vOUGN_fxNHiquASVhiZo

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability pdf-to-structured-json-pages-paragraphs-tables-geometry-8d40dc1e -d '<json body>'
```

Example prompt: Parse this PDF for me and give me the structured content — pages, paragraphs, tables, and geometric layout — as JSON; here's the file in base64, and I only need pages 1-5.

## When to prefer this

Choose this endpoint when you need rich, structured JSON output from a PDF with geometric layout metadata (bounding boxes, positions) in addition to text — especially when downstream processing requires table extraction, section identification, or paragraph-level structure. Prefer this over the PDF-to-Markdown endpoint when you need machine-parseable JSON with spatial geometry rather than human-readable Markdown, and over OCR endpoints when the PDF has a parseable internal structure (not just a scanned image).

## Known failure modes

- Invalid base64 encoding returns a 400 error
- PDF exceeds maximum size limit (base64 string over ~10MB) returns a 413 or 400 error
- Malformed page range pattern returns a 400 validation error
- Corrupted or password-protected PDFs may fail to parse
- Invalid locale format returns a 400 validation error
- Payment not fulfilled returns a 402 Payment Required

## How this service works

Extract normalized pages, paragraphs, tables, sections, and geometry from a supplied PDF.

## Output

A structured JSON object containing normalized document components including pages (with page numbers and dimensions), paragraphs (with text content and positions), tables (with rows, columns, and cell data), sections, and geometric bounding box information for each element.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "pages": {
   "type": "string",
   "pattern": "^[1-9]\\d*(?:-[1-9]\\d*)?(?:,[1-9]\\d*(?:-[1-9]\\d*)?)*$",
   "maxLength": 512,
   "minLength": 1
  },
  "locale": {
   "type": "string",
   "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
   "maxLength": 32,
   "minLength": 2
  },
  "pdfBase64": {
   "type": "string",
   "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
   "maxLength": 13981016,
   "minLength": 8
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "pages": [
   {
    "lines": [],
    "pageNumber": 1,
    "selectionMarks": []
   }
  ],
  "tables": [],
  "content": "Example document text.",
  "sections": [],
  "pageCount": 1,
  "paragraphs": [],
  "processedPages": [
   1
  ],
  "contentCharacters": 22
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pdf-to-structured-json-pages-paragraphs-tables-geometry-8d40dc1e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from manyfish-seller.redcliff-d7368db1.westus2.azurecontainerapps.io](https://www.zero.xyz/host/manyfish-seller.redcliff-d7368db1.westus2.azurecontainerapps.io/llms.txt)
