Sign documents programmatically.

REST API with full e-signature capabilities. Send documents, track status, and collect signatures — all via API. $0.05 per signature.

Authentication

All API requests require an API key. Create one in your account settings (available when FairSign launches). API keys require a payment method on file.

bash
curl -X POST https://api.faircompany.ai/v1/sign/envelopes \
  -H "Authorization: Bearer fsk_live_abc123..." \
  -H "Content-Type: application/json"
POST /v1/sign/envelopes $0.05/signature

Create Envelope

Create a new envelope and send it for signing. Charges $0.05 per signature collected (not per envelope — if 3 people sign, it's $0.15).

Request
{
  "name": "Series A Term Sheet",
  "document": "base64_encoded_pdf...",
  "signers": [
    {
      "email": "sarah@investor.com",
      "name": "Sarah Chen",
      "order": 1
    },
    {
      "email": "alex@startup.com",
      "name": "Alex Rivera",
      "order": 2
    }
  ],
  "fields": [
    {
      "type": "signature",
      "signer": 0,
      "page": 3,
      "x": 100,
      "y": 600,
      "width": 200,
      "height": 50
    }
  ]
}
Response — 201 Created
{
  "id": "env_abc123",
  "status": "sent",
  "name": "Series A Term Sheet",
  "signers": [
    {
      "email": "sarah@investor.com",
      "status": "pending"
    }
  ],
  "cost": {
    "estimated": 0.10,
    "currency": "USD",
    "holdId": "hold_xyz789"
  },
  "createdAt": "2026-03-09T14:23:01Z"
}

Per-Endpoint Pricing

Every API call that costs money shows the price upfront. Free endpoints are marked as such.

POST /v1/sign/envelopes
$0.05/signature
GET /v1/sign/envelopes/:id
Free
GET /v1/sign/envelopes
Free
POST /v1/sign/envelopes/:id/remind
Free
GET /v1/sign/envelopes/:id/download
Free
POST /v1/sign/envelopes/bulk
$0.04/signature

Webhook Events

Configure webhooks to receive real-time notifications when envelopes are viewed, signed, or completed.

envelope.sent Envelope sent to signers
envelope.viewed Signer opened the document
envelope.signed Individual signer completed
envelope.completed All signatures collected
envelope.declined Signer declined to sign
envelope.expired Envelope expired (configurable)