# Tanod pdfpeek Pipeline

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

Runs a multi-step PDF processing pipeline (rotate, crop, resize, reorder, repair, inspect, etc.) on a PDF from a URL or base64, returning the transformed PDF or a JSON report.

## Facts

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

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-pipeline-c85b7bac -d '<json body>'
```

Example prompt: Take this PDF at https://example.com/report.pdf, extract pages 1–3, resize them to A4, and add a single bookmark called 'Summary' pointing to page 1 — give me back the processed PDF.

## When to prefer this

Choose this endpoint when you need to chain multiple PDF operations (rotate, crop, resize, reorder, extract, repair, inspect, outline) in a single API call with one payment. It is especially useful when you want to avoid multiple round-trips for sequential PDF transformations, or when you need to inspect PDF structure as the final step of a pipeline. Prefer it over single-operation PDF tools when your workflow requires 2–10 chained operations on the same document.

## Known failure modes

- PDF URL exceeds 20 MB or base64 payload exceeds 10 MB — request rejected
- Private, internal, or IP-literal host URLs are refused
- More than 10 pipeline steps specified — validation error
- Total pipeline exceeds 70-second time budget — timeout
- Malformed or unreadable PDF — repair step may help, otherwise error
- Invalid step params for a given op — schema validation error
- Network fetch of URL fails — error returned with fetch details

## 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

Returns a JSON object containing the processed PDF as base64 (data_base64), its filename, byte size, page count, and content type, along with a steps array detailing each operation's result (step index, pages affected, output bytes, any active content removed). If the last step is 'inspect' or 'outline', returns a JSON report instead of a PDF.

## 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."
  },
  "steps": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "op"
    ],
    "properties": {
     "op": {
      "enum": [
       "rotate",
       "remove-pages",
       "extract-pages",
       "reorder",
       "crop",
       "resize",
       "set-outline",
       "flatten",
       "repair",
       "inspect",
       "outline"
      ],
      "type": "string",
      "description": "rotate, remove-pages, extract-pages, reorder, crop, resize, set-outline, flatten or repair (each takes the PDF the step before made and makes the next one); inspect or outline (a JSON report: last step only)."
     },
     "params": {
      "type": "object",
      "description": "That operation's own parameters, exactly as its single route takes them (e.g. {\"angle\": 90, \"pages\": \"1-2\"} for rotate), without url or pdf_base64.",
      "additionalProperties": true
     }
    },
    "additionalProperties": false
   },
   "maxItems": 10,
   "minItems": 1,
   "description": "The operations to run in order, 1 to 10 of {op, params}: the output of each is the input of the next. inspect and outline return a report and can only be last. The whole call has one 70 s time budget."
  },
  "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."
  },
  "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": {
  "file": {
   "name": "bookmarked.pdf",
   "bytes": 53412,
   "pages": 3,
   "data_base64": "JVBERi0xLjcKJb/3... (trimmed: 71,216 base64 characters in the reply)",
   "content_type": "application/pdf"
  },
  "steps": [
   {
    "op": "extract-pages",
    "step": 1,
    "pages": 3,
    "output_bytes": 52010,
    "active_content_removed": {}
   },
   {
    "op": "resize",
    "mode": "fit",
    "size": "a4",
    "step": 2,
    "pages": 3,
    "output_bytes": 52960,
    "resized_pages": 3,
    "sizes_truncated": false,
    "active_content_removed": {}
   },
   {
    "op": "set-outline",
    "step": 3,
    "pages": 3,
    "replaced": false,
    "output_bytes": 53412,
    "outline_depth": 1,
    "outline_items": 1,
    "active_content_removed": {}
   }
  ],
  "operation": "pipeline",
  "steps_run": 3,
  "input_bytes": 140815,
  "input_pages": 6,
  "output_bytes": 53412,
  "untrusted_content": true,
  "active_content_removed": {}
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-pdfpeek-pipeline-c85b7bac/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)
