SimplyFill.

Welcome to SimplyFill

Fill PDF forms from your app's data in one API call.

Welcome to SimplyFill

Stop hand-mapping PDF fields. SimplyFill lets you upload a PDF template once, map its fields, then fill it on-demand with data already flowing through your application.

Why SimplyFill?

PDFs remain the universal format for contracts, applications, and official documents. But manually populating them is tedious and error-prone. SimplyFill transforms this pain point into an API call.

  • No manual field mapping on every document — Define aliases once per template
  • Capture the organics — Use data already in your app without restructuring
  • Typed responses — Get back a filled PDF or fail fast with clear errors
  • Developer-first — Clean REST API, SDKs for Node.js and Python

Quick example

Given a PDF with fields like name, email, and company, send a single request:

curl -X POST https://api.simplyfill.app/v1/generate \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "contract-template",
    "data": {
      "name": "Ada Lovelace",
      "email": "ada@example.com",
      "company": "Analytical Engines Inc"
    }
  }'

Node.js:

import { SimplyFill } from '@simplyfill/node'

const client = new SimplyFill({ apiKey: process.env.SIMPLYFILL_API_KEY })

const pdf = await client.generate({
  template: 'contract-template',
  data: {
    name: 'Ada Lovelace',
    email: 'ada@example.com',
    company: 'Analytical Engines Inc'
  }
})

Python:

from simplyfill import SimplyFill
import os

client = SimplyFill(api_key=os.getenv("SIMPLYFILL_API_KEY"))

pdf = client.generate(
    template="contract-template",
    data={
        "name": "Ada Lovelace",
        "email": "ada@example.com",
        "company": "Analytical Engines Inc"
    }
)

You'll receive a signed URL to download the filled PDF within seconds.

Next steps

On this page