Getting Started
Go from zero to your first PDF conversion in under 5 minutes.
Create your account
Sign up for a free PDFPipe account at pdfpipe.dev/signup. The free tier includes 10 requests per month with JSON and text output formats — no credit card required.
Generate an API key
Once logged in, go to Dashboard → API Keys and click Create Key. Give it a name (e.g. "My first key") and optionally restrict it to specific IP addresses.
Copy the key immediately — it starts with pk_live_ and is only shown once. You'll use it in the Authorization header of every API request.
Make your first request
Send a POST request to the convert endpoint with the URL of any publicly accessible PDF:
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"
}'url(required) — the HTTP/HTTPS URL of the PDFformat— output format: json, text, markdown, xml, csv, base64, binary, png, jpg, webp (default: json)type— force detection: "inline" or "attachment" (omit to auto-detect)async— set to true to always process asynchronously (default: false)
Handle the response
For small files (<10 MB), you'll get a synchronous 200 response with the result URL:
{
"requestId": "req_01J9X7K2M...",
"status": "complete",
"format": "json",
"pagesProcessed": 3,
"creditsUsed": 1,
"resultUrl": "https://pdfpipe-results.s3...",
"expiresAt": "2026-02-23T12:00:00.000Z"
}Fetch the resultUrl to download the converted output. The URL is a time-limited presigned link.
For larger files or when async: true, you'll get a 202 response with a poll URL:
{
"requestId": "req_01J9X7K2M...",
"status": "pending",
"pollUrl": "/v1/status/req_01J9X7K2M..."
}Poll GET /v1/status/:requestId until the status changes to complete:
{
"requestId": "req_01J9X7K2M...",
"status": "complete",
"format": "json",
"pagesProcessed": 3,
"creditsUsed": 1,
"resultUrl": "https://pdfpipe-results.s3...",
"expiresAt": "2026-02-23T12:00:00.000Z",
"processingDurationMs": 4230
}Download the result
The resultUrl is a presigned S3 URL. Simply fetch it with any HTTP client — no authentication needed. The link expires based on your tier (1 hour for Free, up to 7 days for Pro/Business).
What's next?
- API Reference — full endpoint documentation with request/response schemas
- Output Formats — detailed docs for all 10 output formats
- Guides — integrate with Power Automate, Zapier, Make, and more