Docs
PDFops API reference
Three endpoints today. No auth, no signup during beta — 100
requests per IP per month free, returns 429 Too Many
Requests with a Retry-After header at the
cap. All endpoints accept and return PDF or JSON; no SDK
required.
Endpoints
-
POST /api/fill-formFill AcroForm fields in a PDF template you upload. Multipart request with
pdf(binary) andfields(JSON). Returns the filled PDF asapplication/pdf. -
POST /api/mergeMerge two or more PDFs into one. Multipart request with repeated
pdffields, concatenated in field order. Returns the merged PDF asapplication/pdf. -
POST /api/waitlistSubmit a waitlist entry for higher-quota keys. JSON body with use case, current solution, expected volume, pay range, optional email + message. Returns
{ "ok": true }.
Contract — applies to every endpoint
- Base URL:
https://pdfops.dev - Auth: None during beta. Anonymous, per-IP rate-limited.
- Rate limit: 100 successful (2xx) requests per IP per calendar month (UTC). The middleware only counts accepted requests; 4xx and 5xx don't consume budget.
- Rate-limit response:
429 Too Many RequestswithRetry-Afterseconds-until-next-month. - Request body format:
multipart/form-datafor PDF-binary endpoints (/fill-form,/merge);application/jsonfor/waitlist. - Response on success:
200 OKwithapplication/pdfbody (binary endpoints) orapplication/jsonwith{ "ok": true }(waitlist). - Response on validation failure:
400 Bad Requestwithapplication/jsonbody{ "error": "<code>", "details": "<explanation>" }. - Response on server error:
500 Internal Server Errorwith the same JSON shape. Treat as retryable.
Fillable PDFs — quick start
Don't have a fillable PDF handy? Grab the sample invoice-template.pdf — it has customer_name + total AcroForm fields ready to fill via the curl example on each docs page.
For tax forms (W-9, W-8BEN, I-9) the IRS publishes AcroForm-ready PDFs at irs.gov/forms-instructions — just rename the default IRS field names to something predictable (see the W-9 walkthrough) and your code survives the annual form refresh.