Quickstart

Emboss turns a flat PDF into a filled one. You upload a form plus some context about who it's for, Emboss detects the fields, fills them, and hands you back a finished PDF. The whole loop is three HTTP calls.

Every request is authenticated with a Bearer key:

Authorization: Bearer sk_live_yourkey

Your first 5 forms each month are free. Keys are issued via the Emboss CLI today — see Authentication.

1. Upload the form with context

Send the PDF and a blob of context to POST /forms/with-context. This kicks off detection + fill as a background job and returns a job_id immediately.

curl -X POST https://api.getemboss.ai/forms/with-context \
  -H "Authorization: Bearer sk_live_yourkey" \
  -F "file=@./w9.pdf" \
  -F 'context={"name":"Ada Lovelace","business":"Analytical Engines LLC","ein":"12-3456789"}'
{ "job_id": "job_8f2c", "status": "queued" }

2. Poll the job

The job runs asynchronously. Poll GET /forms/with-context/{job_id} until status is done. When it finishes you get back a session_id and a short report of what was filled.

curl https://api.getemboss.ai/forms/with-context/job_8f2c \
  -H "Authorization: Bearer sk_live_yourkey"
{ "status": "done", "session_id": "sess_a1b2", "report": "Filled 14 of 16 fields." }

3. Download the filled PDF

Fetch the rendered document from GET /sessions/{id}/pdf. The response body is the raw %PDF bytes.

curl https://api.getemboss.ai/sessions/sess_a1b2/pdf \
  -H "Authorization: Bearer sk_live_yourkey" \
  -o filled.pdf

That's the full path: upload → poll → download. From here you can inspect the detected-fields contract, fill from context documents, or drive a conversational fill.