# Tanod Docs PDF Split

> Tanod Docs PDF Split 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).

Splits a PDF into multiple smaller PDFs by page ranges or fixed page intervals, returning files as base64 or download URLs.

## Facts

- Endpoint: POST https://docs.tanod.dev/v1/pdf/split?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-split-6cebe766
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5spRJiP8uChG_W3jWIXqH

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-split-6cebe766 -d '<json body>'
```

Example prompt: Split this PDF (https://example.com/report.pdf) into three parts by page ranges 1-3, 4-6, and 7 onward, and give me download links instead of base64 data.

## When to prefer this

Use this endpoint when you need to split a PDF into multiple output files either by explicit page ranges or by fixed page intervals. It is ideal for breaking large documents into distributable sections, extracting chapters, or chunking reports for downstream processing. Prefer it over generic file conversion endpoints when your goal is specifically partitioning a PDF (not converting its format or extracting text content).

## Known failure modes

- PDF URL exceeds 20 MB or is from a private/internal/IP-literal host — request refused
- base64 PDF input exceeds 10 MB decoded — request rejected
- Invalid page ranges format (must match pattern like '1-3,4-6,7-') — validation error
- mode=every used without specifying the 'every' parameter — missing required field
- PDF is password-protected or corrupted — processing failure
- Network timeout fetching remote PDF URL — connection error

## 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 an array of split PDF files. Each file entry includes its name, byte size, page count, first and last page numbers, content type, and either the file data as a base64 string or a download URL (valid for 24 hours) with expiry timestamp, byte count, and SHA-256 hash. Also includes summary fields: operation type, total file count, input byte size, input page count, and total output byte size.

## 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."
  },
  "mode": {
   "enum": [
    "ranges",
    "every"
   ],
   "type": "string",
   "default": "ranges",
   "description": "ranges (one file per comma part of `ranges`) or every (a file every `every` pages)."
  },
  "every": {
   "anyOf": [
    {
     "type": "integer",
     "maximum": 500,
     "minimum": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "mode=every: pages per file."
  },
  "output": {
   "enum": [
    "base64",
    "url"
   ],
   "type": "string",
   "default": "base64",
   "description": "base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, which keeps the file out of your context window."
  },
  "ranges": {
   "anyOf": [
    {
     "type": "string",
     "pattern": "^[0-9a-zA-Z ,\\-]+$",
     "maxLength": 200,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "mode=ranges: e.g. 1-3,4-6,7-."
  },
  "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": {
  "mode": "ranges",
  "files": [
   {
    "name": "pages-1.pdf",
    "bytes": 51782,
    "pages": 1,
    "last_page": 1,
    "first_page": 1,
    "data_base64": "JVBERi0xLjcKJb/3... (trimmed: 69,044 base64 characters in the reply)",
    "content_type": "application/pdf"
   },
   {
    "name": "pages-2-6.pdf",
    "bytes": 44619,
    "pages": 5,
    "last_page": 6,
    "first_page": 2,
    "data_base64": "JVBERi0xLjcKJb/3... (trimmed: 59,492 base64 characters in the reply)",
    "content_type": "application/pdf"
   }
  ],
  "operation": "split",
  "file_count": 2,
  "input_bytes": 140815,
  "input_pages": 6,
  "output_bytes": 96401,
  "untrusted_content": true,
  "active_content_removed": {}
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-docs-pdf-split-6cebe766/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)
