Developer API
Electronic signature API for US products
Add legally binding e-signatures to your own app under the ESIGN Act and UETA. Flat $39/mo, unlimited API calls, Bitcoin-anchored audit trail, and a typed TypeScript SDK.
Headless & agent-friendly
Upload, place fields, invite signers and send — entirely server-side. No browser, no magic link, no human in the loop.
Bitcoin-anchored proof
Every signature gets an OpenTimestamps attestation. Verifiable forever, even if we disappear.
Typed SDK
npm install @nexis-dev/justsignnow-sdk — full TypeScript autocompletion, ESM, works on Node, Bun and edge runtimes.
Quick start
Get your API key from the dashboard settings, then run a full signing round in one call — upload, field placement, signer invitations and dispatch:
import { JustSignNow } from '@nexis-dev/justsignnow-sdk'
import fs from 'fs'
const jsn = new JustSignNow(process.env.JSN_API_KEY!)
const fileBase64 = fs.readFileSync('./contract.pdf').toString('base64')
// Upload → place fields → invite signers → send
const run = await jsn.signatures.run({
document: { fileBase64, name: 'contract.pdf' },
fields: [
// PDF points, from the TOP-LEFT of the page (1-based pages)
{ id: 'sig', type: 'signature', page: 1, x: 72, y: 620, width: 180, height: 40 },
{ id: 'date', type: 'date', page: 1, x: 72, y: 585, width: 120, height: 18 },
],
signers: [{ email: 'signer@example.com', name: 'Jane Doe' }],
})
// Block until everyone has signed
await jsn.documents.waitForCompletion(run.documentId)
const { blob: signedPdf } = await jsn.documents.downloadSignedPdf(run.documentId)
const { blob: cert } = await jsn.documents.downloadCertificate(run.documentId)Prefer a human in the browser? Use editorSessions.create() to mint a single-use editor link instead.
Key scopes
documents.write— upload documents and place fieldsdocuments.read— read documents, signers and download artefactssignatures.send— invite signers and dispatch signing requests
Placing fields is the part people get wrong most often — coordinates, block sizing and recipient assignment are covered in the field placement guide before you send anything for signature.
The interactive reference below is generated from our OpenAPI 3.1 spec and includes live request examples for every endpoint.