Fill and parse PDFs with a simple API
Two REST endpoints: fill PDF form fields programmatically, and parse a PDF into structured JSON (fields, metadata, and text). Base URL https://fillable.ca.
Get a test API key
Free tier: 100 requests per day. Upgrade on the API plan for production volume.
Authentication
Send your key as a bearer token on every request:
Authorization: Bearer fk_live_your_keyThe free/test tier allows 100 requests per day. Each response includes a remaining count. For production volume, subscribe to the API plan.
POST /api/v1/parse
Extract form fields, page count, metadata, and text from a PDF. Send the PDF as base64 in JSON, or as multipart form-data in a file field.
curl -X POST https://fillable.ca/api/v1/parse \
-H "Authorization: Bearer fk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"pdf":"<base64-encoded-pdf>"}'Response:
{
"pageCount": 12,
"title": "Client Intake Form",
"fieldCount": 18,
"fields": [
{ "name": "full_name", "type": "TextField", "value": "" },
{ "name": "agree", "type": "CheckBox", "value": false }
],
"text": ["Page 1 text ...", "Page 2 text ..."],
"remaining": 99
}text is best-effort and may be null for scanned or image-only PDFs (OCR is on the roadmap).
POST /api/v1/fill
Fill a PDF’s form fields and get the completed PDF back as base64. Set flatten to true to lock the values into the page.
curl -X POST https://fillable.ca/api/v1/fill \
-H "Authorization: Bearer fk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"pdf": "<base64-encoded-pdf>",
"fields": { "full_name": "Jane Smith", "agree": true },
"flatten": true
}'Response:
{
"applied": ["full_name", "agree"],
"skipped": [],
"remaining": 98,
"pdf": "<base64-encoded-filled-pdf>"
}Errors
401missing or invalid API key429daily limit reached400bad request (missing pdf or fields)422the PDF could not be processed
Notes
- PDFs are processed in memory and are not stored.
- Field names come from the PDF’s form. Use
/parsefirst to discover them, then/fill. - Need higher limits, OCR, or a signed SLA? See the API plan.