PDF Processing API
A REST API for merging, splitting, compressing, OCR-ing, and converting PDFs programmatically. Available on the Business plan.
Authentication
Create an API key in Settings → API Keys. Keys are scoped to a workspace and can be revoked at any time. The full key is shown only once at creation — store it securely. Send it as a Bearer token on every request:
Authorization: Bearer ppk_live_xxxxxxxxxxxxxxxxxxxxRate limits & quotas
- Requests are rate-limited per API key (currently 120 requests/minute).
- Each processing call counts against your plan's monthly API-call quota. Track usage in Settings → API Keys.
- Exceeding either limit returns HTTP 429 with a machine-readable error code.
Error format
Errors use a consistent envelope with a machine-readable code:
{
"error": {
"code": "quota_exceeded",
"message": "You have reached your plan's monthly API call limit.",
"field_errors": null
}
}Endpoints
/api/v1/merge/Merge PDFs
Combine two or more PDFs into a single document. Send the files as repeated multipart 'files' fields, in the order you want them merged.
Request
curl -X POST https://api.propdfsuite.com/api/v1/merge/ \
-H "Authorization: Bearer ppk_live_..." \
-F "files=@a.pdf;type=application/pdf" \
-F "files=@b.pdf;type=application/pdf" \
-F "output_title=Combined.pdf"Response
{
"id": "1ee5d5a5-...",
"operation": "merge",
"status": "completed",
"progress_percent": 100,
"error": null,
"outputs": [
{
"document_id": "1c019ad8-...",
"download_url": ".../api/v1/documents/1c019ad8-.../download/"
}
]
}/api/v1/split/Split PDF
Split a PDF into multiple documents by 1-indexed, inclusive page ranges. 'ranges' is a JSON array sent as a multipart field.
Request
curl -X POST https://api.propdfsuite.com/api/v1/split/ \
-H "Authorization: Bearer ppk_live_..." \
-F "file=@source.pdf;type=application/pdf" \
-F 'ranges=[{"start":1,"end":3},{"start":4,"end":10}]'Response
{
"id": "...",
"operation": "split",
"status": "completed",
"outputs": [
{ "document_id": "...", "download_url": "..." },
{ "document_id": "...", "download_url": "..." }
]
}/api/v1/compress/Compress PDF
Reduce a PDF's file size. Optional 'quality' is one of screen, ebook (default), printer, or prepress.
Request
curl -X POST https://api.propdfsuite.com/api/v1/compress/ \
-H "Authorization: Bearer ppk_live_..." \
-F "file=@big.pdf;type=application/pdf" \
-F "quality=ebook"Response
{
"id": "...",
"operation": "compress",
"status": "completed",
"outputs": [
{ "document_id": "...", "download_url": "..." }
]
}/api/v1/ocr/OCR PDF
Extract text from a scanned PDF. Optional 'language' (default 'eng'): eng, fra, deu, spa, ita, por, ara, chi_sim. Returns the extracted text in the job result.
Request
curl -X POST https://api.propdfsuite.com/api/v1/ocr/ \
-H "Authorization: Bearer ppk_live_..." \
-F "file=@scan.pdf;type=application/pdf" \
-F "language=eng"Response
{
"id": "...",
"operation": "ocr",
"status": "completed",
"result": {
"text": "Extracted text…",
"total_pages": 3,
"language": "eng"
}
}/api/v1/convert/Convert to PDF
Convert an Office document or image to PDF (.docx, .doc, .pptx, .ppt, .xlsx, .xls, OpenDocument, .txt, .csv, .rtf, and common image formats). Conversion is synchronous — the finished PDF is returned directly.
Request
curl -X POST https://api.propdfsuite.com/api/v1/convert/ \
-H "Authorization: Bearer ppk_live_..." \
-F "file=@report.docx;type=application/vnd.openxmlformats-officedocument.wordprocessingml.document"Response
{
"document_id": "8bbbc89a-...",
"title": "report",
"page_count": 4,
"file_size_bytes": 51234,
"download_url": ".../api/v1/documents/8bbbc89a-.../download/"
}/api/v1/jobs/{id}/Get job status
Poll an asynchronous job (merge/split/compress/ocr). When status is 'completed', 'outputs' (or 'result' for OCR) is populated. Statuses: pending, processing, completed, failed.
Request
curl https://api.propdfsuite.com/api/v1/jobs/1ee5d5a5-.../ \
-H "Authorization: Bearer ppk_live_..."Response
{
"id": "1ee5d5a5-...",
"operation": "merge",
"status": "processing",
"progress_percent": 65,
"outputs": []
}/api/v1/documents/{id}/download/Download a result
Download the PDF for a result document id returned by any operation. Responds with application/pdf.
Request
curl -L -o result.pdf \
https://api.propdfsuite.com/api/v1/documents/1c019ad8-.../download/ \
-H "Authorization: Bearer ppk_live_..."Response
<binary application/pdf>