Start for Free

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.

No official app required
You will not find a "PDF-API" app in the Zapier or Make catalogs — by design. The whole integration fits in a single HTTP request, configured in about five minutes with the steps below.

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:

Endpointtext
POST https://pdfstork.com/api/v1/templates/{template_id}/generate

With two headers:

Headerstext
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

And a JSON body:

Request bodyjson
{
  "data": {
    "customer": "Jane Doe",
    "amount": "€1,200.00"
  },
  "output": "url",
  "filename": "invoice-jane.pdf"
}
FieldRequiredDescription
dataNoKey-value pairs injected into your template variables.
outputNobase64 (default), url, or binary.
filenameNoName of the generated file.
url_expiryNoLifetime of the temporary URL in minutes (1–1440). Only used when output is "url".
Prefer output: url
In no-code platforms, "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.

  1. Create a Zap and choose any trigger app (Typeform, Airtable, Gmail...).
  2. Add an action step and search for Webhooks by Zapier.
  3. Choose the event POST (custom request).
  4. Configure the request as follows:
Webhooks by Zapier — POST configurationtext
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

  1. Create a scenario and add your trigger module.
  2. Add the HTTP app with the Make a request action.
  3. Configure it as follows:
HTTP module — Make a requesttext
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

  1. Add an HTTP Request node to your workflow.
  2. Configure the node:
HTTP Request nodetext
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 url to 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 pdf field into a binary file usable anywhere.

Bubble

  1. Go to Plugins → API Connector and click Add another API.
  2. Name it PDF-API.
  3. Add a shared header: Authorization: Bearer YOUR_API_TOKEN.
  4. Add a call: Generate PDF, method POST, endpoint https://pdfstork.com/api/v1/templates/[template_id]/generate, body type JSON with your data keys as dynamic parameters and "output": "url".
  5. In your workflow, add the API Connector action and use the returned url to link the generated PDF.

Attaching and storing PDFs

The patterns below work on all four platforms:

  • Email attachment — map the url from the response to the attachment field of your email module (Gmail, Outlook, SendGrid...). Most platforms download the file for you.
  • Cloud storage — map the url to any "file" field (Google Drive, Dropbox, OneDrive, Airtable attachments).
  • Send by message — paste the url into 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 Authorization header value. It must be exactly Bearer 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.
Test with cURL first
If a module returns an unexpected error, reproduce the request in a terminal to isolate the problem:
cURL testbash
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"}'