Docs

Getting Started

Go from zero to your first PDF conversion in under 5 minutes.

1

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.

2

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.

3

Make your first request

Send a POST request to the convert endpoint with the URL of any publicly accessible PDF:

curl
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"
  }'
Request body fields:
  • url (required) — the HTTP/HTTPS URL of the PDF
  • format — 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)
4

Handle the response

For small files (<10 MB), you'll get a synchronous 200 response with the result URL:

200 — Synchronous response
{
  "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:

202 — Asynchronous response
{
  "requestId": "req_01J9X7K2M...",
  "status": "pending",
  "pollUrl": "/v1/status/req_01J9X7K2M..."
}

Poll GET /v1/status/:requestId until the status changes to complete:

Poll response — 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
}
5

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