# AgentFeed PDF to Markdown

> AgentFeed PDF to Markdown is a paid API for AI agents from x402.ochinimus.app, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-14).

Fetches a PDF from a given URL and returns its text content as page-by-page markdown, including title, page count, and word count

## Facts

- Endpoint: GET https://x402.ochinimus.app/api/pdf-markdown?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentfeed-pdf-to-markdown-c75cc38c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ba-LeShUVJ8P1im55Nc6f

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 agentfeed-pdf-to-markdown-c75cc38c
```

Example prompt: Can you read this PDF for me and give me its contents as markdown? Here's the link: https://example.com/report.pdf

## When to prefer this

Use this endpoint when you need to read or extract the textual content of a publicly accessible PDF document given only its URL, especially when you want structured page-by-page markdown output with metadata like title, page count, and word count. It is ideal for AI agents needing to process, summarize, or analyze PDF reports, papers, or documents without downloading files locally. Prefer this over general web scrapers when the target is specifically a PDF file.

## Known failure modes

- URL is not a PDF — returns error, no charge
- URL is unreachable or returns non-200 status — returns error, no charge
- PDF exceeds 10 MB size limit — rejected
- Fetch exceeds 10-second timeout — rejected
- URL points to a private/internal IP address — refused for security
- robots.txt disallows fetching — request is honoured and refused
- Malformed or non-absolute URL provided — validation error

## How this service works

PDF to markdown: the text of the one PDF URL you pass, page by page as markdown, with title, page count and word count. http or https, 10 MB, 10 s; robots.txt honoured and private addresses refused. Use when you need to answer: What does this PDF say, as markdown? A file that is not a PDF, or an unreachable URL, is never charged.

## Output

Returns a JSON object containing: the markdown-formatted text of the PDF split page by page, the document title, total page count, word count, the original and final (post-redirect) URL, file size in bytes, a flag indicating if the output was truncated, and the timestamp when the file was fetched. Non-PDF files and unreachable URLs are not charged.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "the PDF to convert: an absolute http or https URL"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "data": {
       "type": "object",
       "properties": {
        "url": {
         "type": "string"
        },
        "bytes": {
         "type": "number"
        },
        "pages": {
         "type": "number"
        },
        "title": {},
        "rights": {
         "type": "string"
        },
        "markdown": {
         "type": "string"
        },
        "final_url": {
         "type": "string"
        },
        "truncated": {
         "type": "boolean"
        },
        "fetched_at": {
         "type": "string"
        },
        "word_count": {
         "type": "number"
        }
       }
      },
      "paid": {
       "type": "boolean"
      },
      "tool": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "url": "https://bitcoin.org/bitcoin.pdf",
   "bytes": 184292,
   "pages": 9,
   "title": null,
   "rights": "fetched once from the URL you supplied, on your request, and not stored; the content belongs to its publisher and you are responsible for your use of it",
   "markdown": "## Page 1\n\nBitcoin: A Peer-to-Peer Electronic Cash System\nSatoshi Nakamoto\nsatoshin@gmx.com\nwww.bitcoin.org\nAbstract. A purely peer-to-peer version of electronic cash would allow online\npayments to be sent directly from one party to another without going throu…",
   "final_url": "https://bitcoin.org/bitcoin.pdf",
   "truncated": false,
   "fetched_at": "2026-10-12T21:53:31.533Z",
   "word_count": 3586
  },
  "paid": true,
  "tool": "get_pdf_markdown"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentfeed-pdf-to-markdown-c75cc38c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ochinimus.app](https://www.zero.xyz/host/x402.ochinimus.app/llms.txt)
