Build eSign into
your product
A clean REST API, real-time webhooks, and a Node.js SDK — everything you need to embed legally-binding eSign into any application. Ship in hours, not weeks.
Simple by design
Send a document for signature in one API call
curl -X POST https://api.signosplatform.com/v1/documents \
-H "Authorization: Bearer so_live_your_api_key" \
-H "Content-Type: application/json" \
-d '
{
"title": "Service Agreement",
"recipients": [
{
"email": "john@acme.com",
"role": "signer"
}
],
"storageKey": "uploads/contract.pdf"
}
'Everything you need to integrate
REST API, webhooks, SDK, and no-code automation — pick what fits your stack.
REST API
Full CRUD on documents, recipients, templates, and webhooks. JSON over HTTPS with predictable resource-oriented URLs. OpenAPI spec included — import directly into Postman or Insomnia.
Webhooks
Real-time event delivery for every document lifecycle event — sent, viewed, signed, voided. Payloads are HMAC-SHA256 signed. Automatic retries with exponential backoff and delivery logs.
SDK
Official Node.js SDK with full TypeScript types and JSDoc. Python and PHP SDKs are in active development. Or hit the API directly with any HTTP client — no SDK required.
Node.js · Python soon · PHP soonZapier / n8n
No-code automation for non-technical teammates. Connect SignOS to 5,000+ apps — Notion, HubSpot, Google Sheets, Slack — without writing a single line of code.
Webhooks
Real-time event notifications
Register an HTTPS endpoint and receive signed payloads the moment something happens. Automatic retries with exponential backoff and full delivery logs in the dashboard.
document.completedAll signers have signeddocument.voidedSender cancelled the documentdocument.expiredSigning deadline passeddocument.declinedA signer rejected the requestsigner.signedOne signer completed their fieldssigner.declinedOne signer declined to signsigner.otp_verifiedSigner passed OTP checkapproval.approvedAn approver approved the documentapproval.rejectedAn approver rejected the document
Rate Limits
API limits by plan
All limits are enforced per API key on a rolling 60-second window. Exceeded limits return HTTP 429 with a Retry-After header. Contact us if you need higher limits on the Growth plan.
| Plan | API calls / month | Rate limit |
|---|---|---|
| Free | — | No API access |
| Starter | — | No API access |
| Growth | 10,000 / month | 100 req / min |
| Enterprise | Unlimited | Custom SLA |
Quick Start
Go live in 4 steps
From zero to sending your first signed document in under 30 minutes.
Generate an API key
Head to Dashboard → Settings → API Keys. Create a live key, copy it once — it is never shown again. Store it in an environment variable, never in source code.
Upload your document to R2
Call GET /v1/upload/presigned-url to receive a short-lived presigned URL. PUT your PDF directly from the browser or your server — no SignOS servers in the upload path.
Create a document via API
POST to /v1/documents with the storageKey from the upload step, your recipients list, and optional field placements. The document is sent immediately.
Listen for webhook events
Register your HTTPS endpoint at Dashboard → Webhooks. Verify the X-SignOS-Signature header on every inbound payload and update your app state in real time.
Designed for Indian SaaS builders
We have built the API we wished existed when we were embedding DocuSign. No enterprise sales calls, no dollar invoices, no undocumented limits.
Served from Vercel Edge — globally distributed, closest datacenter wins.
Backed by Vercel Edge + Cloudflare redundancy with automatic failover.
Most teams have their first signed document flowing through the API within 24 hours.
Ready to integrate?
Generate your API key and send your first document programmatically in minutes. The Growth plan gives you 10,000 API calls per month — enough to ship and prove your integration before scaling.
Questions about the API? dev@signos.io or open a support ticket.