API Overview
The SignEngine API is a RESTful API that allows you to programmatically create, manage, and track digital signature workflows.
Base URL
https://api.signengine.dev/api/v1
Authentication
All API requests require authentication using an API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
See Authentication for more details.
Request Format
The API accepts JSON-encoded request bodies:
POST /api/v1/envelopes HTTP/1.1
Host: api.signengine.dev
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"name": "Contract Agreement",
"recipients": [...]
}
Response Format
All responses are JSON-encoded with the following structure:
Success Response
{
"data": {
"id": "env_1234567890",
"name": "Contract Agreement",
"status": "sent",
...
}
}
Error Response
{
"error": {
"code": "validation_error",
"message": "Invalid request parameters",
"details": {
"recipients": "At least one recipient is required"
}
}
}
HTTP Status Codes
| Status Code | Description |
|---|---|
200 | Success |
201 | Created |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid or missing API key |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Resource doesn't exist |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
Core Resources
Envelopes
Envelopes are the main container for documents and signature workflows.
GET /api/v1/envelopes
POST /api/v1/envelopes
GET /api/v1/envelopes/{id}
PATCH /api/v1/envelopes/{id}
DELETE /api/v1/envelopes/{id}
POST /api/v1/envelopes/{id}/send
Recipients
Recipients are the people who need to sign or review documents.
GET /api/v1/envelopes/{envelopeId}/recipients
POST /api/v1/envelopes/{envelopeId}/recipients
GET /api/v1/envelopes/{envelopeId}/recipients/{id}
PATCH /api/v1/envelopes/{envelopeId}/recipients/{id}
DELETE /api/v1/envelopes/{envelopeId}/recipients/{id}
Templates
Templates allow you to reuse envelope configurations.
GET /api/v1/templates
POST /api/v1/templates
GET /api/v1/templates/{id}
PATCH /api/v1/templates/{id}
DELETE /api/v1/templates/{id}
Webhooks
Webhooks notify your application of events in real-time.
GET /api/v1/webhooks
POST /api/v1/webhooks
GET /api/v1/webhooks/{id}
PATCH /api/v1/webhooks/{id}
DELETE /api/v1/webhooks/{id}
Pagination
List endpoints support pagination using limit and offset parameters:
GET /api/v1/envelopes?limit=25&offset=0
Response includes pagination metadata:
{
"data": [...],
"pagination": {
"total": 150,
"limit": 25,
"offset": 0,
"hasMore": true
}
}
Rate Limiting
API requests are rate-limited based on your plan:
- Free: 100 requests/minute
- Pro: 1,000 requests/minute
- Enterprise: Custom limits
Rate limit headers are included in every response:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1609459200
Learn more about rate limiting →
Versioning
The API is versioned via the URL path (/api/v1). We maintain backward compatibility within major versions.
SDKs
We provide official SDKs for popular languages:
Next Steps
- Authentication - Learn about API authentication
- Envelope Endpoints - Create and manage envelopes
- Error Handling - Handle API errors gracefully
- Webhooks - Set up real-time notifications