That PDF link your code can't open? We handle it.
Download links, login-gated reports, redirect chains - PDFs that break every other tool. Send us the URL, get structured data back. One API call, zero headaches.
Request
$ curl -X POST https://api.pdfpipe.dev/v1/convert \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/report.pdf",
"format": "json",
"returnMethod": "inline"
}'Response
{
"requestId": "req_01J9X7K2M...",
"status": "complete",
"format": "json",
"pagesProcessed": 12,
"creditsUsed": 1,
"contentType": "application/json",
"content": "{\"pages\":[{\"page\":1,\"text\":\"...\"}]}"
}10
Output Formats
99.9%
Uptime
<1s
Processing
The PDF Problem, Solved
Other APIs choke on real-world PDFs. PDFPipe was built for the edge cases.
The problem
- The PDF link triggers a download instead of opening - your code never gets the file
- The URL redirects three times, needs a login, or expires after one use
- Scanned pages come back as empty text because there is no OCR
- Every source serves PDFs differently, and your pipeline breaks on each new one
The PDFPipe solution
- Send any PDF URL - we figure out if it's inline or a download and handle both
- Redirects, login walls, token-gated links - our headless browser follows them all
- Built-in OCR so scanned documents actually return usable text
- 10 output formats with consistent structure, no matter the source
- Dashboard AI Help on paid plans - get Claude-powered answers while you integrate
Three Steps. Zero Dependencies.
No SDKs to install. No client libraries. Just HTTP.
Send a URL
POST any PDF URL to our API. We accept inline and attachment PDFs - no pre-processing needed.
fetch("https://api.pdfpipe.dev/v1/convert", {
method: "POST",
headers: {
"Authorization": "Bearer pk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
url: "https://example.com/report.pdf",
format: "json",
returnMethod: "inline"
})
})We Process It
PDFPipe auto-detects the PDF type. Inline PDFs are parsed directly. Attachment PDFs are captured via headless Chromium - redirect chains, tokens, and JavaScript triggers handled automatically.
Auto-detect & process
Inline → pdf-parse · Attachment → Chromium
Get Structured Data
With returnMethod: "inline", the payload is in the response (parse content). Default returnMethod "file" returns a presigned resultUrl instead.
{
"pages": [
{
"page": 1,
"text": "Annual Report 2025...",
"tables": [...],
"metadata": { "width": 612, "height": 792 }
}
]
}Built for Everyone
Whether you prefer a visual interface or raw API calls, PDFPipe fits your workflow.
No Code
Attachment PDFs are impossible in no-code tools without writing custom code. PDFPipe handles them with a single HTTP action - in Power Automate, Zapier, Make, or n8n.
Visual converter preview
Full Code
RESTful API with SDKs for every major language. One endpoint, any format. Built for developers who want full control.
curl -X POST https://api.pdfpipe.dev/v1/convert \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://...", "format": "json", "returnMethod": "inline"}'10 Formats, One API
Extraction, encoded, or image - get exactly the output your pipeline needs.
JSON
Structured content with coordinates and metadata
Text
Plain extracted string for search indexing
Markdown
Formatted text ideal for LLM pipelines
XML
Enterprise and ERP system integrations
CSV
Tabular data from PDF tables
Base64
Pass PDF bytes through JSON APIs
Binary
Raw bytes for file pipelines
PNG
Lossless per-page render
JPG
Compressed render for display
WebP
Modern web format, best compression
Frequently Asked Questions
Everything you need to know about PDFPipe.
What is PDFPipe?
PDFPipe is a cloud API that converts any PDF URL into structured data. Send us a URL, choose your output format, and get clean data back - whether the PDF is served inline or triggers an auto-download.
How does auto-detection work?
When you send a URL, PDFPipe issues a HEAD request to inspect the Content-Disposition header. If the PDF is inline, we parse it directly. If it's an attachment (auto-download), we spin up a headless Chromium browser to capture the file - handling redirects, tokens, and JavaScript triggers automatically.
What formats are supported?
PDFPipe supports 10 output formats across three categories: Extraction (JSON, Text, Markdown, XML, CSV), Encoded (Base64, Binary), and Image (PNG, JPG, WebP). All formats are available on paid plans; the free tier includes JSON and Text.
Can results come back in the HTTP response instead of a download URL?
Yes. Set returnMethod to "inline" on POST /v1/convert to receive the converted data in the response body (the content field), within size limits; otherwise the API sets returnMethodFallback and a presigned resultUrl. The default is "file". You can also set timeout (1–60 seconds) to cap how long the API waits synchronously before async processing, and webhook { url, optional secret } for HTTPS delivery when a job finishes asynchronously.
Can it handle password-protected PDFs?
PDFPipe can handle PDFs behind login walls and token-gated URLs using our headless browser. However, PDFs encrypted with a document-level password are not currently supported. This is on our roadmap.
Is there a free tier?
Yes! The free tier includes 75 requests per month with JSON and Text output formats. Of those 75 requests, up to 10 can be attachment PDFs. Up to 2MB file size, no credit card required.
How does pricing work?
We offer four tiers - Free, Starter, Pro, and Business - with pricing in USD, GBP, and EUR. All requests (inline and attachment PDFs) count toward your monthly quota. Paid tiers have no extra cap on attachment PDFs, so you can use any of your monthly requests on them. The Business tier also supports overage billing for high-volume use. Visit our pricing page for full details.