Forms
Create a form by uploading a flat PDF. Emboss detects its fields asynchronously; check the form's status before fetching its contract or filling it.
Create a form
POST
/formsBearer authUpload a flat PDF. Returns 202 with an id while field detection runs in the background.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
file | body | file (multipart) | yes | The flat PDF to detect fields in. |
Idempotency-Key | header | string | no | Optional. Retrying a create with the same key returns the original job instead of creating a new one. Scoped to your account, valid 24 hours. |
callback_url | body | string (url) | no | Optional. A public https URL Emboss POSTs the result to when the job finishes (ready or failed), signed with X-Emboss-Signature. See the Callbacks guide. Private or non-https URLs are rejected with 400. |
Status codes
- 202Accepted; detection started.
- 400Not a readable PDF.
- 401Missing or invalid API key.
- 402Over the free tier with no payment method on file.
- 413Upload too large (max 10 MB) or too many pages (max 100).
- 429Rate limit exceeded.
curl -X POST https://api.getemboss.ai/forms \ -H "Authorization: Bearer sk_live_yourkey" \ -F "file=@./w9.pdf"
Response
{
"form_id": "6c47f7f5-f921-4698-910f-95dd7d81310b",
"status": "processing"
}Get a form
GET
/forms/{id}Bearer authCheck a form's detection status. Poll until status is processing, ready, or failed.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | The form id returned by POST /forms. |
Status codes
- 200The form status (processing | ready | failed).
- 401Missing or invalid API key.
- 404No such form, or owned by another key.
curl https://api.getemboss.ai/forms/6c47f7f5-f921-4698-910f-95dd7d81310b \ -H "Authorization: Bearer sk_live_yourkey"
Response
{
"id": "6c47f7f5-f921-4698-910f-95dd7d81310b",
"status": "ready",
"title": "Form W-9",
"schema_version": "1.0",
"error": null
}