Template links API

The public fill link, and the settings behind it.

Updated

On this page

5 operations, generated from openapi/signclad.v1.yaml. Try them in the interactive reference, browse every endpoint group, or read the guides for the prose version.

GET /t/{token}

Read a public fill link Extension

What a stranger holding the link is allowed to see before they start: whose form it is, what role they are filling, and what the page must ask them for. Unauthenticated — the token is the credential. Deliberately absent: the template id, the workspace id, the field list, the other recipients, and any metadata. A link is permission to start a document, not to read one. Every failure — unknown token, disabled link, expired link, a single-use link already spent, a template that is no longer available — is the same 404, with meta.message reading Couldn't find the page requested.

Base URL
https://api.signclad.com/api/v1
Authentication
None — this operation is public

Path parameters

Name Type Description
token string The link token. Deliberately the shortest path in v1 — this URL gets printed, pasted, and typed.

Responses

Status Description
200 What the intake page needs.
404 No such record for this workspace. Signclad never answers 404 for a record that exists: a 404 is authoritative.
422 The request was well formed; the account may not make it right now.…
429 Rate limited. The message contains the literal 429 Too Many Requests for compatibility with clients that match on it.…

Example request

curl -X GET https://api.signclad.com/api/v1/t/{token} \
  -H "X-Api-Key: $SIGNCLAD_API_KEY"

POST /t/{token}/start

Start a document from a public link Extension

Creates the document and returns a signing session for the person who just filled the form, so the page can go straight into signing without an email round trip. Two limiters apply: the shared 50/min unauthenticated bucket protects Signclad, and a per-token limiter protects one customer's document allowance from one attacker who found their link. name and email are required only when the link says so — read require_name_email from GET /t/{token} rather than assuming.

Base URL
https://api.signclad.com/api/v1
Authentication
None — this operation is public

Path parameters

Name Type Description
token string

Request body

application/json

Property Type Required Description
captcha_token string or null Optional Required when captcha_required is set on the link.
email string or null Optional
name string or null Optional

Responses

Status Description
201 The new document and a session to sign it with.
404 No such record for this workspace. Signclad never answers 404 for a record that exists: a 404 is authoritative.
422 errors.captcha_token reads `The captcha could not be verified.…
429 Rate limited. The message contains the literal 429 Too Many Requests for compatibility with clients that match on it.…

Example request

curl -X POST https://api.signclad.com/api/v1/t/{token}/start \
  -H "X-Api-Key: $SIGNCLAD_API_KEY"

Get a template's link settings Extension

The public URL and the rules behind it. A link exists from the moment the template does; it is enabled: false until somebody turns it on.

Base URL
https://api.signclad.com/api/v1
Authentication
API key or OAuth 2.1 access token

Path parameters

Name Type Description
template string (uuid) The template's id.

Responses

Status Description
200 The link and its settings.
401 Missing or invalid credentials. Unauthenticated requests are rate limited at 50 per minute.…
403 Authenticated, but not allowed to do this: an insufficient role, a credential type the route refuses, an unenrolled second factor, or a signer acting out of turn. meta.error always says which.…
404 No such record for this workspace. Signclad never answers 404 for a record that exists: a 404 is authoritative.
422 The request was well formed; the account may not make it right now.…

Example request

curl -X GET https://api.signclad.com/api/v1/template_links/{template} \
  -H "X-Api-Key: $SIGNCLAD_API_KEY"

Update a template's link settings Extension

A partial merge despite being a PUT: only the keys present change. redirect_url must be HTTPS. An expires_at in the past is accepted — it simply makes the link unusable, which is a reasonable way to switch one off.

Base URL
https://api.signclad.com/api/v1
Authentication
API key or OAuth 2.1 access token

Path parameters

Name Type Description
template string (uuid) The template's id.

Request body

application/json

Property Type Required Description
enabled boolean Optional A link exists as soon as the template does, switched off.
expires_at string or null Optional A time in the past is accepted, and makes the link unusable.
notify_sender boolean Optional
redirect_url string or null Optional Must be HTTPS.
require_name_email boolean Optional
single_use boolean Optional

Responses

Status Description
200 The updated link.
401 Missing or invalid credentials. Unauthenticated requests are rate limited at 50 per minute.…
403 Authenticated, but not allowed to do this: an insufficient role, a credential type the route refuses, an unenrolled second factor, or a signer acting out of turn. meta.error always says which.…
404 No such record for this workspace. Signclad never answers 404 for a record that exists: a 404 is authoritative.
422 Validation failed. errors maps a field name to a message string, or to an object keyed by an error code or by a per-item key. Values are never arrays.

Example request

curl -X PUT https://api.signclad.com/api/v1/template_links/{template} \
  -H "X-Api-Key: $SIGNCLAD_API_KEY"

POST /template_links/{template}/rotate

Rotate a template's link Extension

Issues a new token and kills the old URL immediately. This is the answer to a link that leaked: the settings survive, the address does not.

Base URL
https://api.signclad.com/api/v1
Authentication
API key or OAuth 2.1 access token

Path parameters

Name Type Description
template string (uuid)

Responses

Status Description
200 The link, at its new address.
401 Missing or invalid credentials. Unauthenticated requests are rate limited at 50 per minute.…
403 Authenticated, but not allowed to do this: an insufficient role, a credential type the route refuses, an unenrolled second factor, or a signer acting out of turn. meta.error always says which.…
404 No such record for this workspace. Signclad never answers 404 for a record that exists: a 404 is authoritative.
422 The request was well formed; the account may not make it right now.…

Example request

curl -X POST https://api.signclad.com/api/v1/template_links/{template}/rotate \
  -H "X-Api-Key: $SIGNCLAD_API_KEY"