Does CraftMyPDF have an API, and on which plan?
Yes. CraftMyPDF has a REST API, and the pricing table lists it on every plan including the Free plan, which allows 50 PDFs or images a month. Everything below comes from the official API reference at craftmypdf.com/docs, read on 3 October 2026.
The default base URL is https://api.craftmypdf.com/v1. Requests and responses use JSON, and the reference sets the content type as application/json.
Where to find the CraftMyPDF API key and how to send it
An API key is generated when you sign up. The reference says you can reset it in the web console under API Integration. Every request carries the key in one header:
X-API-KEY: your_api_key
There is no OAuth flow or token exchange in the reference. The API also allows cross-origin requests from any site, so do not call it from browser code where the key would be visible. Keep the key on a server or inside your automation tool's credential store.
Main endpoints in the official reference
| Endpoint | Method | What it does |
|---|---|---|
/create | POST | Creates a PDF from a template and JSON data |
/create-async | POST | Queues a PDF and calls your webhook when it is ready |
/create-merge | POST | Builds one PDF from several templates |
/create-parallel | POST | Creates several PDFs in one call, with an optional merge flag |
/create-image | POST | Creates an image from an image template |
/list-templates | GET | Lists your templates |
/merge-pdfs | POST | Merges PDFs from URLs |
/add-watermark | POST | Adds a watermark to a PDF |
/list-transactions | GET | Lists past generation transactions |
/get-account-info | GET | Returns account information |
For /create, two fields are required: template_id and data. Useful optional fields include version to pin a template version, export_type, expiration and output_file. Pinning version is the safest way to stop a template edit changing live output, as explained in our note on template versions.
Synchronous or asynchronous: which call to use
A synchronous call to /create waits for the document and returns it in the response. Set export_type to json to get a link to the file on the vendor's CDN, or to file to get the PDF as binary data that the vendor says it does not store. Stored files expire after 5 minutes by default, and expiration accepts 1 to 10,080 minutes.
An asynchronous call to /create-async returns at once. When the PDF is ready, CraftMyPDF makes a GET request to your webhook_url with file, transaction_ref and status in the query string, and retries three times before giving up.
- Use synchronous calls when a person is waiting for a download.
- Use asynchronous calls for batches, nightly runs and long reports.
- In both cases, store the transaction reference so a missing document can be traced.
Rate limits, timeouts and payload size
| Limit | Value |
|---|---|
| Requests | 100 per 10 seconds per IP address |
| Concurrent synchronous PDF requests | 100 per account |
| Response when exceeded | HTTP 429 |
| Timeout, default Singapore, Europe and US East endpoints | 100 seconds |
| Timeout, Australia and the alternative endpoints | 30 seconds |
| Payload size, request and response | 4 MB on the main Singapore, Europe and US endpoints, 6 MB on Australia and the alternative endpoints |
Regional base URLs are https://api-us.craftmypdf.com/v1 for US East, https://api-de.craftmypdf.com/v1 for Frankfurt and https://api-au.craftmypdf.com/v1 for Sydney. The reference says request data and generated PDFs are processed and stored within the chosen region. A US team should normally use the US endpoint.
The payload cap is the limit most likely to bite. A report with large embedded data can exceed 4 MB, and the reference notes that json output stored on S3 avoids the response-size limit.
When the API is the wrong tool
If nobody on the team writes code, use the Zapier or Make.com app, or the n8n node described in our CraftMyPDF n8n integration guide. They call the same service with the same API key.
If you want to post raw HTML and get a PDF back, this API is not built for that: every generation endpoint takes a template ID. Look at an HTML to PDF API instead. Credit costs per call are covered on our CraftMyPDF pricing page.
Sources used for this page
The facts above come from the pages below, read on 3 October 2026. We have not used these products hands-on. Prices and terms change, so confirm them on the vendor's site before you buy.
- CraftMyPDF API Reference — Vendor documentation · craftmypdf.com · checked 2026-10-03
- Pricing - CraftMyPDF.com — Vendor pricing page · craftmypdf.com · checked 2026-10-03