Launch offer Free Personal plan includes 5 sends / month — upgrade anytime as your team grows. ›

Esig API reference

Every product feature is available over REST with a Sanctum personal access token. Plan feature keys gate each resource the same way as the web app.

Base URL & auth

https://esig.ca/api

Authorization: Bearer YOUR_TOKEN_HERE
Accept: application/json
Content-Type: application/json

Create tokens in the app under API Tokens, or via POST /api/tokens. Requires plan feature api_access.

Feature gates

Missing a plan feature returns 422 with a plan error. Keys used by the API:

api_access, esignature, templates, bulk_send, form_fields, reminders, comments, audit_trail, power_forms, sms_delivery, id_verification, payments, clm, sso, workspaces, ai_insights, branding

Account

MethodPathDescription
GET/api/userCurrent user, plan, feature keys, usage
GET/api/account/featuresEnabled feature keys for the caller
GET/api/plansPublic plan catalog
GET/api/tokensList API tokens (metadata only)
POST/api/tokensCreate token — body: token_name. Returns plain token once
DELETE/api/tokens/{id}Revoke a token

Envelopes

MethodPathFeatureDescription
GET/api/envelopesapi_accessList. Filters: status, clm_stage, workspace_id, per_page
POST/api/envelopesapi_accessCreate (optionally send). See fields below
GET/api/envelopes/{id}api_accessDetail + signing URLs, fields, comments, audit, AI
POST/api/envelopes/{id}/sendapi_accessSend draft (email/SMS/reminders)
POST/api/envelopes/{id}/voidapi_accessVoid incomplete envelope
DELETE/api/envelopes/{id}api_accessDelete envelope + document
PUT/api/envelopes/{id}/fieldsform_fieldsReplace form fields array
POST/api/envelopes/{id}/commentscommentsBody: body
GET/api/envelopes/{id}/remindersremindersList reminders
POST/api/envelopes/{id}/remindersremindersrecipient_id, scheduled_at
PATCH/api/envelopes/{id}/clm-stageclmclm_stage: draft|in_review|negotiation|executed|archived
POST/api/envelopes/{id}/ai-insightai_insightsRun / refresh AI analysis
GET/api/envelopes/{id}/auditaudit_trailAudit events

Create envelope (POST /api/envelopes) body:

FieldRequiredNotes
subjectYesMax 200
messageNoNote to recipients
document_base64 + document_nameUnless templateBase64 file bytes (no data: prefix)
template_idAlt to documentRequires templates
workspace_idNoRequires workspaces
recipients[]Yesname, email, optional phone, role (signer|cc)
fields[]NoRequires form_fields. Types: signature, initial, date, text, checkbox, name, email
sendNoSend immediately after create
send_smsNoRequires sms_delivery
require_id_verificationNoRequires id_verification
payment_amountNoRequires payments
reminders_enabled, reminder_daysNoRequires reminders when enabled
expires_atNoISO datetime
curl -X POST "https://esig.ca/api/envelopes" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d "{
    \"subject\": \"Please sign NDA\",
    \"document_name\": \"nda.txt\",
    \"document_base64\": \"U2FtcGxlIE5EQSBjb250ZW50IGZvciBFc2lnIEFQSSBkZW1vLg==\",
    \"recipients\": [{ \"name\": \"Alex Signer\", \"email\": \"alex@example.com\" }],
    \"send\": true
  }"

Templates

Feature: templates

MethodPathDescription
GET/api/templatesList
POST/api/templatesname, document_base64, document_name, optional subject/message
GET/api/templates/{id}Show + fields
PATCH/api/templates/{id}Update metadata
DELETE/api/templates/{id}Delete

Bulk send

Feature: bulk_sendPOST /api/bulk-send

Body: subject, document_base64, document_name, recipients[] (max 50), optional message, send (default true). Creates one envelope per recipient.

PowerForms

Feature: power_forms

MethodPathDescription
GET/api/power-formsList (+ public_url)
POST/api/power-formsCreate with document_base64 or template_id
GET/api/power-forms/{id}Detail + recent submissions
PATCH/api/power-forms/{id}Update / activate
DELETE/api/power-forms/{id}Delete

Public self-service URL remains https://esig.ca/forms/{slug} (no API token).

Workspaces

Feature: workspaces

MethodPathDescription
GET/api/workspacesList
POST/api/workspacesname, optional description
GET/api/workspaces/{id}Show with envelopes
POST/api/workspaces/{id}/attachenvelope_id
POST/api/workspaces/{id}/detachenvelope_id
POST/api/workspaces/{id}/closeClose workspace

CLM, branding, SSO

MethodPathFeatureDescription
GET/api/clm/boardclmKanban-style stages with envelopes
GET/api/brandingbrandingBrand settings
PUT/api/brandingbrandingprimary_color, accent_color, optional logo_base64
GET/api/ssossoSSO config (secret hidden)
PUT/api/ssossoUpdate SSO (demo/oidc/saml)

Admin

Requires is_admin on the token user.

MethodPathDescription
GET/api/admin/usersList users (q search)
PATCH/api/admin/users/{id}Update user / plan / flags
GET/api/admin/plansAll plans + features
PATCH/api/admin/plans/{id}Update plan; optional feature_keys[]
GET/api/admin/featuresFeature catalog
PATCH/api/admin/features/{id}Update feature metadata / active

Errors

  • 401 — missing or invalid token
  • 403 — not owner, or not admin
  • 422 — validation or plan/feature/limit error
  • 404 — resource not found

Quick start

1. Sign in as demo@esig.test → API Tokens → create a token
2. GET /api/user to confirm plan features
3. POST /api/envelopes with send: true

Open API Tokens Developers overview