PDF to Markdown
Direct public HTTP POST https://pdf.replynodes.com/ requires no account, API key, or cookie when converting one public PDF URL. The MCP read_document / tools/call at https://mcp.replynodes.com/mcp requires the existing MCP authorization boundary; MCP is not anonymous.
GET / and HEAD / are documentation-only. POST / performs the conversion; the allowed methods are GET, HEAD, and POST.
The contract limits the source/download to 10 MiB, the document to 50 pages, and each conversion to 60 seconds. Each IP may make 20 requests per hour and run 2 conversions at once. Successful JSON responses are limited to 1 MiB including the response newline; an oversized conversion is rejected with 502 upstream_unavailable rather than truncated.
curl -X POST https://pdf.replynodes.com/ \
-H 'Content-Type: application/json' \
-d '{"url":"https://public.example/file.pdf"}'
The successful response is exactly a document object with type, mime_type, markdown, and metadata.pages; metadata.title is included when available. The endpoint rejects private/metadata targets, unsafe redirects, non-PDF content, partial results, and malformed input.
All errors use the standard { "error": { "code", "message", "request_id" } } envelope. The documented statuses are 400 invalid_request, 405 method_not_allowed (Allow: GET, HEAD, POST), 413 payload_too_large, 429 rate_limited, 502 upstream_unavailable, 503 degraded, and 504 gateway_timeout.
Limits are 10 MiB per source/download, 50 pages, 60 seconds, 20 conversions per IP per hour, and two active conversions per IP. Successful bounded responses are cached for 24 hours by normalized URL without its fragment. A cache hit still consumes hourly quota and does not consume an active conversion slot. Redis is shared and mandatory; cache, quota, admission, and Redis failures fail closed.
This public HTTP contract is also exposed through the sole MCP application at
https://mcp.replynodes.com/mcp as the
read_document tool. It accepts exactly one top-level url input and uses the
same PDF to Markdown limits, safety checks, cache, rate limits, concurrency,
and error behavior as this POST endpoint. It is intended for read PDF, PDF for
AI agents, extract PDF text, and PDF context workflows.