Headers
x-api-key: YOUR_API_KEY Accept: application/json Query: workspace_uuid, kind=envelope
Response JSON
{
"s": 1,
"m": "Success",
"r": { "items": [] }
}Documentation
Use the WoltSign REST API to create envelopes from templates, manage signers and documents, and receive webhook events from your applications.
REST APIs
Real-time webhooks
Workspace API keys
Workflow automation
Headers
x-api-key: YOUR_API_KEY Accept: application/json Query: workspace_uuid, kind=envelope
Response JSON
{
"s": 1,
"m": "Success",
"r": { "items": [] }
}The WoltSign API allows you to automate envelope workflows, manage documents and signers, and retrieve workspace data programmatically. All API requests should be made over HTTPS. Your API base URL is available in the WoltSign app under Integrations.
WoltSign uses API keys to authenticate requests. Include your API key in the x-api-key header of every request. Create keys from Integrations in the WoltSign app.
Code
x-api-key: YOUR_API_KEYKeep your API keys secure and do not share them publicly.
List envelopes (workflows) in your workspace. Replace YOUR_WORKSPACE_UUID with your workspace ID.
cURL
curl -X GET "YOUR_API_BASE_URL/workflows/list?workspace_uuid=YOUR_WORKSPACE_UUID&kind=envelope&page=1&limit=25" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"Retrieve full details for a single envelope, including documents, signer roles, and field values:
cURL
curl -X GET "YOUR_API_BASE_URL/workflows/by-uuid?uuid=WORKFLOW_UUID" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"Most teams start from a template: create an envelope, then send it.
cURL
curl -X POST "YOUR_API_BASE_URL/workflows/from-template" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspace_uuid": "YOUR_WORKSPACE_UUID",
"template_uuid": "TEMPLATE_UUID",
"title": "Offer letter",
"folder_uuid": "YOUR_FOLDER_UUID",
"roles": [
{
"role_name": "Employee",
"recipient_name": "Jane Doe",
"recipient_email": "jane@example.com"
}
]
}'cURL
curl -X POST "YOUR_API_BASE_URL/workflows/send" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"uuid": "ENVELOPE_UUID_FROM_CREATE"
}'All responses use the WoltSign envelope format. A successful request returns s: 1 with the payload in r. Errors return s: 0 with a message in m.
JSON
{
"s": 1,
"m": "Success",
"r": {
"workspace_uuid": "your-workspace-uuid",
"items": []
}
}A workflow detail response includes nested workflow, documents, roles, and fields arrays:
JSON
{
"s": 1,
"m": "Success",
"r": {
"workflow": {
"uuid": "workflow-uuid",
"title": "Contract",
"progress_status": "completed",
"status_label": "Active"
},
"documents": [
{
"uuid": "document-uuid",
"label": "Agreement.pdf",
"signed_at": "2026-06-13T11:44:00Z",
"is_signed": 1
}
],
"roles": [
{
"uuid": "role-uuid",
"recipient_name": "Jane Doe",
"recipient_email": "jane@example.com",
"status_label": "Completed"
}
],
"fields": [
{
"uuid": "field-uuid",
"role_uuid": "role-uuid",
"document_uuid": "document-uuid",
"label": "Signature",
"field_type": "signature",
"is_signed": 1,
"created_at": "2026-06-13T11:42:00Z",
"client_ip": "103.21.244.10"
}
]
}
}Create and manage envelopes and templates. A workflow contains documents, signer roles, fields, and signing progress. Use kind=envelope for sent envelopes or kind=template for reusable templates.
| Method | Endpoint | Description |
|---|---|---|
| GET | /workflows/list | List workflows in a workspace |
| POST | /workflows/create | Create a new workflow |
| POST | /workflows/from-template | Create an envelope from a template |
| GET | /workflows/by-uuid | Get workflow details (documents, roles, fields) |
| POST | /workflows/details | Update workflow title, space, and settings |
| POST | /workflows/documents-meta | Update document title and signer message |
| POST | /workflows/documents/upload | Upload a document to a workflow |
| DELETE | /workflows/documents/delete | Remove a document from a workflow |
| POST | /workflows/roles | Update signer roles and signing order |
| POST | /workflows/fields | Update fields placed on documents |
| POST | /workflows/finalize | Finalize a workflow before sending |
| POST | /workflows/send | Send envelope to signers |
| POST | /workflows/send-reminder | Send a reminder to pending signers |
| GET | /workflows/signers | List signers and signing progress |
| GET | /workflows/audit-trail | Download audit trail PDF |
| POST | /workflows/audit-trail/generate | Generate audit trail for a completed envelope |
| DELETE | /workflows/delete | Delete a workflow |
| GET | /workflows/coordinates | Get signing fields for a signer (public signing) |
| POST | /workflows/coordinates/sign | Submit a signed field value (public signing) |
Organize envelopes into spaces within a workspace.
| Method | Endpoint | Description |
|---|---|---|
| GET | /folders/list | List spaces |
| POST | /folders/create | Create a space |
| POST | /folders/update | Rename a space |
| DELETE | /folders/delete | Delete a space |
Subscribe to envelope events and receive HTTP callbacks when something happens in your workspace.
| Method | Endpoint | Description |
|---|---|---|
| GET | /workspaces/webhooks/list | List webhooks |
| POST | /workspaces/webhooks/create | Create a webhook |
| DELETE | /workspaces/webhooks/delete | Delete a webhook |
| GET | /workspaces/webhooks/deliveries | List delivery attempts for a webhook |
Create and revoke API keys used to authenticate REST requests.
| Method | Endpoint | Description |
|---|---|---|
| GET | /workspaces/api-keys/list | List API keys |
| POST | /workspaces/api-keys/create | Create an API key |
| POST | /workspaces/api-keys/revoke | Revoke an API key |
Retrieve a timeline of actions for a workflow or other entity.
| Method | Endpoint | Description |
|---|---|---|
| GET | /activity-logs/list | List activity logs (entity_type, entity_uuid, workspace_uuid) |
Workspace-level analytics used by the dashboard and reporting views.
| Method | Endpoint | Description |
|---|---|---|
| GET | /workspaces/analytics/envelopes | Envelope stat cards and sparklines |
| GET | /workspaces/analytics/distribution | Envelope status distribution |
| GET | /workspaces/analytics/trend | Envelope trend over time |
| GET | /workspaces/analytics/performance | Performance metrics |
| GET | /workspaces/analytics/users | User analytics |
| GET | /workspaces/analytics/templates | Template analytics |
| GET | /workspaces/analytics/templates/top | Top templates |
When creating a webhook, subscribe to one or more of these event types. WoltSign sends a POST request to your URL when the event occurs.
| Event | Description |
|---|---|
| envelope.sent | Envelope sent |
| signer.viewed | Signer viewed |
| envelope.signed | Envelope signed |
| envelope.completed | Envelope completed |
| envelope.declined | Envelope declined |
| envelope.voided | Envelope voided |
The API uses standard HTTP status codes. 4xx codes indicate client errors (invalid request, authentication failure), and 5xx codes indicate server errors.
| Code | Description |
|---|---|
| 400 | Bad Request. Invalid parameters. |
| 401 | Unauthorized. Invalid or missing API key. |
| 404 | Not Found. Resource does not exist. |
| 429 | Too Many Requests. Rate limit exceeded. |
| 500 | Internal Server Error. |
API requests are rate limited to ensure fair usage. When you exceed a limit, the API returns a 429 status code.
120
Requests per minute
10,000
Requests per day
200
Burst limit
Create API keys, configure webhooks, and start sending envelopes from your backend with the WoltSign REST API.
Each template in the app includes a prefilled cURL example for your workspace.