API documentation
Automate E-Signing.io with your own code or Zapier: read documents, query shipments including submitted content, and manage contacts.
https://e-signing.io/api/public/v1Every request needs a workspace API key in the header. Create keys in the app under Automations → API. A key is bound to a single workspace.
Authorization: Bearer esk_live_…Limits depend on your subscription plan. Beyond that the API responds with HTTP 429. Every response carries the current state as headers so you can back off cleanly:
| Plan | API keys | Requests/minute | API shipments/day |
|---|---|---|---|
| Free | 1 | 30 | 2,000 |
| Starter | 2 | 60 | 2,000 |
| Pro | 10 | 300 | 2,000 |
| Business | ∞ | 1000 | 2,000 |
- X-RateLimit-Limit — maximum concurrent requests (burst).
- X-RateLimit-Remaining — requests still available in the current window.
- X-RateLimit-Reset — seconds until another request is possible.
- X-RateLimit-Scope — which bucket applied: key, ip or daily.
- X-Daily-Limit / X-Daily-Remaining — daily shipment allowance.
- Retry-After — only on HTTP 429: wait time in seconds (also retry_after in the error body).
Every key carries the scopes read, write (contacts, webhooks) and/or send (create shipments). Without the required scope the API responds with HTTP 403. Optionally, keys can have an expiry date and an IP allowlist.
Send the Idempotency-Key header with POST /shipments. Repeating a request with the same key and an identical body returns the stored response instead of sending again — ideal for Zapier retries.
Idempotency-Key: 8f14e45fAll timestamps are ISO 8601 UTC strings. Lists support limit (max. 200) and offset; responses include total.
The webhook action in workflows sends POST requests to your public HTTPS target (payload with event, workspace_id, shipment, recipient). If a secret is set, every delivery is signed as HMAC-SHA256 over <X-Esigning-Timestamp>.<body>. Failing calls (timeout, 5xx, 408, 429) are retried up to 5 times with increasing delay; X-Esigning-Delivery stays the same so you can deduplicate.
X-Esigning-Event · X-Esigning-Delivery · X-Esigning-Timestamp · X-Esigning-Signature: sha256=<HMAC>{
"error": {
"code": "not_found",
"message": "Shipment not found."
}
}