Convert files from your own software.
This page is for developers. A handful of jobs (PowerPoint layout, ebooks, PDF passwords) need software a browser does not have, so they run on our server. Your program sends a file in one request and gets the converted file back. Files are handled in a sealed-off workspace and deleted the moment the reply is sent.
One request
curl -X POST https://api.printxpdf.com/convert/ppt-to-pdf \ -H "Authorization: Bearer $PRINTXPDF_KEY" \ -F "file=@deck.pptx" \ --output deck.pdf
Without a key you get 5 free conversions a month per internet connection (IP address). Each reply carries x-pxp-usage: used/limit and acontent-disposition file name.
| Endpoint | Accepts | Returns |
|---|---|---|
| POST /convert/ppt-to-pdf | .ppt .pptx .pps .ppsx .odp | |
| POST /convert/pdf-to-ppt | PPTX with editable pages | |
| POST /convert/epub-to-pdf | .epub | PDF, A4, page numbers |
| POST /convert/mobi-to-pdf | .mobi .azw .azw3 .prc | PDF, A4, page numbers |
| POST /convert/protect-pdf | .pdf + password, ownerPassword?, permissions? | AES-256 encrypted PDF |
| POST /convert/unlock-pdf | .pdf + password | the same PDF without its password |
| POST /convert/pdf-to-pdfa | .pdf + level (1b | 2b | 3b) | PDF/A for archiving |
| GET /fetch?url= | a page URL | its HTML, for the web-page cleaner |
Plans and limits
| Plan | Conversions / month | Key |
|---|---|---|
| Free | 5 per IP address | none |
| Pro · $3.99 | 300 | yes |
| API · $19.99 | 5,000 | yes, valid for one year |
| Lifetime · $119 once | 300 | yes |
Your access key
Get a key with the Pro or API plan. Keys are shown under Account, then Access key.
Errors
When something fails you get a short JSON reply like { "error", "code" }:
| 401 invalid_token | The key is missing, malformed, expired or rotated. |
| 402 quota_exceeded | Free allowance used up; the body has used and limit. |
| 402 subscription_inactive | The subscription behind the key is cancelled or unpaid. |
| 413 too_large | Files are limited to 100 MB. |
| 415 unsupported_media_type | Wrong file type for that address (we check the file contents, not just the file name). |
| 415 drm_protected | The ebook is copy-protected (DRM) and cannot be converted. |
| 429 rate_limited / quota_exceeded | Slow down, or the paid quota is used up for the month. |
| 503 busy | Every converter is busy; wait the number of seconds given in Retry-After and try again. |
| 504 timeout | The job passed the two-minute limit. |
Self-hosting
The whole API, including the conversion container, is open source in the worker/ directory of the repository. Deploy it to your own Cloudflare account with wrangler deploy and point the site at it with VITE_API_BASE.