Integration recipes

Copy a snippet, swap in your API key, ship in minutes.

cURL
curl https://seamlessesign.co/api/v1/envelopes \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Please sign: NDA",
    "documents": [{"name":"NDA.pdf","url":"https://example.com/nda.pdf"}],
    "recipients": [{"name":"Jane Doe","email":"jane@example.com"}]
  }'
JavaScript
import { SeamlessESign } from "@seamlessesign/sdk";

const client = new SeamlessESign({ apiKey: process.env.SEAMLESS_API_KEY });

const envelope = await client.envelopes.create({
  subject: "Please sign: NDA",
  documents: [{ name: "NDA.pdf", url: "https://example.com/nda.pdf" }],
  recipients: [{ name: "Jane Doe", email: "jane@example.com" }],
});

console.log(envelope.signingUrl);
import requests, os

resp = requests.post(
    "https://seamlessesign.co/api/v1/envelopes",
    headers={"Authorization": f"Bearer {os.environ['SEAMLESS_API_KEY']}"},
    json={
        "subject": "Please sign: NDA",
        "documents": [{"name": "NDA.pdf", "url": "https://example.com/nda.pdf"}],
        "recipients": [{"name": "Jane Doe", "email": "jane@example.com"}],
    },
)
print(resp.json()["signing_url"])
Seamless Hire
// In Seamless Hire → Integrations → Add → "Seamless E-Sign"
// Paste your live API key and we'll auto-wire offer letters.
//
// To send manually from a webhook handler:
await seamlessHire.esign.send({
  candidateId: "cand_123",
  templateId: "tpl_offer_letter",
});
Zapier
1. In Zapier → "Create Zap"
2. Trigger: any app (e.g. Typeform new submission)
3. Action: Webhooks by Zapier → POST
4. URL:    https://seamlessesign.co/api/v1/envelopes
5. Headers: Authorization: Bearer sk_live_xxx
6. Data:   { subject, documents, recipients }
n8n
1. Add an HTTP Request node
2. Method:  POST
3. URL:     https://seamlessesign.co/api/v1/envelopes
4. Auth:    Bearer Token (your API key)
5. Body:    JSON envelope payload