An API you can read in one sitting.
Ecylaa is built API-first. Create a template, send an envelope, and listen for the signed result — without wrangling PDF libraries or signature law.
import { Ecylaa } from "@ecylaa/node"
const ecylaa = new Ecylaa(process.env.ECYLAA_KEY)
// Render a template and send it for signature
const envelope = await ecylaa.envelopes.create({
template_id: "tpl_msa",
recipients: [
{ name: "Robin Lefoyer", email: "robin@acme.com", role: "signer" },
],
fields: { company: "Acme Ltd", effective_date: "2026-07-01" },
})
console.log(envelope.id) // env_8fa3...
console.log(envelope.status) // "sent"Predictable REST API
Resource-oriented endpoints, idempotency keys, and clear errors. If you've used a modern API, you already know ours.
Official SDKs
First-class libraries for JavaScript, Python, Go, Ruby, PHP, and Java — typed, versioned, and documented.
Webhooks & events
Subscribe to envelope.sent, envelope.viewed, and envelope.completed with signed payloads and automatic retries.
Embedded signing
Drop the signing experience into your own app with a short-lived URL or our prebuilt component.
Know the moment it's signed.
No polling. When the last recipient signs, Ecylaa posts a signed event to your endpoint with the finished PDF and the sealed certificate of completion.
{
"event": "envelope.completed",
"data": {
"id": "env_8fa3c1",
"status": "completed",
"signed_pdf_url": "https://api.ecylaa-pro.com/...",
"certificate_url": "https://api.ecylaa-pro.com/..."
}
}Ready to build?
Request a key and you'll be sending test envelopes in minutes.