DocuSeal
App · 20 actions
Send documents for e-signature with DocuSeal: create templates from HTML or PDF, send them to signers with pre-filled fields, track each signer's status, and download the signed documents and audit log.
Actions
| Action | What it does |
|---|---|
| Archive submission | Archive a signature request so signers can no longer open it. |
| Archive template | Archive a template so it can no longer be sent. |
| Clone template | Copy a template with its fields and documents. |
| Create template from HTML | Create a reusable template from HTML, placing fillable and signature fields with DocuSeal's field tags. |
| Create template from PDF | Create a reusable template from a PDF. |
| Get signer | Get one signer: their status, every value they filled in, their documents and the template. |
| Get submission | Get one signature request: its status, each signer's status and filled-in values, its documents, the audit log link and its event history. |
| Get submission documents | Get download links for a submission's documents - signed once it is completed, partly filled before. |
| Get template | Get one template with its signer roles, every field (name, type, which role fills it) and its documents. |
| List signers | List signers (submitters) across submissions, newest first, with their status and filled-in values. |
| List submissions | List signature requests, newest first, with each one's status and signers. |
| List templates | List document templates, newest first, with their signer roles and field names. |
| Merge templates | Combine two or more templates, in order, into one new template. |
| Send HTML document for signature | Send a one-off document written in HTML for signature, without saving a template first. |
| Send PDF for signature | Send a one-off PDF for signature, without saving a template first. |
| Send template for signature | Send a template out for signature to one or more signers, each in a role, optionally pre-filling their fields. |
| Send template to email addresses | Send a one-signer template to each email address as its own submission - the quickest way to collect the same signature from several people. |
| Update signer | Change a signer's name, email or phone, pre-fill field values, re-send their invitation, or sign for them via the API. |
| Update submission | Rename a signature request, change or remove its expiry, or archive or restore it. |
| Update template | Rename a template, move it to another folder, rename or add signer roles, or archive or restore it. |
Archive submission
Archive a signature request so signers can no longer open it. 'Update submission' can restore it.
Inputs
- Submission
submission_idtextRequired - The submission's id, or its link from DocuSeal such as https://docuseal.com/submissions/456. 'List submissions' finds one.
Outputs
archivedtrue/false- Always true
archived_attext- When it was archived
idtext- The archived record's id
Example output
{
"archived": true,
"archived_at": "2026-10-12T11:00:00Z",
"id": "2001"
}Archive template
Archive a template so it can no longer be sent. Existing submissions are kept, and 'Update template' can restore it.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
Outputs
archivedtrue/false- Always true
archived_attext- When it was archived
idtext- The archived record's id
Example output
{
"archived": true,
"archived_at": "2026-10-12T11:00:00Z",
"id": "1001"
}Clone template
Copy a template with its fields and documents. Without a name the copy is called '<name> (Clone)'.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
- Name of the copy
nametext - Leave empty for '<name> (Clone)'.
- Folder
folder_nametext - The folder to put the template in. It is created if it is new.
- External id
external_idtext - Your own id for the template, such as one from your app.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}Create template from HTML
Create a reusable template from HTML, placing fillable and signature fields with DocuSeal's field tags. Give the same external id again to update that template instead.
Inputs
- HTML
htmltextRequired - The document's HTML. Place fields with DocuSeal's field tags, such as <text-field name="Full Name" role="First Party"></text-field> and <signature-field name="Signature" role="First Party"></signature-field>. See https://www.docuseal.com/guides/create-pdf-document-fillable-form-with-html-api
- Template name
nametext - The new template's name.
- Page size
sizetext - The paper size the HTML is laid out on.One of:
Letter(Letter (8.5 x 11 in)),Legal,Tabloid,Ledger,A0,A1,A2,A3,A4,A5,A6. Default:Letter. - Page header HTML
html_headertext - HTML repeated at the top of every page.
- Page footer HTML
html_footertext - HTML repeated at the bottom of every page.
- Folder
folder_nametext - The folder to put the template in. It is created if it is new.
- External id
external_idtext - Your own id for the template, such as one from your app.
- Public signing link
shared_linktrue/false - Let anyone with the template's link fill and sign it.Default:
true.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}Create template from PDF
Create a reusable template from a PDF. Fields come from {{...}} text tags in the PDF or from the Fields list.
Inputs
- PDF
filetextRequired - Upload a PDF, or give a public link to one or its base64 content. Place fields with text tags in the PDF, such as {{Full Name;role=First Party}} or {{Sign here;type=signature}}, or with 'Fields'.
- Document name
document_nametextRequired - The name the document is shown under.
- Template name
nametext - The new template's name.
- Fields
fieldslist - Advanced: fields to place on the PDF when it has no text tags, each like {"name": "Signature", "type": "signature", "role": "First Party", "areas": [{"x": 0.1, "y": 0.8, "w": 0.3, "h": 0.05, "page": 1}]}. Positions are fractions of the page.
- Folder
folder_nametext - The folder to put the template in. It is created if it is new.
- External id
external_idtext - Your own id for the template, such as one from your app.
- Public signing link
shared_linktrue/false - Let anyone with the template's link fill and sign it.Default:
true. - Flatten the PDF
flattentrue/false - Remove the PDF's own form fields, keeping only DocuSeal's.Default:
false. - Remove text tags
remove_tagstrue/false - Erase the {{...}} text tags from the PDF once fields are placed.Default:
true.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}Get signer
Get one signer: their status, every value they filled in, their documents and the template.
Inputs
- Signer
submitter_idtextRequired - The signer's (submitter's) id. 'Get submission' and 'List signers' return it for each signer.
Outputs
completed_attext- When they signed, or empty
created_attext- When the signer was added
declined_attext- When they declined, or empty
documentslist- The signer's documents
emailtext- Signer email
external_idtext- Your own id for the signer, if set
idtext- Submitter (signer) id
metadataobject- Your own metadata
nametext- Signer name
opened_attext- When they opened it, or empty
phonetext- Signer phone
roletext- The template role they sign as
sent_attext- When the invitation was sent, or empty
signing_urltext- The signer's signing link, when returned
slugtext- Signer slug, used in the signing link
statustext- awaiting, sent, opened, completed or declined
submission_idtext- The submission the signer belongs to
templateobject- The template, when returned
updated_attext- When the signer last changed
uuidtext- Signer uuid
valueslist- Filled-in field values
Example output
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}Get submission
Get one signature request: its status, each signer's status and filled-in values, its documents, the audit log link and its event history.
Inputs
- Submission
submission_idtextRequired - The submission's id, or its link from DocuSeal such as https://docuseal.com/submissions/456. 'List submissions' finds one.
Outputs
archivedtrue/false- Whether it is archived
archived_attext- When it was archived, or empty
audit_log_urltext- Audit log PDF link, once completed
combined_document_urltext- Combined signed PDF link, once completed
completed_attext- When everyone had signed, or empty
created_attext- When it was created
created_byobject- Who sent it
documentslist- Its documents (signed once completed)
eventslist- What has happened to it, oldest first
expire_attext- When it expires, or empty
idtext- Submission id
nametext- Submission name, or empty
slugtext- Submission slug
sourcetext- How it was created, such as api, invite or link
statustext- pending, completed, declined or expired
submitterslist- The signers
submitters_ordertext- preserved or random
templateobject- The template it was sent from
updated_attext- When it last changed
variablesobject- Template variables used
Example output
{
"archived": false,
"archived_at": "",
"audit_log_url": "",
"combined_document_url": "",
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"created_by": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"documents": [],
"events": [
{
"event_timestamp": "2026-10-12T10:01:00.000Z",
"event_type": "send_email",
"id": "4001",
"submitter_id": "3001"
}
],
"expire_at": "",
"id": "2001",
"name": "Service Agreement - Jordan Smith",
"slug": "VyL4szTwYoSvXq",
"source": "api",
"status": "pending",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
],
"submitters_order": "preserved",
"template": {
"external_id": "",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"variables": {}
}Get submission documents
Get download links for a submission's documents - signed once it is completed, partly filled before. The links expire, so download them in the same workflow.
Inputs
- Submission
submission_idtextRequired - The submission's id, or its link from DocuSeal such as https://docuseal.com/submissions/456. 'List submissions' finds one.
- Merge into one PDF
mergetrue/false - Combine several documents into a single PDF.Default:
false.
Outputs
countnumber- How many documents
documentslist- Documents with expiring download links
submission_idtext- Submission id
Example output
{
"count": 1,
"documents": [
{
"name": "service-agreement",
"url": "https://docuseal.com/file/hash/service-agreement.pdf"
}
],
"submission_id": "2001"
}Get template
Get one template with its signer roles, every field (name, type, which role fills it) and its documents. Use the field names to pre-fill a signer's values.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}List signers
List signers (submitters) across submissions, newest first, with their status and filled-in values. Filter by submission, name, email or phone, external id, or when they signed.
Inputs
- Submission
submission_idtext - Only the signers of this submission (its id or link).
- Name, email or phone contains
searchtext - Part of a signer's name, email or phone number.
- External id
external_idtext - Only the signer with this external id.
- Signed after
completed_afterdate and time - Only signers who completed after this moment.
- Signed before
completed_beforedate and time - Only signers who completed before this moment.
- Number of results
max_resultsnumber - How many to return, newest first (up to 500).From 1 to 500. Default:
25. - Continue after
aftertext - To read the next, older page, the 'next_cursor' a previous run of this action returned.
Outputs
countnumber- How many signers were returned
has_moretrue/false- Whether older records remain
next_cursortext- Pass as 'Continue after' to read the next, older records
submitterslist- The signers
Example output
{
"count": 1,
"has_more": false,
"next_cursor": "",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
]
}List submissions
List signature requests, newest first, with each one's status and signers. Filter by template, status, signer name, email or phone, template folder, or archived state.
Inputs
- Template
template_idtext - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
- Status
statustext - Only submissions with this status.One of:
pending(Pending (waiting on a signer)),completed,declined,expired. - Signer contains
searchtext - Part of a signer's name, email or phone number.
- Template folder
template_foldertext - Only submissions of templates in this folder.
- Archived
archive_filtertext - Whether to include archived submissions.One of:
all(Active and archived),active(Active only),archived(Archived only). Default:all. - Number of results
max_resultsnumber - How many to return, newest first (up to 500).From 1 to 500. Default:
25. - Continue after
aftertext - To read the next, older page, the 'next_cursor' a previous run of this action returned.
Outputs
countnumber- How many submissions were returned
has_moretrue/false- Whether older records remain
next_cursortext- Pass as 'Continue after' to read the next, older records
submissionslist- The submissions
Example output
{
"count": 1,
"has_more": false,
"next_cursor": "",
"submissions": [
{
"archived": false,
"archived_at": "",
"audit_log_url": "",
"combined_document_url": "",
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"created_by": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"documents": [],
"events": [
{
"event_timestamp": "2026-10-12T10:01:00.000Z",
"event_type": "send_email",
"id": "4001",
"submitter_id": "3001"
}
],
"expire_at": "",
"id": "2001",
"name": "Service Agreement - Jordan Smith",
"slug": "VyL4szTwYoSvXq",
"source": "api",
"status": "pending",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
],
"submitters_order": "preserved",
"template": {
"external_id": "",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"variables": {}
}
]
}List templates
List document templates, newest first, with their signer roles and field names. Filter by name, folder or external id, or list archived templates instead of active ones.
Inputs
- Name contains
searchtext - Only templates whose name contains this text.
- Folder
foldertext - Only templates in the folder with this name.
- External id
external_idtext - Only the template with this external id.
- Archived templates only
archived_onlytrue/false - List archived templates instead of active ones.Default:
false. - Shared with Test Mode
shared_with_test_modetrue/false - With a Test Mode key, list the production templates shared into Test Mode.Default:
false. - Number of results
max_resultsnumber - How many to return, newest first (up to 500).From 1 to 500. Default:
25. - Continue after
aftertext - To read the next, older page, the 'next_cursor' a previous run of this action returned.
Outputs
countnumber- How many templates were returned
has_moretrue/false- Whether older records remain
next_cursortext- Pass as 'Continue after' to read the next, older records
templateslist- The templates
Example output
{
"count": 1,
"has_more": false,
"next_cursor": "",
"templates": [
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}
]
}Merge templates
Combine two or more templates, in order, into one new template. The originals are left as they are.
Inputs
- Templates
template_idslistRequired - The templates to combine, at least two, in the order their documents should appear.
- Template name
nametext - The new template's name.
- Folder
folder_nametext - The folder to put the template in. It is created if it is new.
- External id
external_idtext - Your own id for the template, such as one from your app.
- Public signing link
shared_linktrue/false - Let anyone with the template's link fill and sign it.Default:
true. - Signer roles
roleslist - Role names for the merged template, replacing the originals' roles by position.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}Send HTML document for signature
Send a one-off document written in HTML for signature, without saving a template first.
Inputs
- HTML
htmltextRequired - The document's HTML. Place fields with DocuSeal's field tags, such as <text-field name="Full Name" role="First Party"></text-field> and <signature-field name="Signature" role="First Party"></signature-field>. See https://www.docuseal.com/guides/create-pdf-document-fillable-form-with-html-api
- Signers
submitterslistRequired - Who signs, one object per signer. 'role' must match a role on the document (such as 'First Party'); add 'email', and optionally 'name', 'phone' (+14155550123), 'values' to pre-fill fields by name, 'external_id', 'metadata', 'send_email' or 'completed' (true signs for them via the API).
- Document name
document_nametext - The name the document is shown under.
- Submission name
nametext - A name for the signature request.
- Page size
sizetext - The paper size the HTML is laid out on.One of:
Letter(Letter (8.5 x 11 in)),Legal,Tabloid,Ledger,A0,A1,A2,A3,A4,A5,A6. Default:Letter. - Page header HTML
html_headertext - HTML repeated at the top of every page.
- Page footer HTML
html_footertext - HTML repeated at the bottom of every page.
- Email the signers
send_emailtrue/false - Email each signer their invitation. Turn off to share the signing links yourself - each signer's 'signing_url' is returned.Default:
true. - Text the signers
send_smstrue/false - Also send the invitation by SMS to signers with a phone number.Default:
false. - Signing order
ordertext - Whether signers are invited one after another or all at once.One of:
preserved(One after another, in the order listed),random(Everyone at once). Default:preserved. - Expires at
expire_atdate and time - After this moment the request can no longer be signed.
- Email subject
message_subjecttext - A custom subject for the invitation email.
- Email message
message_bodytext - A custom invitation email body. It can use {{template.name}}, {{submission.name}}, {{submitter.link}} and {{account.name}}; include {{submitter.link}} so the signer can open the document.
- Reply-to email
reply_totext - The address signers' replies to the invitation go to.
- BCC the signed copy to
bcc_completedtext - An email address that gets a copy of the signed documents.
- Redirect after signing
completed_redirect_urltext - A web page to send signers to once they have signed.
Outputs
countnumber- How many signers
created_attext- When it was created
expire_attext- When it expires, or empty
nametext- Submission name
sourcetext- How it was created
statustext- pending, completed, declined or expired
submission_idtext- The new submission's id
submitterslist- The signers, each with a signing link
submitters_ordertext- preserved or random
Example output
{
"count": 1,
"created_at": "2026-10-12T10:01:00.000Z",
"expire_at": "",
"name": "Service Agreement - Jordan Smith",
"source": "api",
"status": "pending",
"submission_id": "2001",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
],
"submitters_order": "preserved"
}Send PDF for signature
Send a one-off PDF for signature, without saving a template first. Fields come from {{...}} text tags in the PDF or from the Fields list.
Inputs
- PDF
filetextRequired - Upload a PDF, or give a public link to one or its base64 content. Place fields with text tags in the PDF, such as {{Full Name;role=First Party}} or {{Sign here;type=signature}}, or with 'Fields'.
- Document name
document_nametextRequired - The name the document is shown under.
- Signers
submitterslistRequired - Who signs, one object per signer. 'role' must match a role on the document (such as 'First Party'); add 'email', and optionally 'name', 'phone' (+14155550123), 'values' to pre-fill fields by name, 'external_id', 'metadata', 'send_email' or 'completed' (true signs for them via the API).
- Fields
fieldslist - Advanced: fields to place on the PDF when it has no text tags, each like {"name": "Signature", "type": "signature", "role": "First Party", "areas": [{"x": 0.1, "y": 0.8, "w": 0.3, "h": 0.05, "page": 1}]}. Positions are fractions of the page.
- Submission name
nametext - A name for the signature request.
- Email the signers
send_emailtrue/false - Email each signer their invitation. Turn off to share the signing links yourself - each signer's 'signing_url' is returned.Default:
true. - Text the signers
send_smstrue/false - Also send the invitation by SMS to signers with a phone number.Default:
false. - Signing order
ordertext - Whether signers are invited one after another or all at once.One of:
preserved(One after another, in the order listed),random(Everyone at once). Default:preserved. - Expires at
expire_atdate and time - After this moment the request can no longer be signed.
- Email subject
message_subjecttext - A custom subject for the invitation email.
- Email message
message_bodytext - A custom invitation email body. It can use {{template.name}}, {{submission.name}}, {{submitter.link}} and {{account.name}}; include {{submitter.link}} so the signer can open the document.
- Reply-to email
reply_totext - The address signers' replies to the invitation go to.
- BCC the signed copy to
bcc_completedtext - An email address that gets a copy of the signed documents.
- Redirect after signing
completed_redirect_urltext - A web page to send signers to once they have signed.
- Flatten the PDF
flattentrue/false - Remove the PDF's own form fields, keeping only DocuSeal's.Default:
false. - Remove text tags
remove_tagstrue/false - Erase the {{...}} text tags from the PDF once fields are placed.Default:
true.
Outputs
countnumber- How many signers
created_attext- When it was created
expire_attext- When it expires, or empty
nametext- Submission name
sourcetext- How it was created
statustext- pending, completed, declined or expired
submission_idtext- The new submission's id
submitterslist- The signers, each with a signing link
submitters_ordertext- preserved or random
Example output
{
"count": 1,
"created_at": "2026-10-12T10:01:00.000Z",
"expire_at": "",
"name": "Service Agreement - Jordan Smith",
"source": "api",
"status": "pending",
"submission_id": "2001",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
],
"submitters_order": "preserved"
}Send template for signature
Send a template out for signature to one or more signers, each in a role, optionally pre-filling their fields. Returns the new submission's id and each signer's signing link.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
- Signers
submitterslistRequired - Who signs, one object per signer. 'role' must match a role on the document (such as 'First Party'); add 'email', and optionally 'name', 'phone' (+14155550123), 'values' to pre-fill fields by name, 'external_id', 'metadata', 'send_email' or 'completed' (true signs for them via the API).
- Email the signers
send_emailtrue/false - Email each signer their invitation. Turn off to share the signing links yourself - each signer's 'signing_url' is returned.Default:
true. - Text the signers
send_smstrue/false - Also send the invitation by SMS to signers with a phone number.Default:
false. - Signing order
ordertext - Whether signers are invited one after another or all at once.One of:
preserved(One after another, in the order listed),random(Everyone at once). Default:preserved. - Expires at
expire_atdate and time - After this moment the request can no longer be signed.
- Email subject
message_subjecttext - A custom subject for the invitation email.
- Email message
message_bodytext - A custom invitation email body. It can use {{template.name}}, {{submission.name}}, {{submitter.link}} and {{account.name}}; include {{submitter.link}} so the signer can open the document.
- Reply-to email
reply_totext - The address signers' replies to the invitation go to.
- BCC the signed copy to
bcc_completedtext - An email address that gets a copy of the signed documents.
- Redirect after signing
completed_redirect_urltext - A web page to send signers to once they have signed.
- Template variables
variablesobject - Values for [[variable]] placeholders in the template, by name.
Outputs
countnumber- How many signers
submission_idtext- The new submission's id
submitterslist- The signers, each with a signing link
Example output
{
"count": 1,
"submission_id": "2001",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
]
}Send template to email addresses
Send a one-signer template to each email address as its own submission - the quickest way to collect the same signature from several people.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
- Email addresses
emailslistRequired - Each address gets its own copy to sign.
- Email the signers
send_emailtrue/false - Email each signer their invitation. Turn off to share the signing links yourself - each signer's 'signing_url' is returned.Default:
true. - Email subject
message_subjecttext - A custom subject for the invitation email.
- Email message
message_bodytext - A custom invitation email body. It can use {{template.name}}, {{submission.name}}, {{submitter.link}} and {{account.name}}; include {{submitter.link}} so the signer can open the document.
Outputs
countnumber- How many submissions were created
submission_idslist- One new submission per email address
submitterslist- The signers, each with a signing link
Example output
{
"count": 1,
"submission_ids": [
"2001"
],
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
]
}Update signer
Change a signer's name, email or phone, pre-fill field values, re-send their invitation, or sign for them via the API. A signer who has completed or declined cannot be changed.
Inputs
- Signer
submitter_idtextRequired - The signer's (submitter's) id. 'Get submission' and 'List signers' return it for each signer.
- Name
nametext - Leave empty to keep it.
- Email
emailtext - Leave empty to keep it.
- Phone
phonetext - In international format, such as +14155550123.
- Field values
valuesobject - Values to pre-fill, by field name. They are merged into what is already filled.
- External id
external_idtext - Your own id for the signer.
- Metadata
metadataobject - Your own key-value data stored on the signer.
- Re-send the invitation email
send_emailtrue/false - Email the signer their invitation again.Default:
false. - Mark as signed
completedtrue/false - Complete the signer's part via the API, using the values given. This cannot be undone.Default:
false. - Email subject
message_subjecttext - A custom subject for the invitation email.
- Email message
message_bodytext - A custom invitation email body. It can use {{template.name}}, {{submission.name}}, {{submitter.link}} and {{account.name}}; include {{submitter.link}} so the signer can open the document.
- Reply-to email
reply_totext - The address signers' replies to the invitation go to.
- Redirect after signing
completed_redirect_urltext - A web page to send signers to once they have signed.
Outputs
completed_attext- When they signed, or empty
created_attext- When the signer was added
declined_attext- When they declined, or empty
documentslist- The signer's documents
emailtext- Signer email
external_idtext- Your own id for the signer, if set
idtext- Submitter (signer) id
metadataobject- Your own metadata
nametext- Signer name
opened_attext- When they opened it, or empty
phonetext- Signer phone
roletext- The template role they sign as
sent_attext- When the invitation was sent, or empty
signing_urltext- The signer's signing link, when returned
slugtext- Signer slug, used in the signing link
statustext- awaiting, sent, opened, completed or declined
submission_idtext- The submission the signer belongs to
templateobject- The template, when returned
updated_attext- When the signer last changed
uuidtext- Signer uuid
valueslist- Filled-in field values
Example output
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}Update submission
Rename a signature request, change or remove its expiry, or archive or restore it.
Inputs
- Submission
submission_idtextRequired - The submission's id, or its link from DocuSeal such as https://docuseal.com/submissions/456. 'List submissions' finds one.
- New name
nametext - Leave empty to keep the current name.
- Expires at
expire_atdate and time - A new moment after which it can no longer be signed.
- Remove the expiry
clear_expirationtrue/false - Let it be signed at any time.Default:
false. - Archive
archivetext - Archive the submission, restore it from the archive, or leave it.One of:
keep(Leave as it is),archive,unarchive(Restore from archive). Default:keep.
Outputs
archivedtrue/false- Whether it is archived
archived_attext- When it was archived, or empty
audit_log_urltext- Audit log PDF link, once completed
combined_document_urltext- Combined signed PDF link, once completed
completed_attext- When everyone had signed, or empty
created_attext- When it was created
created_byobject- Who sent it
documentslist- Its documents (signed once completed)
eventslist- What has happened to it, oldest first
expire_attext- When it expires, or empty
idtext- Submission id
nametext- Submission name, or empty
slugtext- Submission slug
sourcetext- How it was created, such as api, invite or link
statustext- pending, completed, declined or expired
submitterslist- The signers
submitters_ordertext- preserved or random
templateobject- The template it was sent from
updated_attext- When it last changed
variablesobject- Template variables used
Example output
{
"archived": false,
"archived_at": "",
"audit_log_url": "",
"combined_document_url": "",
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"created_by": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"documents": [],
"events": [
{
"event_timestamp": "2026-10-12T10:01:00.000Z",
"event_type": "send_email",
"id": "4001",
"submitter_id": "3001"
}
],
"expire_at": "",
"id": "2001",
"name": "Service Agreement - Jordan Smith",
"slug": "VyL4szTwYoSvXq",
"source": "api",
"status": "pending",
"submitters": [
{
"completed_at": "",
"created_at": "2026-10-12T10:01:00.000Z",
"declined_at": "",
"documents": [],
"email": "signer@example.com",
"external_id": "",
"id": "3001",
"metadata": {},
"name": "Jordan Smith",
"opened_at": "",
"phone": "",
"role": "First Party",
"sent_at": "2026-10-12T10:01:00.000Z",
"signing_url": "https://docuseal.com/s/pAMimKcyrLjqVt",
"slug": "pAMimKcyrLjqVt",
"status": "sent",
"submission_id": "2001",
"template": {
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"uuid": "884d545b",
"values": [
{
"field": "Full Name",
"value": "Jordan Smith"
}
]
}
],
"submitters_order": "preserved",
"template": {
"external_id": "",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement"
},
"updated_at": "2026-10-12T10:01:00.000Z",
"variables": {}
}Update template
Rename a template, move it to another folder, rename or add signer roles, or archive or restore it. Returns the whole updated template.
Inputs
- Template
template_idtextRequired - Pick a template, or enter its id or its link from DocuSeal, such as https://docuseal.com/templates/123.
- New name
nametext - Leave empty to keep the current name.
- Move to folder
folder_nametext - Leave empty to keep it where it is.
- Signer roles
roleslist - Role names, in order. Existing roles are renamed by position and extra names are added as new roles.
- Archive
archivetext - Archive the template, restore it from the archive, or leave it.One of:
keep(Leave as it is),archive,unarchive(Restore from archive). Default:keep.
Outputs
archivedtrue/false- Whether the template is archived
archived_attext- When it was archived, or empty
authorobject- Who created it
created_attext- When it was created
documentslist- The template's documents
external_idtext- Your own id for the template, if set
field_nameslist- Field names, the keys a signer's 'values' can use
fieldslist- Fillable fields
folder_idtext- Folder id
folder_nametext- Folder name
idtext- Template id
nametext- Template name
roleslist- Signer role names, such as 'First Party'
shared_linktrue/false- Whether its public signing link is on
slugtext- Template slug, used in its public link
sourcetext- How it was created: native, api, embed or mcp
updated_attext- When it was last changed
Example output
{
"archived": false,
"archived_at": "",
"author": {
"email": "alex@example.com",
"id": "1",
"name": "Alex Doe"
},
"created_at": "2026-10-12T10:00:00.000Z",
"documents": [
{
"filename": "service-agreement",
"id": "5001",
"preview_image_url": "https://docuseal.com/file/hash/0.jpg",
"url": "https://docuseal.com/file/hash/service-agreement.pdf",
"uuid": "d94e615f"
}
],
"external_id": "",
"field_names": [
"Full Name",
"Signature"
],
"fields": [
{
"name": "Full Name",
"required": true,
"role": "First Party",
"type": "text",
"uuid": "594bdf04"
},
{
"name": "Signature",
"required": true,
"role": "First Party",
"type": "signature",
"uuid": "a1b2c3d4"
}
],
"folder_id": "1",
"folder_name": "Default",
"id": "1001",
"name": "Service Agreement",
"roles": [
"First Party"
],
"shared_link": true,
"slug": "iRgjDX7WDK6BRo",
"source": "api",
"updated_at": "2026-10-12T10:00:00.000Z"
}