Skip to content
CastPDF
Launch offer30% off your first year on yearly plans

Your data in.
A beautiful PDF out.

CastPDF is a PDF generation API with a live-preview template editor. Send your data and get invoices, certificates and reports with your logo, in about a second.

  • 100 free PDFs a month
  • No card needed
  • Your PDFs are made and stored in the EU
How it works

Design it once. Test it free. Connect it anywhere.

The same three steps you see in the dashboard, for every template.

  1. 1 Design

    Pick a template and make it yours

    Start with an invoice, a certificate or a blank page. Change the HTML and CSS and watch every edit in the live preview.

    • 6 starters
    • Your logo and fonts
    • Liquid for data
  2. 2 Test

    Try it with real data, free

    Fill in sample data in Simple mode or send it with a test key. Test PDFs are unlimited on every plan and carry a watermark.

    • Unlimited test PDFs
    • Warnings for empty fields
  3. 3 Connect

    Send data from anywhere

    Call the API from your code, use the n8n node, or upload a spreadsheet for a batch. Get the file, a private link, an email or a webhook.

    • REST API
    • Batches from CSV or XLSX
    • Webhooks
Integrations

Works with your stack today, more on the way

Every label says exactly where each one stands. Anything that can send a web request can make a PDF right now.

  • n8n nodeCommunity node on npm: create PDFs, start flows on a finished PDFAvailable
  • REST APIAny language, OpenAPI 3.1, webhooksAvailable
  • Any tool with web requestsUse its HTTP step today, guides includedAvailable
  • ZapierBuilt and submitted for reviewIn review
  • MakeBuilt and submitted for reviewIn review
  • AirtableOn the roadmapPlanned
  • Google SheetsOn the roadmapPlanned
  • ShopifyOn the roadmapPlanned
  • WooCommerceOn the roadmapPlanned
  • HubSpotOn the roadmapPlanned
  • NotionOn the roadmapPlanned
  • StripeOn the roadmap. A how-to guide works todayPlanned
  • Available live today
  • In review built, waiting for marketplace approval
  • Planned on the roadmap, no date

Product names and logos are trademarks of their owners, used only to identify compatible products. No endorsement is implied.

For developers

One request. Your template ID and your data.

  • SDKs, or none at all. Official clients for Node.js and Python, or any HTTP client: the whole API is described in OpenAPI 3.1.
  • Safe retries. Send an Idempotency-Key and a repeat never makes or bills a second PDF.
  • Clear errors. A template error names the line and column, and every code links to its fix.

Popular guides: repeat a table header, page breaks that look right and an invoice PDF from JSON. Or compare the best PDF generation APIs, and see what is new in the changelog. No code yet? Try the free PDF tools, such as the HTML to PDF converter and the invoice generator.

curl https://api.castpdf.com/v1/pdf \
  -H "Authorization: Bearer $CASTPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: invoice-INV-2026-0142" \
  -d '{
    "template_id": "8d1f2c3b-4a5e-4f60-9b7a-1c2d3e4f5a6b",
    "data": { "customer": { "name": "Brightwater Coffee Co. Ltd" } },
    "response": "url"
  }'
const res = await fetch('https://api.castpdf.com/v1/pdf', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.CASTPDF_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'invoice-INV-2026-0142',
  },
  body: JSON.stringify({
    template_id: '8d1f2c3b-4a5e-4f60-9b7a-1c2d3e4f5a6b',
    data: { customer: { name: 'Brightwater Coffee Co. Ltd' } },
    response: 'url',
  }),
});
const { url, expires_at } = await res.json();
import os, requests

res = requests.post(
    "https://api.castpdf.com/v1/pdf",
    headers={
        "Authorization": f"Bearer {os.environ['CASTPDF_API_KEY']}",
        "Idempotency-Key": "invoice-INV-2026-0142",
    },
    json={
        "template_id": "8d1f2c3b-4a5e-4f60-9b7a-1c2d3e4f5a6b",
        "data": {"customer": {"name": "Brightwater Coffee Co. Ltd"}},
        "response": "url",
    },
    timeout=60,
)
print(res.json()["url"])
<?php
$client = new GuzzleHttp\Client(['timeout' => 75]);

$response = $client->post('https://api.castpdf.com/v1/pdf', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('CASTPDF_API_KEY'),
        'Idempotency-Key' => 'invoice-INV-2026-0142',
    ],
    'json' => [
        'template_id' => '8d1f2c3b-4a5e-4f60-9b7a-1c2d3e4f5a6b',
        'data' => ['customer' => ['name' => 'Brightwater Coffee Co. Ltd']],
        'response' => 'url',
    ],
]);
echo json_decode((string) $response->getBody())->url;
200 OK{ "status": "succeeded", "pages": 1, "url": "https://api.castpdf.com/v1/files/…" }
New in the API

EU e-invoices from one JSON invoice

Send the invoice in e_invoice on POST /v1/pdf. Get a Factur-X or ZUGFeRD PDF/A-3 with the XML inside, or an XRechnung XML for German public buyers. We compute the totals with the EN 16931 rules, so the PDF and the XML always agree.

  • Factur-X
  • ZUGFeRD
  • XRechnung (CII)
  • XRechnung (UBL)
  • PDF/A-3b
Pricing

Start free. Pay per PDF, never per page.

Launch offer: 30% off your first year on any yearly plan. Use code LAUNCH30 at checkout.

  • Free

    $0

    Try everything, free.

    • 100 PDFs a month
    • Unlimited test PDFs (watermarked)
    • 5 templates
    • Download links last 1 day
    • Small “Made with CastPDF” line on live PDFs
    Start free
  • Most popular

    Growth

    $49a month

    For a business that sends PDFs every day.

    • 10,000 PDFs a month
    • Unused PDFs roll over
    • 100 templates
    • Download links last 30 days
    • Extra PDFs $6.00 per 1,000
    • Your brand only, no CastPDF line
    Choose Growth
  • Pro

    $129a month

    For high volume, at a lower price per PDF.

    • 50,000 PDFs a month
    • Unused PDFs roll over
    • Unlimited templates (fair use)
    • Download links last 90 days
    • Extra PDFs $3.50 per 1,000
    • Your brand only, no CastPDF line
    Choose Pro

Need less or more? Starter from $15 a month, Scale for 200,000 PDFs.Compare all plans

Questions

Good to know

What is CastPDF?

CastPDF is a PDF generation API with a live-preview template editor. You design a template once, send your data, and get a print-ready PDF back in about a second. Businesses use it for invoices, receipts, certificates, reports, tickets and contracts.

How much does CastPDF cost?

CastPDF is free for 100 PDFs a month, and paid plans start at $19 a month. Starter gives you 2,500 PDFs, Growth 10,000 for $49, Pro 50,000 for $129 and Scale 200,000 for $299. Paying yearly saves up to 23%, so Starter costs $15 a month. You pay per PDF, never per page.

Is there a free plan?

Yes, the Free plan gives you 100 PDFs a month and 5 templates, and you don’t need a card. Live PDFs on the Free plan carry a small “Made with CastPDF” line at the bottom. Test PDFs are unlimited on every plan and carry a watermark.

Do I need to code?

No, you can make PDFs from the dashboard without writing code. Pick a template, change it in the editor and press Generate PDF. To make PDFs automatically, your app, or any tool that can send a web request, asks CastPDF for each one.

What counts as one PDF?

One PDF is one finished document, whether it has 1 page or 50. It counts when you make it with a live key or the Generate PDF button. Failed PDFs, test PDFs and editor previews never count.

Is CastPDF GDPR compliant?

CastPDF is built for GDPR: your PDFs are made and stored on servers in Germany, and a Data Processing Agreement is part of our terms. There is nothing extra to sign. Stored PDFs are deleted when your plan’s storage time ends, and backups are encrypted.

How is CastPDF different from PDFMonkey or APITemplate?

All three turn a template and your data into a PDF, and CastPDF adds the things that cost you money or time elsewhere. Its free plan has 100 PDFs a month, against 20 on PDFMonkey and 50 on APITemplate. On paid plans, unused PDFs roll over, and you can keep going past your plan up to a spending cap you set. Repeating table headers and page numbers work out of the box. Prices checked October 2026.

Can I use my own design?

Yes, every template is HTML and CSS, so you can build any layout you like. Start from one of the six templates or a blank page, or send your own HTML. The live preview shows every change before you save.

Your first PDF in five minutes.

Pick a template, create a free test key and send one request. 100 PDFs a month are free, and you never need a card to start.