Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)Bring fellow founders on board. Earn 5 free e-signing sends for every successful signup (up to 3×)
Developers

API documentation

Automate E-Signing.io with your own code or Zapier: read documents, query shipments including submitted content, and manage contacts.

Base URL
https://e-signing.io/api/public/v1
Authentication

Every 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_…
Rate limit

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:

Quotas per plan
PlanAPI keysRequests/minuteAPI shipments/day
Free1302,000
Starter2602,000
Pro103002,000
Business10002,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).
Scopes & expiry

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.

Idempotency

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: 8f14e45f
Formats & pagination

All timestamps are ISO 8601 UTC strings. Lists support limit (max. 200) and offset; responses include total.

Workflow webhooks

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 format
{
  "error": {
    "code": "not_found",
    "message": "Shipment not found."
  }
}

Endpoints

General

Documents

Shipments

Contacts

Properties

Inquiries

Webhooks