# Tanod pdfpeek Fill Form

> Tanod pdfpeek Fill Form 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).

Fills named form fields in a PDF document and returns the modified PDF, optionally flattening the form into static page content

## Facts

- Endpoint: POST https://tanod.dev/v1/pdf/fill-form?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-fill-form-27c61ad0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_UPkXGCUQjuyx1_QQ1RsVm

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-fill-form-27c61ad0 -d '<json body>'
```

Example prompt: Take this PDF form at https://example.com/application.pdf and fill in the fields: full_name = 'Jane Smith', email = 'jane@example.com', country = 'US', plan = 'pro', subscribe = true — then flatten the result so the fields are baked in and return the filled PDF.

## When to prefer this

Choose this endpoint when you need to programmatically fill named form fields in an existing PDF and get back a filled document — especially for automated workflows where field names are known (e.g. from a prior form-fields discovery call). It supports text, checkboxes, radio buttons, dropdowns, and multi-select lists, and can optionally flatten the form. Prefer it over generic PDF editors when you need a lightweight, pay-per-call API with no signup and a clear field-mapping interface.

## Known failure modes

- 422 if a field name does not exist in the form, is read-only, or a value does not fit the field type
- 422 if fewer than 1 or more than 500 fields are specified
- PDF fetch failure if the URL is inaccessible, private, an IP-literal host, or exceeds 20 MB
- Base64 decode error if pdf_base64 exceeds 10 MB decoded or is malformed
- 400/422 if neither url nor pdf_base64 is provided
- Timeout or error if the remote PDF host is slow or unavailable

## 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 filled PDF as a base64-encoded file (name, bytes, pages, data_base64, content_type), plus metadata including filled_count, filled_fields list, output_bytes, flattened flag, warnings, and whether active content was removed. The caller can decode the base64 to obtain the final PDF file.

## 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."
  },
  "fields": {
   "type": "object",
   "description": "Field name -> value, the names as listed by form-fields (at most 500 fields). Text fields: a string (or a number); checkbox: true / false (or its on value); radio group: one of its options; choice field: one of its values or labels (a list of them for a multi-select list box); null clears a field. A name the form does not have, a read-only or non-fillable field, or a value that does not fit is a 422.",
   "maxProperties": 500,
   "minProperties": 1,
   "propertyNames": {
    "maxLength": 500,
    "minLength": 1
   },
   "additionalProperties": {
    "anyOf": [
     {
      "type": "string",
      "maxLength": 10000
     },
     {
      "type": "boolean"
     },
     {
      "type": "integer"
     },
     {
      "type": "number"
     },
     {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 500
      },
      "maxItems": 100
     },
     {
      "type": "null"
     }
    ]
   }
  },
  "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."
  },
  "flatten": {
   "type": "boolean",
   "default": false,
   "description": "Bake the values into the pages and remove the form (default false: the form stays fillable)."
  },
  "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": "filled.pdf",
   "bytes": 5160,
   "pages": 1,
   "data_base64": "JVBERi0xLjMKJb/3... (trimmed: 6,880 base64 characters in the reply)",
   "content_type": "application/pdf"
  },
  "warnings": [],
  "flattened": false,
  "operation": "fill-form",
  "input_bytes": 4057,
  "input_pages": 1,
  "filled_count": 5,
  "output_bytes": 5160,
  "filled_fields": [
   "country",
   "email",
   "full_name",
   "plan",
   "subscribe"
  ],
  "need_appearances": false,
  "appearances_drawn": 3,
  "untrusted_content": true,
  "active_content_removed": {}
 }
}
```

## More

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