API documentation

Send any PDF for signing with a single POST. The letssign.now API reference, errors, recipes, support.

The whole signing flow — anchors, signers, dispatch, signed PDF, audit trail, webhooks — sits behind one Bearer-API-key authed endpoint at https://api.wesign.now/v1/*. No templates required, no portal redirect for the recipient, no SDK to install. Three real-life calls ship 90% of integrations.

https://api.letssign.now/v1 is a permanent alias of the same API. The Base URL section says exactly what is — and what isn't — the contract.

Three steps to ship

Mint an API key

Go to Developers → API keys in your workspace and click Create API key. Copy the wsk_live_… token — we only display the plaintext once. Keys minted before the September 2026 rename start with lsk_live_ and keep working unchanged.

Send your first signing request

Replace YOUR_KEY and run this in a terminal:

curl -X POST https://api.wesign.now/v1/signing-requests \
  -H "Authorization: Bearer YOUR_KEY" \
  -F "file=@contract.pdf" \
  -F 'signers=[{"email":"signer@example.com","role":"signer"}]'

Drop [[ls:signature:signer]] anywhere in your PDF and we place a signature field there. No marker? We auto-append a signature page. Need the signer to confirm an SMS code before they can sign? Add phone_e164 and require_sms_verification to the signer — see Second factor by SMS, and SMS verification for the whole flow.

(Optional) Receive real-time events

Register an outbound webhook at Developers → Webhooks (or pass callback_url per-request). We POST signing_request.signed as each signer completes, and document.completed with a key-authenticated signed-PDF URL when everyone's done. Every delivery is HMAC-signed (X-WeSign-Signature) — verify it before trusting the body.

Sending contracts you author once in the app? The Template quickstart goes from a template to a sealed PDF: a one-signer rich-text letter, or a PDF two people sign in order.

What's in this site

For AI assistants

Building the integration with an AI assistant or coding agent? Give it these instead of pasted pages. The two text files are generated from this site's source on every deploy, so they always match the pages.