Signers
Signers are the people who need to sign, approve, or view a document. Each signer receives a unique signing link via email.
Signer roles
Section titled “Signer roles”| Role | Description |
|---|---|
signer | Must sign the document (default) |
viewer | Receives a copy but doesn’t sign |
approver | Must approve the document before signers can sign |
List signers
Section titled “List signers”GET /api/v1/documents/{id}/signersReturns all signers on a document, ordered by their signing order.
Required scope: documents.read
curl -X GET https://app.insigner.co/api/v1/documents/cm5x9abc123/signers \ -H "Authorization: Bearer isk_YOUR_API_KEY"const res = await fetch( 'https://app.insigner.co/api/v1/documents/cm5x9abc123/signers', { headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY' } });const { data } = await res.json();res = requests.get( "https://app.insigner.co/api/v1/documents/cm5x9abc123/signers", headers={"Authorization": "Bearer isk_YOUR_API_KEY"})Response
{ "data": [ { "id": "sr_abc123", "name": "Jane Smith", "role": "signer", "status": "completed", "order": 0, "signedAt": "2026-05-29T14:30:00.000Z", "createdAt": "2026-05-28T12:00:00.000Z", "updatedAt": "2026-05-29T14:30:00.000Z" }, { "id": "sr_def456", "name": "John Doe", "role": "signer", "status": "pending", "order": 1, "signedAt": null, "createdAt": "2026-05-28T12:00:00.000Z", "updatedAt": "2026-05-28T12:00:00.000Z" } ]}Add a signer
Section titled “Add a signer”POST /api/v1/documents/{id}/signersAdds a signer to a draft document. Maximum 50 signers per document.
Required scope: documents.write
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | ✅ | Signer’s email (max 254 chars) |
name | string | ✅ | Signer’s full name (1–200 chars) |
role | string | — | "signer" (default), "viewer", or "approver" |
order | integer | — | Signing order for sequential documents (default: 0) |
phone | string | — | Phone number for SMS verification (max 20 chars) |
curl -X POST https://app.insigner.co/api/v1/documents/cm5x9abc123/signers \ -H "Authorization: Bearer isk_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "name": "Jane Smith", "role": "signer", "order": 0 }'const res = await fetch( 'https://app.insigner.co/api/v1/documents/cm5x9abc123/signers', { method: 'POST', headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Jane Smith', role: 'signer', order: 0 }) });const { data } = await res.json();res = requests.post( "https://app.insigner.co/api/v1/documents/cm5x9abc123/signers", headers={"Authorization": "Bearer isk_YOUR_API_KEY"}, json={ "name": "Jane Smith", "role": "signer", "order": 0 })Response 201 Created
{ "data": { "id": "sr_abc123", "name": "Jane Smith", "role": "signer", "status": "pending", "order": 0, "createdAt": "2026-05-28T12:00:00.000Z" }}Remove a signer
Section titled “Remove a signer”DELETE /api/v1/documents/{id}/signers/{signerId}Removes a signer from a draft document.
Required scope: documents.write
curl -X DELETE https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_abc123 \ -H "Authorization: Bearer isk_YOUR_API_KEY"await fetch( 'https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_abc123', { method: 'DELETE', headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY' } });requests.delete( "https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_abc123", headers={"Authorization": "Bearer isk_YOUR_API_KEY"})Response: 204 No Content
Send a reminder
Section titled “Send a reminder”POST /api/v1/documents/{id}/signers/{signerId}/remindSends a reminder email to a pending signer. The document must be in pending or action_required status.
Required scope: documents.send
curl -X POST https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_def456/remind \ -H "Authorization: Bearer isk_YOUR_API_KEY"const res = await fetch( 'https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_def456/remind', { method: 'POST', headers: { 'Authorization': 'Bearer isk_YOUR_API_KEY' } });const { data } = await res.json();res = requests.post( "https://app.insigner.co/api/v1/documents/cm5x9abc123/signers/sr_def456/remind", headers={"Authorization": "Bearer isk_YOUR_API_KEY"})Response
{ "data": { "signerId": "sr_def456", "reminderSentAt": "2026-05-30T10:00:00.000Z" }}