# Tanod pdfpeek Form Fields Extractor

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

Extracts all interactive form fields (name, type, value, options, required status) from a PDF document supplied by URL or base64.

## Facts

- Endpoint: POST https://tanod.dev/v1/pdf/form-fields?utm_source=zero.xyz
- Price: $0.005/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-form-fields-extractor-ad529e38
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qiX22cwwH7lH2g7g4U7wE

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-form-fields-extractor-ad529e38 -d '<json body>'
```

Example prompt: Can you look at this PDF form and tell me all the fields it has — their names, types, whether they're required, and any options like dropdown choices? Here's the URL: https://example.com/application-form.pdf

## When to prefer this

Use this endpoint when an agent needs to programmatically discover the structure of a fillable PDF form before attempting to fill it, validate it, or map its fields to external data. It is purpose-built for PDF form introspection and returns rich per-field metadata including types, options, and required flags — unlike generic PDF text extractors which don't surface form field semantics.

## Known failure modes

- PDF URL is inaccessible, private, or points to an internal/IP-literal host — request refused
- PDF exceeds 20 MB (URL) or 10 MB decoded (base64) size limit — rejected
- Neither url nor pdf_base64 provided — validation error
- PDF is not a valid or parseable PDF — parsing error
- PDF has no interactive form fields — returns has_form: false with empty fields array
- Network timeout fetching the PDF URL — fetch error

## 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 listing all interactive form fields found in the PDF. Each field includes its name, page number, type (text, checkbox, radio, choice), current value, required and read-only flags, optional description, and for choice/radio fields the available options. Also includes top-level flags: whether the PDF uses XFA, whether it has any form at all, total field count, page count, input byte size, and whether the output was truncated.

## 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."
  },
  "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": {
  "xfa": false,
  "fields": [
   {
    "name": "full_name",
    "page": 1,
    "type": "text",
    "value": "",
    "required": true,
    "read_only": false,
    "description": "Your full name"
   },
   {
    "name": "email",
    "page": 1,
    "type": "text",
    "value": "",
    "required": false,
    "read_only": false,
    "description": "Your email address"
   },
   {
    "name": "plan",
    "page": 1,
    "type": "radio",
    "value": null,
    "options": [
     "basic",
     "pro"
    ],
    "required": false,
    "read_only": false,
    "description": "Subscription plan"
   },
   {
    "name": "country",
    "page": 1,
    "type": "choice",
    "value": null,
    "options": [
     "AU",
     "NZ",
     "PH"
    ],
    "required": false,
    "list_type": "combo",
    "read_only": false,
    "description": "Country",
    "option_labels": [
     "Australia",
     "New Zealand",
     "Philippines"
    ]
   },
   {
    "name": "subscribe",
    "page": 1,
    "type": "checkbox",
    "value": false,
    "on_value": "Yes",
    "required": false,
    "read_only": false,
    "description": "Send me the newsletter"
   },
   {
    "name": "notes",
    "page": 1,
    "type": "text",
    "value": "",
    "required": false,
    "multiline": true,
    "read_only": false,
    "description": "Anything else we should know"
   }
  ],
  "has_form": true,
  "operation": "form-fields",
  "truncated": false,
  "field_count": 6,
  "input_bytes": 4057,
  "input_pages": 1,
  "need_appearances": false,
  "untrusted_content": true
 }
}
```

## More

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