Account API
The authenticated membership, its user, account, and workspace.
Updated
On this page
- GET /me
- PATCH /me
- GET /ping
- GET /email_suppressions
- DELETE /email_suppressions/{id}
- GET /me/email_change
- POST /me/email
- DELETE /me/email
- POST /me/email/confirm/{token}
- GET /me/notifications
- PUT /me/notifications
- GET /me/signatures
- POST /me/signatures
- DELETE /me/signatures/{id}
- GET /contacts
- POST /contacts
- GET /contacts/suggest
- PATCH /contacts/{id}
- DELETE /contacts/{id}
- POST /contacts/import
- GET /data_exports
- POST /data_exports
- GET /data_exports/{id}
23 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
/meGet the current membership - PATCH
/meUpdate your profile - GET
/pingLiveness check - GET
/email_suppressionsList suppressed addresses - DELETE
/email_suppressions/{id}Lift a suppression - GET
/me/email_changeGet the pending email change - POST
/me/emailRequest an email change - DELETE
/me/emailCancel a pending email change - POST
/me/email/confirm/{token}Confirm an email change - GET
/me/notificationsGet notification preferences - PUT
/me/notificationsUpdate notification preferences - GET
/me/signaturesList saved signatures - POST
/me/signaturesSave a signature - DELETE
/me/signatures/{id}Delete a saved signature - GET
/contactsList contacts - POST
/contactsCreate or update a contact - GET
/contacts/suggestSuggest contacts - PATCH
/contacts/{id}Update a contact - DELETE
/contacts/{id}Delete a contact - POST
/contacts/importImport contacts from a CSV - GET
/data_exportsList data exports - POST
/data_exportsRequest a data export - GET
/data_exports/{id}Get a data export
GET /me
Get the current membership
The membership the credential resolves to, with its user, account, workspace, and contact. Use it to check which workspace an API key belongs to.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Responses
| Status | Description |
|---|---|
200 | The membership. |
401 | Missing or invalid credentials. Unauthenticated requests are rate limited at 50 per minute.… |
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/me \
-H "X-Api-Key: $SIGNCLAD_API_KEY" Example response (200)
{
"id": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"role": "owner",
"archived": false,
"user": {
"id": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d",
"name": "Bryce Matheson",
"first_name": "Bryce",
"last_name": "Matheson",
"has_google_registration": false,
"email": "[email protected]",
"locale": "en",
"timezone": "America/Denver"
},
"account": {
"id": "9e0f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"plan_tier": "business",
"active_templates": 12,
"can_create_template": true,
"can_create_tracking_document": true,
"can_create_completion_document": true,
"api_documents_included": 19,
"active_users": [
{
"id": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d",
"name": "Bryce Matheson",
"email": "[email protected]",
"role": "owner"
}
]
},
"workspace": {
"id": "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
"name": "Acme Lending",
"test_mode": false
},
"contact": {
"id": "6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9a0b1c",
"name": "Bryce Matheson",
"email": "[email protected]",
"company": "Acme Lending",
"title": "Operations",
"phone": "+14155550142"
}
} PATCH /me
Update your profile Extension
Name, locale, and timezone. The address is not here — changing where sign-in links go goes
through POST /me/email and needs the password.
name and the two halves are kept consistent by one resolver: send first_name or
last_name and they win, with name recomposed; send only name and the halves are
re-derived by splitting on the first space. People only.
Returns the same body as GET /me.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
first_name | string or null | Optional | |
last_name | string or null | Optional | |
locale | string or null | Optional | A language tag such as en or en-GB. |
name | string | Optional | |
timezone | string or null | Optional | An IANA name such as America/Denver. |
Responses
| Status | Description |
|---|---|
200 | The membership, as GET /me returns it. |
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.… |
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 PATCH https://api.signclad.com/api/v1/me \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /ping
Liveness check Extension
Unauthenticated liveness check for the API surface itself. It touches no tenancy and no
database, so a 200 here with a 401 elsewhere means the credential is the problem.
- Base URL
https://api.signclad.com/api/v1- Authentication
- None — this operation is public
Responses
| Status | Description |
|---|---|
200 | The API is up. |
Example request
curl -X GET https://api.signclad.com/api/v1/ping \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /email_suppressions
List suppressed addresses Extension
Addresses this workspace can no longer mail, and why. A suppression list nobody can read
is a black hole: a sender whose recipient bounced once should be able to see why the
later invitations are not arriving.
Owner and admin only — the list is a list of the workspace's recipients' email
addresses. An API key is treated as an admin credential, matching GET /me. Released
rows stay readable but are out of the default listing, which is about what is blocked
now.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
email | string (email) | Optional | Exact address, normalized before matching. |
reason | string | Optional | |
include_released | boolean | Optional | Include suppressions that have already been lifted. |
cursor | string | Optional | Opaque cursor from a previous response's next_cursor. |
limit | integer | Optional | Items per page. |
Responses
| Status | Description |
|---|---|
200 | A page of suppressions, newest first. |
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.… |
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/email_suppressions \
-H "X-Api-Key: $SIGNCLAD_API_KEY" DELETE /email_suppressions/{id}
Lift a suppression Extension
Lets Signclad mail the address again. The row is kept and marked released rather than
deleted: releasing an address that hard bounced twice is a different decision from
releasing one that bounced once, and a delete would hide the difference.
A suppression in another workspace, or one already released, is a 404 — never a 403,
which would confirm the id exists somewhere.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Path parameters
| Name | Type | Description |
|---|---|---|
id | string (uuid) | The suppression's id. |
Responses
| Status | Description |
|---|---|
204 | Released. |
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. |
429 | Rate limited. The message contains the literal 429 Too Many Requests for compatibility with clients that match on it.… |
Example request
curl -X DELETE https://api.signclad.com/api/v1/email_suppressions/{id} \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /me/email_change
Get the pending email change Extension
Always 200, with all three fields null when nothing is pending — a settings page should
not have to treat "no pending change" as an error. People only.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Responses
| Status | Description |
|---|---|
200 | The pending change, or nulls. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/me/email_change \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /me/email
Request an email change Extension
Starts a change of the address this account signs in with. The current password is
required — an open session is not enough to move where the reset links go.
202 because the address has not changed yet: a link goes to the new address, and both
addresses are notified. Requesting again supersedes the previous pending change. A
Google-only account must set a password first.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
current_password | string | Required | |
email | string (email) | Required |
Responses
| Status | Description |
|---|---|
202 | A confirmation link is on its way. |
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.… |
422 | errors.current_password reads That password is not correct. or Set a password before changing the address this account signs in with.; errors.email reads `That is already the address on this a… |
Example request
curl -X POST https://api.signclad.com/api/v1/me/email \
-H "X-Api-Key: $SIGNCLAD_API_KEY" DELETE /me/email
Cancel a pending email change Extension
Idempotent, and 200 with the all-null body rather than 204 — the caller gets the same
shape whether or not there was anything to cancel.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Responses
| Status | Description |
|---|---|
200 | Nothing is pending any more. |
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.… |
Example request
curl -X DELETE https://api.signclad.com/api/v1/me/email \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /me/email/confirm/{token}
Confirm an email change Extension
Completes the change. Unauthenticated by design — the person clicking the link may be in a different browser from the one that asked. A bad signature, a missing row, and an expired token are one answer, so the link cannot be probed.
- Base URL
https://api.signclad.com/api/v1- Authentication
- None — this operation is public
Path parameters
| Name | Type | Description |
|---|---|---|
token | string | The signed token from the confirmation email. It is the whole credential. |
Responses
| Status | Description |
|---|---|
200 | Confirmed. This body carries two fields the other three operations do not: confirmed and the new email. |
422 | errors.token reads `This confirmation link is no longer valid.… |
Example request
curl -X POST https://api.signclad.com/api/v1/me/email/confirm/{token} \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /me/notifications
Get notification preferences Extension
Per person and per workspace — the same person can want different mail from two workspaces. Which workspace is decided by the credential, never by the body. Always complete: defaults are filled in rather than omitted.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Responses
| Status | Description |
|---|---|
200 | The preferences. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/me/notifications \
-H "X-Api-Key: $SIGNCLAD_API_KEY" PUT /me/notifications
Update notification preferences Extension
A merge, despite the verb: keys left out keep their value, so a client that knows about fewer switches than the server does cannot silently reset the rest. Unknown keys are ignored.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
digest | string | Optional | |
document_bounced | boolean | Optional | |
document_completed | boolean | Optional | |
document_declined | boolean | Optional | |
document_expiring | boolean | Optional | |
document_sent | boolean | Optional | |
document_signed | boolean | Optional | |
document_viewed | boolean | Optional | |
product_updates | boolean | Optional | The only switch that is off to begin with. |
reminders_digest | boolean | Optional | |
team_activity | boolean | Optional | |
webhook_health | boolean | Optional |
Responses
| Status | Description |
|---|---|
200 | The preferences, resolved. |
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.… |
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/me/notifications \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /me/signatures
List saved signatures Extension
A sender's own signatures and initials, default first. Not paginated — nobody has enough of these for it to matter.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Responses
| Status | Description |
|---|---|
200 | The saved signatures. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/me/signatures \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /me/signatures
Save a signature Extension
Three ways in, and the body decides which: a PNG upload in file, a base64 PNG data URL in
data, or text plus an optional font to render one. PNG only, 5 MB.
method and source are the same field under two names, and each accepts both tenses
(draw and drawn). Send either. The first signature of a kind becomes the default
whatever the flag says.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
kind | string | Required | |
data | string or null | Optional | A data:image/png;base64,… URL. |
default | boolean | Optional | |
file | string (binary) | Optional | Multipart only. PNG, at most 5 MB. |
font | string or null | Optional | |
is_default | boolean | Optional | Alias of default; either sets it. |
method | string | Optional | |
source | string | Optional | Alias of method. |
text | string or null | Optional | The name to render, for a typed signature. |
Responses
| Status | Description |
|---|---|
201 | The saved signature. |
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.… |
422 | Under errors.data for an image that is missing, not a PNG, too large, or unreadable; errors.text for a typed signature with nothing to type; errors.method and errors.kind for values outside th… |
Example request
curl -X POST https://api.signclad.com/api/v1/me/signatures \
-H "X-Api-Key: $SIGNCLAD_API_KEY" DELETE /me/signatures/{id}
Delete a saved signature Extension
Deleting the default promotes the next signature of that kind. Somebody else's id and an id that does not exist answer alike.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Path parameters
| Name | Type | Description |
|---|---|---|
id | string |
Responses
| Status | Description |
|---|---|
204 | Deleted. |
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. |
Example request
curl -X DELETE https://api.signclad.com/api/v1/me/signatures/{id} \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /contacts
List contacts Extension
The workspace's address book, by name. q matches across name, address, company, job title,
and phone. Readable by any role; writing needs send_documents.
limit is clamped rather than refused, so an out-of-range value is quietly corrected.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
q | string | Optional | |
cursor | string | Optional | Opaque cursor from a previous response's next_cursor. |
limit | integer | Optional |
Responses
| Status | Description |
|---|---|
200 | A page of contacts. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/contacts \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /contacts
Create or update a contact Extension
Create-or-update on the address, matched case-insensitively — so importing the same person
twice does not make two rows. It answers 201 either way.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
company | string or null | Optional | |
email | string (email) | Optional | |
job_title | string or null | Optional | |
name | string or null | Optional | |
phone_number | string or null | Optional |
Responses
| Status | Description |
|---|---|
201 | The contact, whether it was created or updated. |
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.… |
422 | errors.email reads Another contact in this workspace already uses that address. |
Example request
curl -X POST https://api.signclad.com/api/v1/contacts \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /contacts/suggest
Suggest contacts Extension
Type-ahead for a recipient field. At most eight results, and a slimmer object than the list: no counts, no timestamps, no pagination.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
q | string | Optional |
Responses
| Status | Description |
|---|---|
200 | Up to eight matches. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/contacts/suggest \
-H "X-Api-Key: $SIGNCLAD_API_KEY" PATCH /contacts/{id}
Update a contact Extension
Only the keys present change.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Path parameters
| Name | Type | Description |
|---|---|---|
id | string |
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
company | string or null | Optional | |
email | string (email) | Optional | |
job_title | string or null | Optional | |
name | string or null | Optional | |
phone_number | string or null | Optional |
Responses
| Status | Description |
|---|---|
200 | The updated contact. |
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 | errors.email reads Another contact in this workspace already uses that address. |
Example request
curl -X PATCH https://api.signclad.com/api/v1/contacts/{id} \
-H "X-Api-Key: $SIGNCLAD_API_KEY" DELETE /contacts/{id}
Delete a contact Extension
A soft delete: documents they are on keep naming them, because an audit trail that forgets who somebody was is not an audit trail.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Path parameters
| Name | Type | Description |
|---|---|---|
id | string |
Responses
| Status | Description |
|---|---|
204 | Deleted. |
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. |
Example request
curl -X DELETE https://api.signclad.com/api/v1/contacts/{id} \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /contacts/import
Import contacts from a CSV Extension
A CSV with an email column; name, company, title, and phone are optional, and each
is matched against a list of spellings, so a file exported from another tool usually just
works. Unrecognized columns are reported, not refused.
200 with a per-row report even when some rows failed — a partial import is the normal
outcome. It only becomes a 422 when nothing could be imported, and then the failures
arrive keyed by row and column under errors.contacts_csv.rows.
update_existing defaults to true: an address already in the book is updated rather
than skipped.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
multipart/form-data
| Property | Type | Required | Description |
|---|---|---|---|
file | string (binary) | Required | CSV, at most 5 MB and 5000 rows. |
update_existing | boolean | Optional |
Responses
| Status | Description |
|---|---|
200 | What was imported, and what was not. |
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.… |
422 | errors.contacts_csv when the file cannot be parsed, has no email column, or has too many rows; errors.contacts_csv.rows.<row>.<column> when every row failed; and errors.base.upload_unreadable… |
Example request
curl -X POST https://api.signclad.com/api/v1/contacts/import \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /data_exports
List data exports Extension
Every export this workspace has asked for, newest first. Owner and admin only — an export is the whole workspace in a zip.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
cursor | string | Optional | Opaque cursor from a previous response's next_cursor. |
limit | integer | Optional |
Responses
| Status | Description |
|---|---|
200 | A page of exports. |
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.… |
Example request
curl -X GET https://api.signclad.com/api/v1/data_exports \
-H "X-Api-Key: $SIGNCLAD_API_KEY" POST /data_exports
Request a data export Extension
Queues a zip of the workspace's documents, templates, contacts, and audit log — omit scope
and it means all four. 202, because the file does not exist yet: poll the export until
status is ready, then use download_url. Exports are kept seven days.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
scope | array of string | Optional |
Responses
| Status | Description |
|---|---|
202 | Queued. |
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.… |
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 POST https://api.signclad.com/api/v1/data_exports \
-H "X-Api-Key: $SIGNCLAD_API_KEY" GET /data_exports/{id}
Get a data export Extension
Poll this until status is ready, then follow download_url.
- Base URL
https://api.signclad.com/api/v1- Authentication
- API key or OAuth 2.1 access token
Path parameters
| Name | Type | Description |
|---|---|---|
id | string |
Responses
| Status | Description |
|---|---|
200 | The export. |
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. |
Example request
curl -X GET https://api.signclad.com/api/v1/data_exports/{id} \
-H "X-Api-Key: $SIGNCLAD_API_KEY"