instaSpace

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 (flow templates) or field name (coordinate templates); see reading the template shape.
  • message — optional note carried in the signature email, so it only applies when sendEmail is true.
  • sendEmail — defaults to true. When false, 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 pendingopenedcompleted, 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.

On this page