Signature requests
Send a template for signature, poll its status, and download the signed document.
A signature request sends a published template to its signing parties and tracks it to completion.
Send for signature
curl -X POST https://api.instaspace.ai/api/v1/esign/submissions \
-H "Authorization: Bearer isk_live_..." \
-H "Content-Type: application/json" \
-d '{
"templateId": "0b9f6f2e-…",
"submitters": [
{ "role": "First Party", "name": "Dana Client", "email": "dana@client.com" },
{ "role": "Second Party", "name": "Sami Counsel", "email": "sami@yourfirm.com" }
],
"values": { "client_name": "Client Co. LLC" },
"message": "Please sign before Friday.",
"sendEmail": true,
"idempotencyKey": "crm-deal-4821"
}'submitters— exactly one recipient per role the template defines (up to 10).values— optional. Keyed by variable key (flowtemplates) or field name (coordinatetemplates); see reading the template shape.message— optional note carried in the signature email, so it only applies whensendEmailis true.sendEmail— defaults totrue. Whenfalse, signers are not emailed; share the signing links yourself.idempotencyKey— optional but recommended. Retrying a request with a key already used returns the original signature request instead of sending a duplicate round of emails, and doesn't count against your monthly allowance again.
The response is the signature request:
{
"id": "7c1d34…",
"templateId": "0b9f6f2e-…",
"templateName": "Mutual NDA",
"status": "pending",
"submitters": [
{
"role": "First Party",
"name": "Dana Client",
"email": "dana@client.com",
"status": "awaiting",
"completedAt": null
}
],
"hasSignedDocument": false,
"createdAt": "2026-08-06T12:00:00.000Z",
"completedAt": null
}Poll status
curl https://api.instaspace.ai/api/v1/esign/submissions/{id} \
-H "Authorization: Bearer isk_live_..."The request's status moves through pending → opened → completed, or
ends as declined, expired, or voided. Each submitter carries their own
status (awaiting, opened, completed, declined).
Download the signed document
Once hasSignedDocument is true:
curl -L -o signed.pdf \
https://api.instaspace.ai/api/v1/esign/submissions/{id}/document \
-H "Authorization: Bearer isk_live_..."The download is recorded in the workspace audit log with your API key's identity.
There are no outbound webhooks yet — poll the status endpoint for updates. A completed request also notifies the workspace inside instaSpace as usual.

