Skip to content

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.

GET /api/v1/templates

Query parameters

ParameterTypeDefaultDescription
cursorstringPagination cursor
limitinteger25Items per page (1–100)
categorystringFilter by category
searchstringSearch by name (case-insensitive)

Required scope: templates.read

Terminal window
curl -X GET "https://app.insigner.co/api/v1/templates?search=NDA" \
-H "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",
"_count": { "fields": 8, "signers": 2 }
}
],
"meta": {
"count": 1,
"hasMore": false,
"nextCursor": null
}
}

GET /api/v1/templates/{id}

Returns template details including all fields and signer slots.

Required scope: templates.read

Terminal window
curl -X GET https://app.insigner.co/api/v1/templates/tpl_abc123 \
-H "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
}
]
}
}

POST /api/v1/templates/{id}/use

Creates 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

FieldTypeRequiredDescription
namestringCustom document name (defaults to template name)
signersarrayArray of signer objects to pre-fill
signers[].emailstringSigner email
signers[].namestringSigner name
signers[].phonestringPhone number
Terminal window
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": "[email protected]", "name": "Alice Johnson" },
{ "email": "[email protected]", "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 }
}
}