No-Code Integrations
Connect PDF-API to Zapier, Make, n8n and Bubble using each platform's native HTTP module.
Overview
PDF-API is a plain REST API. You don't need a dedicated app or connector on Zapier, Make, n8n or Bubble: every automation platform ships a generic HTTP / webhook module that can call our endpoints directly. This page walks you through the exact configuration for each platform.
Prerequisites
- A PDF-API account with at least one template (see Quick Start)
- An API token (go to Settings → API Tokens to create one)
- The ID of the template you want to fill. You'll find it on the template page in your dashboard, or by listing your templates with
GET /api/v1/templates.
The one request every platform sends
Whatever the platform, the call is always the same POST request:
POST https://pdfstork.com/api/v1/templates/{template_id}/generateWith two headers:
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/jsonAnd a JSON body:
{
"data": {
"customer": "Jane Doe",
"amount": "€1,200.00"
},
"output": "url",
"filename": "invoice-jane.pdf"
}| Field | Required | Description |
|---|---|---|
data | No | Key-value pairs injected into your template variables. |
output | No | base64 (default), url, or binary. |
filename | No | Name of the generated file. |
url_expiry | No | Lifetime of the temporary URL in minutes (1–1440). Only used when output is "url". |
"output": "url" is almost always the right choice: you get back a simple download link that you can attach to an email, upload to Drive, or hand to any "file" field. Use "base64" only when a specific module expects raw file content.Zapier
Use the free, built-in Webhooks by Zapier app — no install required.
- Create a Zap and choose any trigger app (Typeform, Airtable, Gmail...).
- Add an action step and search for Webhooks by Zapier.
- Choose the event POST (custom request).
- Configure the request as follows:
URL:
https://pdfstork.com/api/v1/templates/1/generate
Payload Type: JSON
Headers:
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Data (map your trigger fields into "data"):
{
"data": {
"customer": "{{trigger_field}}"
},
"output": "url"
}Test the step: Zapier will show the response, including the url of the generated PDF.
To attach the PDF to an email, add a Gmail → Send Email step, add an Attachments field, and map it to the url returned by the webhook step. You can also feed it to Google Drive, Slack, or Dropbox the same way.
Make
- Create a scenario and add your trigger module.
- Add the HTTP app with the Make a request action.
- Configure it as follows:
URL:
https://pdfstork.com/api/v1/templates/1/generate
Method: POST
Headers:
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Body type: Raw
Content type: JSON (application/json)
Request content:
{
"data": {
"customer": "{{1.name}}"
},
"output": "url"
}Make exposes the response as a bundle: the download link is available under data → url in the following modules.
- Download the file: add an HTTP → Get a file module and map the URL.
- Send it by email: add a Gmail → Send an Email module and map the URL to the attachment field.
- Store it: map the URL to any module's file field (Google Drive, Dropbox, OneDrive...).
n8n
- Add an HTTP Request node to your workflow.
- Configure the node:
Method: POST
URL: https://pdfstork.com/api/v1/templates/1/generate
Authentication: Generic Credential Type
Header Auth
Name: Authorization
Value: Bearer YOUR_API_TOKEN
Send Headers (enabled):
Content-Type: application/json
Send Body (enabled):
JSON
{
"data": {
"customer": "={{ $json.name }}"
},
"output": "url"
}The node outputs url when output is "url", or pdf (base64 content) otherwise.
- Email: map
urlto the attachment of a Send Email node, or add a Download File node to get binary content. - Base64: add a Move Binary Data node (JSON to Binary) to turn the
pdffield into a binary file usable anywhere.
Bubble
- Go to Plugins → API Connector and click Add another API.
- Name it
PDF-API. - Add a shared header:
Authorization: Bearer YOUR_API_TOKEN. - Add a call: Generate PDF, method
POST, endpointhttps://pdfstork.com/api/v1/templates/[template_id]/generate, body type JSON with yourdatakeys as dynamic parameters and"output": "url". - In your workflow, add the API Connector action and use the returned
urlto link the generated PDF.
Attaching and storing PDFs
The patterns below work on all four platforms:
- Email attachment — map the
urlfrom the response to the attachment field of your email module (Gmail, Outlook, SendGrid...). Most platforms download the file for you. - Cloud storage — map the
urlto any "file" field (Google Drive, Dropbox, OneDrive, Airtable attachments). - Send by message — paste the
urlinto a Slack message, an SMS, or a WhatsApp template. - Base64 content — if a module only accepts raw content, request
"output": "base64"and decode it with the platform's file/binary utilities.
Remember that temporary URLs expire: 60 minutes by default, up to 24 hours with url_expiry. Download or store the file within that window.
Troubleshooting
- 401 Unauthenticated — check the
Authorizationheader value. It must be exactlyBearer YOUR_API_TOKEN. - 404 Not Found — check the template ID in the URL.
- 422 Validation error — your JSON body is malformed. Make sure the module sends
application/json(not form-encoded) and that keys are quoted. - 429 Too Many Requests — rate limit reached. See Rate Limits & Quotas.
curl -X POST https://pdfstork.com/api/v1/templates/1/generate \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data": {"customer": "Jane Doe"}, "output": "url"}'