checking…
API Docs →
🔥 PDF Processing API

PDF operations,
blazing fast.

A lightweight REST API to create, read, fill, flatten and enrich PDFs — with form-field support and embedded JSON metadata via XMP.

View API Docs → Health Check

Authentication

API Key required

All endpoints (except /health and this page) require a key in the request header.

curl -H "X-Api-Key: your-key" \
     https://formsonfire.corncreeker.com/pdf/...

Input formats

Every endpoint accepts both multipart/form-data and application/json with base64-encoded PDFs.

# multipart
file=@document.pdf

# JSON base64
"pdf": "JVBERi0x..."

Endpoints

POST /pdf/meta

Extract metadata from a PDF — title, author, page count, creation date and more.

JSON response read-only
POST /pdf/fields/read

Inspect all form fields in a PDF — name, type, current value and options.

JSON response read-only
POST /pdf/fields/fill

Fill form fields by name. Supports text, checkboxes, radio buttons and dropdowns. Returns the modified PDF.

fields: {…} PDF response
POST /pdf/flatten

Flatten a filled PDF — converts form fields into static content, making the document non-editable.

PDF response
POST /pdf/create

Create a blank PDF, optionally with custom text content. Returns a new PDF document.

text?: "…" PDF response
POST /pdf/merge

Merge multiple PDFs into a single document. Send multiple files or a base64 array.

pdfs: […] PDF response
POST /pdf/form/create

Generate a structured PDF form from a JSON schema — define pages, fields, layout and types declaratively.

FormSchema PDF response
POST /pdf/xmp/write

Embed a JSON object as XMP metadata into a PDF using a custom namespace. Non-destructive — content is untouched.

json: {…} PDF response
POST /pdf/xmp/read

Read back the embedded JSON metadata from a PDF's XMP stream. Returns the original JSON object.

JSON response read-only
POST /pdf/signatures/check

Check which signature fields in a PDF are signed. Returns per-field status and an allSigned boolean. Optional ?fieldPattern= query param to match custom field names.

JSON response read-only ?fieldPattern=sig.*
GET /health

Health check endpoint. No API key required. Returns {"status":"ok"}.

public JSON response