BETASignAnything is in beta. We’re still building — come back and see us soon.
API

Send agreements from your own software.

Create envelopes from your templates, fill them with your data, and hear back the moment they’re signed.

Available on plans that include the API.

POST /v1/envelopes
{
  "template_id": "tpl_5Mx2Kc",
  "data": {
    "tenant_name": "Sam Rivera",
    "monthly_rent": "$1,850.00"
  },
  "recipients": {
    "Tenant":   { "name": "Sam Rivera",
                  "email": "sam@example.com" },
    "Landlord": { "name": "Jordan Ellis",
                  "email": "jordan@example.com" }
  }
}

Templates with your data

Write the template in Word with tags like {{tenant_name}}. Send the values; we fill them in, build the PDF and send it. Tables, checkbox groups and conditional sections fill from your data too.

Webhooks

Get told when envelopes are sent, viewed, signed, declined, reassigned or completed. Every request is signed so you can verify it, and failed deliveries are retried.

Test before you go live

Test keys create test envelopes: no emails go out, nothing is legally binding, and nothing counts toward your plan. Switch to a live key when you’re ready.

Keys you control

Create and revoke keys in Settings. A key is shown once — store it in your secret manager.

Your data isn’t kept

Values you send to fill a template are used to build the document and aren’t stored anywhere else.

SCOPES

Give each key only what it needs.

When you create a key, pick Full access or choose its scopes. A scope lets the key do one kind of thing, like reading envelopes or sending them. Scopes can’t be changed later: to change a key’s access, create a new key and revoke the old one.

Envelopes

envelopes:readenvelopes:writeenvelopes:voiddocuments:download

Templates

templates:readtemplates:write

Files · KeepAnything

files:readfiles:writesharing:write

Account

webhooks:manage
  • Full access includes every scope, including ones we add later. Keys made before scopes existed have Full access.
  • A write scope doesn’t include its read scope. envelopes:read also covers the audit trail.
  • Any key can read its own account and mode with GET /v1/account. No scope needed.
  • Test keys take the same scopes as live keys, but can’t use Files: KeepAnything has no test mode, so file calls return 403 test_mode_not_supported.
  • More scopes arrive as the API grows (bulk send, users, legal holds).
A call outside the key’s scopes is refused and names the scope it needs:
POST /v1/envelopes/env_8Hq2/void

HTTP/1.1 403 Forbidden
{
  "code": "insufficient_scope",
  "detail": "This API key needs the envelopes:void scope.",
  "required_scope": "envelopes:void"
}