# Tanod Docs PDF Outline Extractor

> Tanod Docs PDF Outline Extractor is a paid API for AI agents from docs.tanod.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-13).

Extracts the hierarchical bookmark/outline (table of contents) from a PDF file, returning structured section titles and page numbers.

## Facts

- Endpoint: POST https://docs.tanod.dev/v1/pdf/outline?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-docs-pdf-outline-extractor-8461c9d0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PapkFzWPch9b-1UXqet0t

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 tanod-docs-pdf-outline-extractor-8461c9d0 -d '<json body>'
```

Example prompt: Can you pull out the table of contents from this PDF — I need all the section titles and their page numbers: https://example.com/report.pdf

## When to prefer this

Use this endpoint when you specifically need to extract the structural outline or bookmarks embedded in a PDF (its table of contents), not when you need to extract full text content, convert the PDF to another format, or perform OCR. It is the right choice when you want to understand document structure, build navigation indices, or verify that a PDF is properly structured with named sections.

## Known failure modes

- PDF URL is inaccessible, private, or IP-literal — request refused
- PDF exceeds 20 MB via URL or 10 MB via base64 — rejected
- PDF has no embedded outline/bookmarks — returns has_outline: false with empty array
- Malformed base64 input — parse error
- Both url and pdf_base64 omitted — missing input error
- PDF is password-protected or corrupted — processing failure

## How this service works

Documents: DOCX template fill, Office to PDF, any file to Markdown, PDF to Word, OCR, PDF pipeline.

## Output

Returns a JSON object containing: the full outline array (each item has a title string and page number), total item count, maximum depth of nesting, whether the PDF has an outline at all, whether the result was truncated, input file size in bytes, number of pages, and an untrusted_content flag.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 2048,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64."
  },
  "pdf_base64": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 13398872,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "The PDF as base64 (at most 10 MB decoded per request); or use url."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "depth": 1,
  "items": 1,
  "outline": [
   {
    "page": 1,
    "title": "Dummy PDF file"
   }
  ],
  "operation": "outline",
  "truncated": false,
  "has_outline": true,
  "input_bytes": 13264,
  "input_pages": 1,
  "untrusted_content": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-docs-pdf-outline-extractor-8461c9d0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from docs.tanod.dev](https://www.zero.xyz/host/docs.tanod.dev/llms.txt)
