Developer API · v1

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

terminal
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 soon

Zapier / 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 signed
  • document.voidedSender cancelled the document
  • document.expiredSigning deadline passed
  • document.declinedA signer rejected the request
  • signer.signedOne signer completed their fields
  • signer.declinedOne signer declined to sign
  • signer.otp_verifiedSigner passed OTP check
  • approval.approvedAn approver approved the document
  • approval.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.

PlanAPI calls / monthRate limit
FreeNo API access
StarterNo API access
Growth10,000 / month100 req / min
EnterpriseUnlimitedCustom SLA

Quick Start

Go live in 4 steps

From zero to sending your first signed document in under 30 minutes.

01

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.

02

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.

03

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.

04

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.

<200ms
Median API latency

Served from Vercel Edge — globally distributed, closest datacenter wins.

99.99%
Uptime SLA (Enterprise)

Backed by Vercel Edge + Cloudflare redundancy with automatic failover.

1 day
Average integration time

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.