A PDF API for every tool, form and signature
Compress, convert, merge, redact, OCR, edit and fill PDFs, or send them for e signature, from your own code. One API key, simple multipart requests, and 250 free calls every month.
- 250 free calls a month
- OpenAPI 3 spec and Swagger
- Pay only for successful calls

The same engine as the app, behind a clean REST API
Everything you can do in the PDFbat web app is available at https://pdfbat.com/api/v1. Every one of the 30+ PDF tools, the PDF editor, form filling, e signature envelopes, templates and bulk send, your Drive and webhooks all use the same code that powers the app, so a result from the API matches what your users would get in the browser.
Authentication is a single header: Authorization: Bearer ppk_.... Create keys in the developer dashboard; each key is shown once and only a hash is stored. Files go up as multipart/form-data, options are plain form fields, and results come back as the file itself, ready to save or stream.
Why developers build on the PDFbat API
Every tool, one pattern
Call POST /api/v1/tools/{id} for any tool, from compress and merge to OCR and redact. Discover tools and their options with GET /api/v1/tools.
E signatures built in
Create envelopes, add recipients and fields, send, remind, void and download the sealed PDF without a separate e signature vendor.
Signed webhooks
Get notified when an envelope is sent, viewed, signed, declined, voided, expired or completed. Every delivery is signed with HMAC SHA-256 and retried.
Drive storage included
Upload files once and reference them by ID, or save any result straight to the user's Drive with save_to_drive=true.
Honest pricing
250 calls a month are free. After that it is $0.01 per call, and $0.005 per call above 10,000 a month. Failed calls are not billed.
Docs you can try
Full reference with curl, Node and Python examples, plus an OpenAPI specification and an interactive Swagger explorer.
Make your first call in 3 steps
- 1
Create a free account and key
Sign up, open the developer dashboard and create an API key. It starts with
ppk_and is shown only once, so store it safely. - 2
Send a request
POST a file and options to any endpoint. For example, compress a PDF with one curl command and save the smaller file.
- 3
Go live
Use 250 free calls each month. When you need more, turn on pay as you go in the dashboard and keep going without changing code.
What the API covers
- All PDF tools
POST /tools/{id}runs any tool: merge, split, organize, rotate, compress, repair, grayscale, watermark, page numbers, Bates numbering, header and footer, crop, resize, flatten, metadata, redact, protect, unlock, PDF to image, images to PDF, PDF to text, text to PDF, extract images and OCR.- Tool discovery
GET /toolsandGET /tools/{id}describe every tool, its accepted files and each option with its type, default and choices.- PDF editing
POST /editapplies text, images, shapes and other objects, fills form values, reorders, rotates or removes pages, and can flatten forms, all in one call.- Form fields
POST /forms/fieldslists the fillable fields in a PDF, andPOST /forms/fillfills them from a JSON object of field names and values, with optional flattening.- E signature envelopes
- Create, update, send, remind, void, duplicate and delete envelopes, correct a recipient, start in person signing, and download the original or the sealed final document.
- Templates and bulk send
- List and manage templates, create an envelope from a template, bulk send a CSV, download a template's CSV header and switch public signing links on or off.
- Drive
- Upload files, create folders, list, rename, move, trash, restore and delete items, read storage usage, and create or remove share links.
- Use Drive files as input
- Pass
file_idsinstead of uploading to run a tool on files already in Drive. No need to send the same file twice. - Webhooks
- Register up to 10 HTTPS endpoints for events such as
envelope.completedandrecipient.signed, send a test delivery, and see recent attempts. - OpenAPI and Swagger
- The machine readable spec is at
/api/v1/openapi.json. Generate a client in your language or explore it live in Swagger.
A request looks like this
Compress a PDF with the High preset and save the result:
curl -X POST https://pdfbat.com/api/v1/tools/compress -H "Authorization: Bearer ppk_YOUR_KEY" -F [email protected] -F level=high -o report-small.pdf
Every tool follows the same shape. Send the PDF in the file field (or several in files for tools such as merge), add options as form fields using the names from GET /api/v1/tools/{id}, and read the file from the response. Tools that produce several files, such as split, return a ZIP.
Webhooks you can trust
PDFbat posts JSON to your endpoint whenever an e signature event happens. Each request carries a PDFbat-Event header with the event name and a PDFbat-Signature header in the form t=<unix time>,v1=<hex>, an HMAC SHA-256 of the timestamp and the raw body using your webhook secret. Verify it before trusting the payload.
If your endpoint does not answer with a 2xx status, PDFbat stores the delivery and retries after 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hours. Available events:
envelope.sent,envelope.completed,envelope.declined,envelope.voided,envelope.expiredrecipient.viewed,recipient.signed,recipient.declined,recipient.reassigned,recipient.authenticated
Pricing that scales with you
Every account gets 250 free API calls each calendar month. Processing calls count: running a tool, editing, reading or filling forms, creating envelopes and sending from templates. Reading envelope status, listing items, managing Drive and managing webhooks do not. AI calls (ask, summarize, extract, review, translate, redact and write) use AI credits instead of API calls.
Turn on pay as you go when you need more. Calls 251 to 10,000 in a month cost $0.01 each, and every call above 10,000 costs $0.005. A call that fails is released and never billed. Without pay as you go, calls past the free allowance return a clear 402 error instead of a surprise bill.
Envelopes sent through the API also follow your plan's signing allowance: 3 a month on Free, unlimited on Pro for $4 a month.
Popular things to build
- Compress and convert user uploads before storing them in your app.
- Generate contracts from a template and send them for signature the moment a deal closes in your CRM.
- Fill PDF forms from your database, flatten them and email the result.
- Make scanned documents searchable with OCR, then index the text.
- Redact names, emails and card numbers from documents before sharing them with a third party.
Frequently asked questions
How much does the PDFbat API cost?
The first 250 calls each month are free. After that, calls cost $0.01 each up to 10,000 a month and $0.005 each above 10,000. You only pay once you turn on pay as you go.
Which calls count toward my usage?
Processing calls: running a tool, editing a PDF, reading or filling form fields, creating envelopes and sending from templates or bulk send. Status checks, listing, Drive management and webhook management are not counted, and failed calls are never billed.
How do I authenticate?
Send your key in the Authorization: Bearer ppk_... header. Create and revoke keys in the developer dashboard. Only a hash of each key is stored, so copy it when it is shown.
Is there an OpenAPI specification?
Yes. Download it from /api/v1/openapi.json, or try every endpoint in the browser with the Swagger explorer. The API docs include curl, Node and Python examples.
How do I verify a webhook?
Read the PDFbat-Signature header, compute an HMAC SHA-256 of <t>.<raw body> with your webhook secret, and compare it with the v1 value. Reject old timestamps to block replays.
Can I use files already in my Drive?
Yes. Pass Drive file IDs in file_ids instead of uploading, and add save_to_drive=true to keep the result in Drive as well.
What file sizes does the API accept?
The same limits as your plan in the app: up to 25 MB per file on Free and up to 100 MB on Pro.
Related features and tools
E-SignaturesSend PDFs for legally binding e signatures with signing order, identity checks, reminders and a sealed final PDF.
Templates and Bulk SendSave any envelope as a reusable template, send it to hundreds of people from a CSV, or publish a public signing link.
Cloud DrivePrivate cloud storage for PDFs with folders, share links and every tool result saved automatically.
Free PDF Tools30+ tools to merge, split, compress, convert, protect, redact, number and OCR PDFs.
Compress PDFShrink PDFs for email and upload portals with four levels, custom DPI and grayscale.
OCR PDFMake scanned PDFs searchable and copyable in 45 languages, with a second language for mixed documents.Get your free API key
Create a free account, generate a key and make your first call in minutes. 250 calls a month are on us.