Templates
Templates are reusable document blueprints with pre-configured fields and signer slots. Create a template once in the inSigner dashboard, then use the API to generate documents from it.
List templates
Section titled “List templates”GET /api/v1/templatesQuery parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
cursor | string | — | Pagination cursor |
limit | integer | 25 | Items per page (1–100) |
category | string | — | Filter by category |
search | string | — | Search by name (case-insensitive) |
Required scope: templates.read
curl -X GET "https://app.insigner.co/api/v1/templates?search=NDA" \ -H "Authorization: Bearer isk_YOUR_API_KEY"const res = await fetch( 'https://app.insigner.co/api/v1/templates?search=NDA', { headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY' } });const { data, meta } = await res.json();res = requests.get( "https://app.insigner.co/api/v1/templates", headers={"Authorization": "Bearer isk_YOUR_API_KEY"}, params={"search": "NDA"})Response
{ "data": [ { "id": "tpl_abc123", "name": "Standard NDA", "description": "Mutual non-disclosure agreement", "category": "Legal", "fileSize": 185000, "usageCount": 47, "isPublic": false, "createdAt": "2026-03-15T10:00:00.000Z", "updatedAt": "2026-05-20T14:30:00.000Z", "_count": { "fields": 8, "signers": 2 } } ], "meta": { "count": 1, "hasMore": false, "nextCursor": null }}Get template details
Section titled “Get template details”GET /api/v1/templates/{id}Returns template details including all fields and signer slots.
Required scope: templates.read
curl -X GET https://app.insigner.co/api/v1/templates/tpl_abc123 \ -H "Authorization: Bearer isk_YOUR_API_KEY"const res = await fetch( 'https://app.insigner.co/api/v1/templates/tpl_abc123', { headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY' } });const { data } = await res.json();res = requests.get( "https://app.insigner.co/api/v1/templates/tpl_abc123", headers={"Authorization": "Bearer isk_YOUR_API_KEY"})Response
{ "data": { "id": "tpl_abc123", "name": "Standard NDA", "description": "Mutual non-disclosure agreement", "category": "Legal", "fileSize": 185000, "usageCount": 47, "isPublic": false, "createdAt": "2026-03-15T10:00:00.000Z", "updatedAt": "2026-05-20T14:30:00.000Z", "fields": [ { "id": "tf_abc123", "type": "signature", "label": "Party A Signature", "page": 3, "x": 100, "y": 600, "width": 200, "height": 60, "required": true, "readOnly": false, "assignedTo": 0, "placeholder": null, "defaultValue": null, "options": null } ], "signers": [ { "id": "ts_abc123", "role": "signer", "label": "Party A", "sortOrder": 0 }, { "id": "ts_def456", "role": "signer", "label": "Party B", "sortOrder": 1 } ] }}Use a template
Section titled “Use a template”POST /api/v1/templates/{id}/useCreates a new document from a template. Copies all fields and optionally pre-fills signer details. The document is created in draft status.
Required scope: documents.create
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | — | Custom document name (defaults to template name) |
signers | array | — | Array of signer objects to pre-fill |
signers[].email | string | ✅ | Signer email |
signers[].name | string | ✅ | Signer name |
signers[].phone | string | — | Phone number |
curl -X POST https://app.insigner.co/api/v1/templates/tpl_abc123/use \ -H "Authorization: Bearer isk_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "NDA - Acme Corp & WidgetCo", "signers": [ { "email": "alice@acme.com", "name": "Alice Johnson" }, { "email": "bob@widgetco.com", "name": "Bob Williams" } ] }'const res = await fetch( 'https://app.insigner.co/api/v1/templates/tpl_abc123/use', { method: 'POST', headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'NDA - Acme Corp & WidgetCo', signers: [ { email: 'alice@acme.com', name: 'Alice Johnson' }, { email: 'bob@widgetco.com', name: 'Bob Williams' } ] }) });const { data } = await res.json();res = requests.post( "https://app.insigner.co/api/v1/templates/tpl_abc123/use", headers={"Authorization": "Bearer isk_YOUR_API_KEY"}, json={ "name": "NDA - Acme Corp & WidgetCo", "signers": [ {"email": "alice@acme.com", "name": "Alice Johnson"}, {"email": "bob@widgetco.com", "name": "Bob Williams"} ] })Response 201 Created
{ "data": { "id": "cm5x9ghi789", "name": "NDA - Acme Corp & WidgetCo", "status": "draft", "templateId": "tpl_abc123", "createdAt": "2026-05-28T12:00:00.000Z", "_count": { "signers": 2, "fields": 8 } }}