instaSpace

Templates

List the published templates your integration can send from.

The API works with published templates — the ones your team has prepared and published in the app's Templates area. Drafts and archived templates are not visible to the API.

List templates

curl "https://api.instaspace.ai/api/v1/esign/templates?search=nda" \
  -H "Authorization: Bearer isk_live_..."

search is optional and filters by name.

{
  "templates": [
    {
      "id": "0b9f6f2e-…",
      "name": "Mutual NDA",
      "description": "Standard two-party NDA",
      "fillMode": "flow",
      "submitterRoles": ["First Party", "Second Party"],
      "fields": [{ "name": "Signature", "type": "signature", "required": true, "submitterRole": "First Party" }],
      "variables": [{ "key": "client_name", "label": "Client Name", "type": "text", "required": true }],
      "version": 3
    }
  ]
}

Get one template

curl https://api.instaspace.ai/api/v1/esign/templates/{id} \
  -H "Authorization: Bearer isk_live_..."

Returns the same shape as one list entry. Requesting a draft or archived template returns 404, the same as an unknown id.

Reading the shape

Two things on the template drive what you send in a signature request:

  • submitterRoles — the signing parties. A signature request must name exactly one recipient per role.
  • fillMode decides what the request's values mean:
    • flow — the template is a document with fillable variables (client name, fee, dates…). Your values are keyed by variables[].key, and instaSpace writes them into the document text itself before sending.
    • coordinate — the template has positioned fields. Your values are keyed by field name and prefill those fields; anything you leave out is completed by the signer. Signature fields can never be prefilled.

On this page