# PDF Text Extractor — REST API endpoint `pdf-extract`

Extract text and structured JSON (with bounding boxes) from a PDF. Pass a base64-encoded string OR a public https:// URL. Runs entirely on Cloudflare Workers with WebAssembly — your bytes are never logged.

- Category: conversion
- REST endpoint: POST https://api.findutils.com/api/tools/pdf-extract/execute (no API keys, 60 req/min per IP)
- MCP: not exposed on the MCP server. See https://findutils.com/mcp/ for the tools that are.
- Reference page: https://findutils.com/api/pdf-extract/

## Call the endpoint (verified example)

```bash
curl -X POST https://api.findutils.com/api/tools/pdf-extract/execute \
  -H "Content-Type: application/json" \
  -d '{
    "pdf": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
    "output": "text"
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/pdf-extract
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `pdf` | string | yes | PDF as a base64-encoded string (with or without data: prefix) OR a public https:// URL pointing to a PDF. |
| `output` | string (text \| json \| all) | no | What to return: layout-preserved text, structured JSON, or both. |
| `maxPages` | integer | no | Hard cap on pages parsed. Helps bound CPU time on huge documents. |

Example arguments (verified):

```json
{
  "pdf": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
  "output": "text"
}
```

OpenAPI 3.1 spec: https://findutils.com/api/openapi.json · Interactive docs: https://findutils.com/api/docs/

---
Full catalog: GET https://api.findutils.com/api/tools · https://findutils.com/api/ · https://findutils.com/llms.txt
