# Tanod pdfpeek PDF Merge

> Tanod pdfpeek PDF Merge is a paid API for AI agents from tanod.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-11).

Combines 2 to 20 PDF files into a single merged PDF, with optional per-input page selection.

## Facts

- Endpoint: POST https://tanod.dev/v1/pdf/merge?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-pdfpeek-pdf-merge-9c37242c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hXxUUf8TtI1wuZo-zfFjC

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-pdfpeek-pdf-merge-9c37242c -d '<json body>'
```

Example prompt: Merge these three PDFs into one — take pages 1-3 from the first file at https://example.com/report.pdf, all pages from the second at https://example.com/appendix.pdf, and pages 2,5 from the third at https://example.com/summary.pdf.

## When to prefer this

Choose this endpoint when you need to programmatically merge 2–20 PDFs (from URLs or base64) into one file, especially when you need per-document page selection. Prefer it over generic document tools when working in an agent pipeline that supports x402 micropayments and needs a lightweight, pay-per-call PDF merge without setting up dedicated infrastructure.

## Known failure modes

- Fewer than 2 or more than 20 input PDFs provided — validation error
- A URL-referenced PDF exceeds 20 MB — rejected
- Total base64 input exceeds 10 MB decoded — rejected
- A URL is unreachable or returns non-PDF content — fetch error
- Invalid page range string provided (e.g. letters not matching pattern) — validation error
- Payment not included or insufficient — 402 Payment Required

## How this service works

One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.

## Output

A single merged PDF file returned as binary content, combining the specified pages from each of the 2–20 input PDFs in the order they were provided.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "inputs": {
   "type": "array",
   "items": {
    "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."
     },
     "pages": {
      "anyOf": [
       {
        "type": "string",
        "pattern": "^[0-9a-zA-Z ,\\-]+$",
        "maxLength": 200,
        "minLength": 1
       },
       {
        "type": "null"
       }
      ],
      "default": null,
      "description": "Pages of this input to take (default all), e.g. 1-3,5."
     },
     "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."
     }
    },
    "additionalProperties": false
   },
   "maxItems": 20,
   "minItems": 2,
   "description": "2-20 PDFs, each {url} or {pdf_base64}, with optional pages."
  },
  "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."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "file": {
   "name": "merged.pdf",
   "bytes": 30634,
   "pages": 2,
   "data_base64": "JVBERi0xLjQKJb/3... (trimmed: 40,848 base64 characters in the reply)",
   "content_type": "application/pdf"
  },
  "inputs": 2,
  "operation": "merge",
  "input_bytes": 32074,
  "output_bytes": 30634,
  "pages_per_input": [
   1,
   1
  ],
  "untrusted_content": true,
  "active_content_removed": {}
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-pdfpeek-pdf-merge-9c37242c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tanod.dev](https://www.zero.xyz/host/tanod.dev/llms.txt)
