Skip to content
PDFForge — forge anvil crafting PDF documents
Now in public beta

Generate Perfect Documents from Your API

Fill PDF forms, generate PDFs from HTML, fill Word documents — plus merge, split, and encrypt. One API for all your document needs.

terminal
# Generate a document in one API call
curl -X POST https://api.pdfforge.dev/v1/documents/generate \
-H "Authorization: Bearer pk_live_..." \
-d '{"template_id": "tpl_invoice", "data": {...}}'

Features

Everything you need to generate documents

Create, fill, merge, split, and secure documents — unified in a single API. Pick the tools that fit your workflow.

Fill PDF Forms

Upload your PDF form, send JSON data, get a filled PDF back. Supports text fields, checkboxes, radio buttons, and dropdowns.

Fill Word Documents

Upload a .docx template with {placeholder} tags, send JSON data, get a filled Word document back. Supports images.

Generate from HTML

Design templates in HTML/CSS with Handlebars. Render to pixel-perfect PDF with Chromium.

Merge, Split & Encrypt

Combine multiple PDFs, extract specific pages, or add password protection and permissions. Full PDF toolkit via API.

Developer First

Simple REST API, Bearer token auth, signed URLs. Works with curl, JavaScript, Python, FileMaker®.

Document Management

List, download and manage your generated documents. Automatic retention policies clean up expired documents per plan.

How it works

Three steps to your document

From template to finished document in seconds. No servers to manage, no libraries to install.

1

Upload your template

Upload a PDF form, HTML template, or Word document via the API or dashboard. We detect fields automatically.

2

Send your data

Make a single API call with your JSON data. We fill forms, render HTML to PDF, or fill Word templates.

3

Get your document

Receive a signed download URL. Your document is ready in seconds, stored securely in the cloud.

Integration

Up and running in minutes

A single API call is all it takes. Pick your language and start generating documents.

curl -X POST https://api.pdfforge.dev/v1/documents/generate \
  -H "Authorization: Bearer pk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": "tpl_invoice",
    "data": {
      "company": "Acme Corp",
      "amount": 1500.00
    }
  }'

FileMaker®

Built for FileMaker® Developers

Generate PDFs and fill documents from any FileMaker® Pro, FileMaker Go, FileMaker WebDirect, FileMaker Server, and FileMaker Cloud client. No plugins required.

Works on FileMaker Cloud®

No plugins to install, no server config. Uses native Insert from URL — deploys anywhere FileMaker runs.

One API call, not 200 functions

Forget DynaPDF's hundreds of functions. Build JSON with JSONSetElement, call Insert from URL, done.

No per-seat licensing

MBS + DynaPDF starts at $400+ upfront. PDFForge is usage-based — one API key covers all your users.

HTML templates, not layout hacks

Design in HTML/CSS instead of wrestling with FileMaker layouts. No font substitution, no Error 800.

FileMaker
# --- Build JSON payload ---
Set Variable [ $payload ; Value:
  JSONSetElement ( "\{\}" ;
    [ "template_id" ; "tpl_invoice" ; JSONString ] ;
    [ "data.company" ; Company::Name ; JSONString ] ;
    [ "data.amount" ; Invoices::Total ; JSONNumber ] ;
    [ "options.flatten" ; True ; JSONBoolean ]
  )
]

# --- Call PDFForge API ---
Set Variable [ $curlOptions ; Value:
  "-X POST" &
  " --header \"Authorization: Bearer " & $apiKey & "\"" &
  " --header \"Content-Type: application/json\"" &
  " --data @$payload"
]

Insert from URL [ Target: $result ;
  URL: "https://api.pdfforge.dev/v1/documents/fill" ;
  cURL options: $curlOptions
]

# --- Download PDF to container ---
Set Variable [ $url ; JSONGetElement ( $result ; "download_url" ) ]
Insert from URL [ Target: $pdf ;
  URL: $url ;
  cURL options: "--FM-return-container-variable"
]
Set Field [ Documents::PDF_File ; $pdf ]

Early Access

Join the Open Beta

We're building PDFForge in the open. Be among the first developers to integrate document generation into your workflow.

Free to start

25 documents/month free. No credit card required.

Shape the product

Your feedback directly influences our roadmap. Early adopters get priority support.

Lock in pricing

Beta users keep their pricing tier when we launch publicly.

Start Free

Currently in beta v1.4.0-beta.1

Pricing

Simple, transparent pricing

Start free. Scale as you grow. Upgrade anytime from your dashboard.

Free

$0/mo

25 documents/mo

Perfect for testing and prototyping

  • PDF form filling
  • HTML to PDF generation
  • DOCX template filling
  • PDF merge, split & encrypt
  • 7-day document retention
  • Community support
  • Signed download URLs

Starter

$29/mo

500 documents/mo

For small apps and side projects

  • Everything in Free
  • 500 documents per month
  • 30-day document retention
  • AI PDF to TemplateBeta
  • Priority processing
  • Email support
Recommended

Pro

$79/mo

2,500 documents/mo

For growing businesses

  • Everything in Starter
  • 2,500 documents per month
  • 90-day document retention
  • AI PDF to TemplateBeta
  • Webhook notifications
  • Priority support
  • Custom templates

Business

$199/mo

10,000 documents/mo

For high-volume production

  • Everything in Pro
  • 10,000 documents per month
  • 1-year document retention
  • AI PDF to TemplateBeta
  • Dedicated support
  • SLA guarantee

Ready to generate your first document?

Start free with 25 documents per month. No credit card required. Up and running in under 5 minutes.

FAQ

Frequently asked questions

Everything you need to know about PDFForge. Can't find what you're looking for? Reach out to us.

PDFForge supports three template types: PDF forms (AcroForms with text fields, checkboxes, radio buttons, dropdowns), HTML templates (Handlebars syntax rendered to PDF via Chromium), and Word documents (.docx with {placeholder} tags, including image insertion). XFA forms (Adobe LiveCycle) are not currently supported.

You upload an HTML template using Handlebars syntax for dynamic fields. When you call the generate endpoint with your JSON data, we render the template with Chromium and return a pixel-perfect PDF. You get full control over page size and margins. Choose from A4, A3, Letter, or Legal format.

Upload a Word document (.docx) with {placeholder} tags. When you call the fill endpoint with your JSON data, PDFForge replaces the tags with your values and returns a completed .docx file. It also supports image insertion via {%image} tags with base64-encoded images. The output is a Word document — no PDF conversion.

AI analyzes your PDF and generates an HTML/Handlebars template as a starting point. The result typically captures 80–90% of the original layout and structure — you can then refine it in the editor. Embedded JPEG and PNG images are extracted automatically; vector logos may be approximated or omitted. Custom fonts are replaced with the closest web-safe alternative (Helvetica, Georgia, Courier). Background colors, text colors, and spacing are approximated with minor differences expected. Complex multi-column layouts or intricate tables may require manual adjustment. Form fields like checkboxes are converted to styled HTML elements with Handlebars conditionals.

Yes — that's one of our primary use cases. Since PDFForge is a REST API, you only need Insert from URL, which works everywhere: FileMaker® Pro, FileMaker Go, FileMaker WebDirect, FileMaker Server, and FileMaker Cloud. No plugins, no server-side scripts, no custom functions required.

Generated documents (PDF and DOCX) are stored on encrypted S3-compatible storage. Retention depends on your plan: 7 days (Free), 30 days (Starter), 90 days (Pro), or 1 year (Business). Each document gets a signed download URL for secure retrieval. You can download it immediately or store the URL for later use.

You won't be cut off abruptly — API requests beyond your monthly quota will return a 429 status code. You can upgrade your plan at any time from the dashboard, or monitor your usage in real time via the /v1/usage API endpoint.

Absolutely. PDFForge is a standard REST API that works with any HTTP client — cURL, JavaScript, Python, Ruby, PHP, Go, C#, or anything that can make an HTTP request. FileMaker is our initial focus, but the API is universal.

Yes, rate limits depend on your plan: Free (60 req/min), Starter (120 req/min), Pro (300 req/min), and Business (600 req/min). Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every API response so you can monitor usage programmatically.

Upgrades take effect immediately with prorated billing — you only pay the difference for the rest of your billing cycle. Downgrades are scheduled for the end of your current period, so you keep your existing features until renewal. Cancellations work the same way: you retain full access until your period ends, and you can reactivate anytime before that date.