# Tanod pdfpeek PDF Page Numbers

> Tanod pdfpeek PDF Page Numbers 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).

Stamps customizable page numbers onto the pages of a PDF document.

## Facts

- Endpoint: POST https://tanod.dev/v1/pdf/page-numbers?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-page-numbers-00ccf00e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Nz6X6sutp_7Hw5aU-Mw_S

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-page-numbers-00ccf00e -d '<json body>'
```

Example prompt: Can you add page numbers to this PDF — use the format 'Page {n} of {N}', place them at the bottom-right in bold helvetica at 12pt, skip the first page (cover), and start numbering from 1? Here's the URL: https://example.com/report.pdf

## When to prefer this

Choose this endpoint when you need to programmatically add page numbers to an existing PDF — especially with control over position, font, format, color, opacity, and which pages to number. Prefer it over general-purpose PDF editors when you need a lightweight, pay-per-call API integration without managing software. It is especially useful when you need to skip a cover page, use a custom start number, or apply a 'n of N' format.

## Known failure modes

- PDF URL not reachable or returns non-PDF content — request fails with an error
- PDF exceeds 20 MB (URL) or 10 MB decoded (base64) — rejected with size limit error
- Invalid pages pattern (e.g. malformed range string) — validation error returned
- Invalid hex color code — schema validation error
- Password-protected PDF cannot be processed without first unlocking it
- Malformed base64 input causes decoding failure

## 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 PDF file (binary) with the specified page number stamps applied to the designated pages. The numbered PDF retains all original content with the page number overlay rendered in the chosen font, size, color, position, opacity, and format.

## 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."
  },
  "font": {
   "enum": [
    "helvetica",
    "helvetica-bold",
    "times",
    "times-bold",
    "courier",
    "courier-bold"
   ],
   "type": "string",
   "default": "helvetica",
   "description": "Built-in PDF font: helvetica (default), helvetica-bold, times, times-bold, courier or courier-bold."
  },
  "color": {
   "type": "string",
   "default": "#000000",
   "pattern": "^#[0-9a-fA-F]{6}$",
   "description": "Text colour as #rrggbb (default #000000, black)."
  },
  "pages": {
   "anyOf": [
    {
     "type": "string",
     "pattern": "^[0-9a-zA-Z ,\\-]+$",
     "maxLength": 200,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Pages to number (default all), e.g. 2- to skip a cover."
  },
  "format": {
   "type": "string",
   "default": "{n} / {N}",
   "maxLength": 100,
   "minLength": 1,
   "description": "{n} = this page's number, {N} = the last number."
  },
  "margin": {
   "type": "number",
   "default": 28,
   "maximum": 144,
   "minimum": 0,
   "description": "Points (1/72 in) from the page edge (0-144, default 28)."
  },
  "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."
  },
  "opacity": {
   "type": "number",
   "default": 1,
   "maximum": 1,
   "minimum": 0.05,
   "description": "0.05 (faint) to 1 (opaque, default)."
  },
  "position": {
   "enum": [
    "top-left",
    "top-center",
    "top-right",
    "bottom-left",
    "bottom-center",
    "bottom-right"
   ],
   "type": "string",
   "default": "bottom-center",
   "description": "top-left, top-center, top-right, bottom-left, bottom-center (default) or bottom-right."
  },
  "font_size": {
   "type": "number",
   "default": 10,
   "maximum": 72,
   "minimum": 4,
   "description": "Points (4-72, default 10)."
  },
  "pdf_base64": {
   "anyOf": [
    {
     "type": "string",
     "m
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "file": {
   "name": "numbered.pdf",
   "bytes": 91519,
   "pages": 6,
   "data_base64": "JVBERi0xLjcKJb/3... (trimmed: 122,028 base64 characters in the reply)",
   "content_type": "application/pdf"
  },
  "operation": "page-numbers",
  "input_bytes": 140815,
  "input_pages": 6,
  "last_number": 6,
  "first_number": 1,
  "output_bytes": 91519,
  "numbered_pages": 6,
  "untrusted_content": true,
  "active_content_removed": {
   "xfa": 1,
   "javascript": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-pdfpeek-pdf-page-numbers-00ccf00e/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)
