Skip to content

Using Templates

Templates let you create documents without configuring fields and layout every time. Design a template once in the dashboard with placed fields and signer slots, then use the API to generate documents from it with real signer data.

  • Standardized documents — NDAs, contracts, onboarding forms that follow the same layout
  • High-volume workflows — Sending the same document to many different recipients
  • Non-technical users — Let your team design templates in the visual editor, while developers use the API

Templates are created in the inSigner dashboard:

  1. Go to Dashboard → Templates.
  2. Upload a PDF file.
  3. Use the visual field editor to place signature fields, text inputs, dates, etc.
  4. Define signer slots (e.g. “Client”, “Witness”).
  5. Save the template.

Once saved, the template is available via the API.

List your templates and note the id:

Terminal window
curl -X GET "https://app.insigner.co/api/v1/templates?search=NDA" \
-H "Authorization: Bearer isk_YOUR_API_KEY"

Use the template’s id to create a document with real signer details:

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" }
]
}'

Since the template already has fields and the signers are filled in:

Terminal window
curl -X POST https://app.insigner.co/api/v1/documents/cm5x9ghi789/send \
-H "Authorization: Bearer isk_YOUR_API_KEY"

Here’s the complete flow — find a template, create a document, and send it:

async function sendFromTemplate(templateId, signers) {
// Create document from template
const { data: doc } = await insignerFetch(`/templates/${templateId}/use`, {
method: 'POST',
body: JSON.stringify({ signers })
});
// Send immediately
await insignerFetch(`/documents/${doc.id}/send`, {
method: 'POST'
});
return doc.id;
}
// Usage
const docId = await sendFromTemplate('tpl_abc123', [
{ email: '[email protected]', name: 'Alice Johnson' },
{ email: '[email protected]', name: 'Bob Williams' }
]);
console.log(`Sent document: ${docId}`);