# Tanod Web PDF Text Extractor

> Tanod Web PDF Text Extractor is a paid API for AI agents from web.tanod.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-13).

Fetches a public PDF by URL and extracts its text content, metadata, and page count as structured JSON

## Facts

- Endpoint: POST https://web.tanod.dev/v1/pdf?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-web-pdf-text-extractor-b3c31757
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_h4928WOEGEae4ACuUoWng

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-web-pdf-text-extractor-b3c31757 -d '<json body>'
```

Example prompt: Can you extract the text from this PDF — https://www.rfc-editor.org/rfc/rfc9110.pdf — and give me the first 50 pages worth of content along with the author and title metadata?

## When to prefer this

Use this endpoint when you need to extract machine-readable text and metadata from a publicly accessible PDF document by URL. It is especially well-suited for processing research papers, technical specifications, legal documents, and government reports without downloading the file locally. Prefer this over general web-scraping endpoints when the target is a PDF rather than an HTML page.

## Known failure modes

- PDF URL is not publicly accessible (returns error)
- PDF exceeds 20 MB size limit (rejected)
- PDF is encrypted/password-protected (may return partial or no text)
- URL points to non-PDF content (parsing error)
- PDF has scanned images with no embedded text (returns empty or minimal text)
- Network timeout fetching the remote PDF
- max_pages out of range (1-200 only)

## How this service works

Web tools: search, page to Markdown or screenshot, company profile and jobs, sitemaps, RDAP, IP.

## Output

Returns a JSON object containing: the extracted plain text from the PDF, total page count, number of pages actually extracted, document metadata (title, author, creation date, modification date, PDF producer), whether the document is encrypted, the final resolved URL after any redirects, whether the extraction was truncated, the count of any page-level errors, and an untrusted_content flag indicating the text came from an external source.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 2048,
   "description": "Public http(s) URL of a PDF (at most 20 MB)."
  },
  "max_pages": {
   "type": "integer",
   "default": 50,
   "maximum": 200,
   "minimum": 1,
   "description": "Pages to extract text from, from the first (1-200, default 50)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://www.rfc-editor.org/rfc/rfc9110.pdf",
  "text": "RFC 9110\nHTTP Semantics\nAbstract\nThe Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed,\ncollaborative, hypertext information systems. ...",
  "pages": 194,
  "metadata": {
   "title": "RFC 9110: HTTP Semantics",
   "author": "Roy T. Fielding, Mark Nottingham, Julian Reschke",
   "created": "2022-06-06T11:15:02+07:00",
   "modified": "2022-06-06T11:15:19-07:00",
   "producer": "cairo 1.16.0 (https://cairographics.org)"
  },
  "encrypted": false,
  "final_url": "https://www.rfc-editor.org/rfc/rfc9110.pdf",
  "truncated": true,
  "page_errors": 0,
  "extracted_pages": 50,
  "untrusted_content": true
 }
}
```

## More

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