API reference
Every operation in the Signclad eSignature API, generated from openapi/signclad.v1.yaml at build time: 113 operations across 11 groups, each on a page of its own.
Updated
On this page
Signclad is a REST eSignature API: one document signing API behind the web app, the embedded
iframes, and the MCP server. Send a PDF for electronic signature with
POST /documents, reuse a layout with POST /document_templates/documents,
and learn what happened from webhooks. Authenticate every request with
X-Api-Key.
- Interactive reference The same document in Scalar: try a call, switch client languages, browse schemas.
- OpenAPI 3.1 document (YAML) The contract itself. It validates requests, generates clients, and defines the MCP tool schemas.
- OpenAPI 3.1 document (JSON) Byte-for-byte the same document, for tools that only read JSON.
- Getting started A key, a document, and a webhook in about ten minutes, with curl, Node, and Python.
| Server | Base URL |
|---|---|
| Production. Sandbox is a property of the key (`sk_test_`), not a separate host. | https://api.signclad.com/api/v1 |
Operations marked Extension are additive: they are not part of the
compatibility surface and a client that ignores them behaves exactly as before. Two groups —
OAuth and SCIM — live on the API root rather than under /api/v1; each operation
states the base URL it belongs to.
Documents
Create, send, inspect, and download documents.
| Method | Path | Summary |
|---|---|---|
| GET | /documents | List documents Extension |
| POST | /documents | Create a document |
| GET | /documents/{id} | Get a document |
| PATCH | /documents/{id} | Update a draft document Extension |
| DELETE | /documents/{id} | Delete a document |
| POST | /documents/{id}/send | Update and send a draft |
| POST | /documents/{id}/remind | Send a reminder |
| PATCH | /documents/{id}/recipients | Update recipients |
| PATCH | /documents/{id}/authentication | Update recipient authentication |
| GET | /documents/{id}/completed_pdf | Download the completed PDF |
| GET | /documents/{id}/nom151_certificate | Download the NOM-151 constancia |
| GET | /documents/{id}/events | List document events Extension |
| GET | /documents/{id}/attachments | List uploaded attachments Extension |
| POST | /documents/{id}/cancel | Cancel a document Extension |
| POST | /documents/{id}/complete | Mark a document manually completed Extension |
| POST | /documents/{id}/recipients/{recipient_id}/reassign | Reassign a recipient Extension |
| POST | /documents/{id}/recipients/{recipient_id}/signing_url | Regenerate a signing URL Extension |
| POST | /documents/{id}/recipients/{recipient_id}/in_person_session | Start an in-person signing session Extension |
| POST | /documents/{id}/embedded_edit_url | Regenerate an embedded builder URL Extension |
| PUT | /documents/{id}/files/{position} | Replace a file on a draft Extension |
| GET | /files | List reusable stored files |
| POST | /files | Upload a file Extension |
| GET | /verify/{hash} | Verify a sealed file by hash Extension |
| DELETE | /files/{id}/stored | Delete an unused stored file |
| GET | /labels | List labels Extension |
| POST | /labels | Create a label Extension |
| PATCH | /labels/{id} | Rename or recolor a label Extension |
| DELETE | /labels/{id} | Delete a label Extension |
| PUT | /documents/{id}/labels | Set a document's labels Extension |
Templates
Reusable documents with placeholders instead of recipients.
| Method | Path | Summary |
|---|---|---|
| GET | /document_templates | List templates Extension |
| POST | /document_templates | Create a template |
| GET | /document_templates/{id} | Get a template |
| PUT | /document_templates/{id} | Update template settings |
| PATCH | /document_templates/{id} | Save a template editor snapshot |
| DELETE | /document_templates/{id} | Delete a template |
| POST | /document_templates/documents | Create a document from templates |
| POST | /document_templates/{id}/duplicate | Duplicate a template Extension |
| POST | /document_templates/{id}/embedded_edit_url | Regenerate a template builder URL Extension |
| PUT | /document_templates/{id}/files/{position} | Replace a file on a template Extension |
| GET | /document_templates/{id}/revisions | List template revisions Extension |
| POST | /document_templates/{id}/revisions/{number}/restore | Restore a template revision Extension |
| PUT | /document_templates/{id}/labels | Set a template's labels Extension |
Bulk sends
Send one or more templates to many recipients from a CSV.
| Method | Path | Summary |
|---|---|---|
| GET | /bulk_sends | List bulk sends |
| POST | /bulk_sends | Start a bulk send |
| GET | /bulk_sends/csv_template | Get a CSV template |
| POST | /bulk_sends/validate_csv | Validate a bulk send CSV |
| GET | /bulk_sends/{id} | Get a bulk send |
| GET | /bulk_sends/{id}/documents | List a bulk send's documents |
Hooks
Compatibility webhook registration. One callback URL receives every event.
| Method | Path | Summary |
|---|---|---|
| GET | /hooks | List webhook callbacks |
| POST | /hooks | Create a webhook callback |
| DELETE | /hooks/{id} | Delete a webhook callback |
| GET | /webhook_endpoints | List webhook endpoints Extension |
| POST | /webhook_endpoints | Create a webhook endpoint Extension |
| GET | /webhook_endpoints/{id} | Get a webhook endpoint Extension |
| PUT | /webhook_endpoints/{id} | Update a webhook endpoint (PUT alias) Extension |
| PATCH | /webhook_endpoints/{id} | Update a webhook endpoint Extension |
| DELETE | /webhook_endpoints/{id} | Delete a webhook endpoint Extension |
| POST | /webhook_endpoints/{id}/rotate_secret | Rotate the signing secret Extension |
| GET | /webhook_endpoints/{id}/health | Get endpoint health Extension |
| POST | /webhook_endpoints/{id}/ping | Send a test event Extension |
| GET | /webhook_endpoints/{id}/deliveries | List deliveries Extension |
| POST | /webhook_endpoints/{id}/deliveries/{delivery_id}/replay | Replay a delivery Extension |
| GET | /events | Get the event catalog Extension |
| POST | /webhook_endpoints/{id}/enable | Re-enable an endpoint Extension |
| GET | /webhook_endpoints/{id}/deliveries/{delivery_id} | Get one delivery Extension |
| POST | /webhook_endpoints/{id}/replay | Replay a range of deliveries Extension |
| GET | /webhook_inbox | List debugging inboxes Extension |
| POST | /webhook_inbox | Create a debugging inbox Extension |
| GET | /webhook_inbox/{id}/requests | Read what an inbox recorded Extension |
| POST | /inbox/{token} | Post anything to a debugging inbox Extension |
API applications
Embedded branding and callback configuration for partner applications.
| Method | Path | Summary |
|---|---|---|
| GET | /api_applications/{id} | Get an API application |
| PATCH | /api_applications/{id} | Update an API application Extension |
| DELETE | /api_applications/{id} | Delete an API application |
| GET | /api_applications | List API applications Extension |
| POST | /api_applications | Create an API application Extension |
| POST | /api_applications/{id}/logo | Upload an application logo Extension |
| DELETE | /api_applications/{id}/logo | Remove an application logo Extension |
Account
The authenticated membership — who the credential belongs to, and which account and workspace it acts in — plus the workspace address book and the email suppression list.
| Method | Path | Summary |
|---|---|---|
| GET | /me | Get the current membership |
| GET | /email_suppressions | List suppressed addresses Extension |
| DELETE | /email_suppressions/{id} | Lift a suppression Extension |
| GET | /contacts | List contacts Extension |
| POST | /contacts | Create or update a contact Extension |
| GET | /contacts/suggest | Suggest contacts Extension |
| PATCH | /contacts/{id} | Update a contact Extension |
| DELETE | /contacts/{id} | Delete a contact Extension |
| POST | /contacts/import | Import contacts from a CSV Extension |
Files
Upload a file once and reference it by id everywhere a file is accepted.
| Method | Path | Summary |
|---|---|---|
| GET | /files/{id} | Get a file Extension |
| DELETE | /files/{id} | Release an uploaded file Extension |
| GET | /files/{id}/content | Download a file's normalized PDF Extension |
| POST | /files/{id}/retry | Retry file preparation Extension |
Accounts
The workspaces a credential can reach, the workspace audit log, and SCIM user provisioning. Every operation here is an extension; no compatibility client calls any of it.
| Method | Path | Summary |
|---|---|---|
| GET | /workspaces | List workspaces Extension |
| GET | /audit_log | List the workspace audit log Extension |
| POST | /sso/scim/token | Issue a SCIM token Extension |
| GET | /scim/v2/Users | SCIM — list users Extension |
| POST | /scim/v2/Users | SCIM — create a user Extension |
| GET | /scim/v2/Users/{id} | SCIM — get a user Extension |
| PATCH | /scim/v2/Users/{id} | SCIM — deactivate or reactivate a user Extension |
| DELETE | /scim/v2/Users/{id} | SCIM — deprovision a user Extension |
OAuth
The OAuth 2.1 authorization server that third-party applications integrate against. The protocol endpoints live on the API root, unversioned, because the RFCs are their contract and the metadata document advertises them there.
| Method | Path | Summary |
|---|---|---|
| GET | /.well-known/oauth-authorization-server | Authorization server metadata Extension |
| GET | /.well-known/oauth-protected-resource | Protected resource metadata Extension |
| GET | /oauth/authorize | Show the consent screen Extension |
| POST | /oauth/token | Exchange a grant for a token Extension |
| POST | /oauth/register | Register a client dynamically Extension |
| GET | /oauth/register/{client_id} | Read a dynamic registration Extension |
| POST | /oauth/revoke | Revoke a token Extension |
| GET | /.well-known/oauth-authorization-server/{tail} | Authorization server metadata, resource-suffixed |
| GET | /.well-known/oauth-protected-resource/{tail} | Protected resource metadata, resource-suffixed |
Branding
Workspace branding and API application branding — the same three layers, two surfaces.
| Method | Path | Summary |
|---|---|---|
| GET | /workspace/branding | Get workspace branding Extension |
| PATCH | /workspace/branding | Update workspace branding Extension |
| POST | /workspace/branding/logo | Upload the workspace logo Extension |
Template links
The settings behind a template's public fill link: whether it is on, what it asks for, and the token that addresses it. The fill link itself is a page a signer opens, not an API call.
| Method | Path | Summary |
|---|---|---|
| GET | /template_links/{template} | Get a template's link settings Extension |
| PUT | /template_links/{template} | Update a template's link settings Extension |
| POST | /template_links/{template}/rotate | Rotate a template's link Extension |