Quickstart

Fill and merge PDFs in your browser — free, no signup (or one API call)

Most "PDF tasks" are small until they aren't: fill in a form someone emailed you, or staple three PDFs into one before you send them on. You can now do both in your browser at pdfops.dev/playground — drop a file, fill or merge, download. No signup, no upload-to-a-stranger, no watermark. And the moment it stops being a one-off, the exact same operation is a single HTTP call.

Fill a PDF form in the browser

A lot of PDFs are forms — they have real, named input boxes baked in (the technical name is AcroForm fields). A W-9, an invoice template, an intake sheet, a contract with a few blanks. Open one in the playground, and it renders the page and drops an input box onto each field it finds. Type your values, hit Fill PDF, and you get a flattened, filled copy back — the text is in the document, not scribbled on top of it.

No fillable PDF handy? There's a sample invoice one click away, with customer_name and total fields ready to go, so you can see the round-trip before you bring your own. If you drop a PDF that has no form fields, the tool tells you so plainly instead of failing — that's a scanned or flat PDF, and filling it is a different (OCR-shaped) problem.

Merge PDFs in the browser

The other small-until-it-isn't task: combining files. Drop two or more PDFs into the Merge tab, drag them into the order you want, and download a single merged document. Pages are concatenated in order; nothing is re-encoded or recompressed, so text stays selectable and quality is untouched.

Everything happens against the PDFops API and nothing is stored — files go up, the result comes back, and that's the end of it. Free during beta: 100 operations per month, no account.

It's the same API underneath

The playground isn't a separate tool bolted on for show — it's the PDFops API with a friendly front end. The button labelled "Fill PDF" makes the same POST /api/fill-form call your code would. Which means the moment a manual task turns into a repeating one — "we fill this form for every new customer" — you don't switch tools, you just move the same call into a script:

curl -X POST https://pdfops.dev/api/fill-form \
  -F "pdf=@invoice-template.pdf" \
  -F 'fields={"customer_name":"Acme Co","total":"$1,250.00"}' \
  -o filled.pdf

Merging is the same shape — repeat the pdf field:

curl -X POST https://pdfops.dev/api/merge \
  -F "pdf=@cover.pdf" \
  -F "pdf=@report.pdf" \
  -o merged.pdf

No API key, no signup, 100 requests per IP per month during beta. The playground even shows you the exact curl for what you just did — fill out the form by hand once, copy the command, and you've got the automated version. The API reference has the full request schema, the error codes, and the per-field-type details (checkboxes want "true"/"false", dropdowns want a valid option, and so on).

Browser or API — which one?

The nice part is you never have to pick up front. Start in the browser, and when the task graduates to "do this every time," the call you need is the one the playground already showed you.

Try it

Open the playground, click "Load our sample invoice," fill the two fields, and download a filled PDF — about ten seconds, no signup. Then bring your own form, or merge a couple of files you have lying around.

Missing a PDF operation you'd reach for — splitting, stamping, rotating, page extraction? Drop it on the waitlist form; the message field is how the next endpoints get prioritized.