Skip to content

API Overview

The VisiSign API is a REST API that uses JSON for request and response bodies. All endpoints require authentication via API key.

https://api.visisign.app/v1

Include your API key as a Bearer token in the Authorization header:

Authorization: Bearer vsk_your_key_here

See Authentication for details on key management.

  • JSON requests: Set Content-Type: application/json
  • File uploads: Use multipart/form-data
  • Responses: Always application/json

Resources use prefixed IDs for clarity:

PrefixResource
sr_Signature request
sig_Signer
tmpl_Template

List endpoints return paginated results:

{
"signature_requests": [...],
"pagination": {
"page": 1,
"per_page": 20,
"total_pages": 5,
"total_count": 100
}
}
ParameterTypeDefaultMaxDescription
pageinteger1Page number
per_pageinteger20100Results per page

When fields have a mapping_key, VisiSign extracts the signer-entered values into the form_data object on the signature request. This is available on completed requests and in signature_request.completed webhook payloads.

{
"form_data": {
"taxpayer_name": "Jane Smith",
"tin": "123-45-6789"
}
}

Fields without a mapping_key are not included. See Webhooks for details.

All timestamps are ISO 8601 strings in UTC:

2026-03-04T12:00:00Z

The API enforces several rate limits to prevent abuse. If you exceed any limit, you’ll receive a 429 Too Many Requests response. Back off and retry after a short delay.

LimitThresholdReset
Hourly sends50 envelopes per hourRolling 1-hour window
Daily sends (API plan)1,000 envelopes per dayRolling 24-hour window
Daily sends (Individual plan)50 envelopes per dayRolling 24-hour window
Daily sends (Team plan)Unlimited
Per-recipient5 requests per hour to the same emailRolling 1-hour window
API calls (Individual plan)100 calls per monthMonthly reset
API calls (Team plan)1,000 calls per monthMonthly reset
API calls (API plan)Unlimited

New accounts (less than 30 days old) are limited to 10 signers per document. After 30 days, the limit increases to 50 signers per document.

Higher limits are available on request — contact support.

All error responses follow a consistent format:

{
"error": {
"type": "not_found",
"message": "Signature request not found."
}
}

See Errors for the full list of error types.