API Overview
The VisiSign API is a REST API that uses JSON for request and response bodies. All endpoints require authentication via API key.
Base URL
Section titled “Base URL”https://api.visisign.app/v1Authentication
Section titled “Authentication”Include your API key as a Bearer token in the Authorization header:
Authorization: Bearer vsk_your_key_hereSee Authentication for details on key management.
Content types
Section titled “Content types”- JSON requests: Set
Content-Type: application/json - File uploads: Use
multipart/form-data - Responses: Always
application/json
ID prefixes
Section titled “ID prefixes”Resources use prefixed IDs for clarity:
| Prefix | Resource |
|---|---|
sr_ | Signature request |
sig_ | Signer |
tmpl_ | Template |
Pagination
Section titled “Pagination”List endpoints return paginated results:
{ "signature_requests": [...], "pagination": { "page": 1, "per_page": 20, "total_pages": 5, "total_count": 100 }}| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
page | integer | 1 | — | Page number |
per_page | integer | 20 | 100 | Results per page |
Form data
Section titled “Form data”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.
Timestamps
Section titled “Timestamps”All timestamps are ISO 8601 strings in UTC:
2026-03-04T12:00:00ZRate limits
Section titled “Rate limits”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.
| Limit | Threshold | Reset |
|---|---|---|
| Hourly sends | 50 envelopes per hour | Rolling 1-hour window |
| Daily sends (API plan) | 1,000 envelopes per day | Rolling 24-hour window |
| Daily sends (Individual plan) | 50 envelopes per day | Rolling 24-hour window |
| Daily sends (Team plan) | Unlimited | — |
| Per-recipient | 5 requests per hour to the same email | Rolling 1-hour window |
| API calls (Individual plan) | 100 calls per month | Monthly reset |
| API calls (Team plan) | 1,000 calls per month | Monthly 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.
Errors
Section titled “Errors”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.