API Documentation
Integrate Zdottedline into your workflows with our REST + tRPC API.
API access available on Professional and Enterprise plans.
Authentication
All authenticated endpoints require a Bearer token in the Authorization header.
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
https://zdottedline.com/api/trpc/documents.listAccess tokens expire in 15 minutes. Use the refresh token endpoint to obtain new ones.
Base URL
https://zdottedline.com/apiEndpoints
POST
/api/trpc/auth.registerPUBLICPOST
/api/trpc/auth.loginPUBLICGET
/api/trpc/auth.meAUTHPOST
/api/trpc/documents.uploadAUTHGET
/api/trpc/documents.listAUTHGET
/api/trpc/documents.getAUTHPOST
/api/trpc/documents.addSignerAUTHPOST
/api/trpc/documents.addFieldAUTHPOST
/api/trpc/documents.sendAUTHPOST
/api/trpc/signing.submitFieldsPUBLICGET
/api/trpc/documents.getForSigningPUBLICGET
/api/trpc/billing.statusAUTHGET
/api/trpc/team.listAUTHPOST
/api/trpc/team.inviteAUTHGET
/api/healthPUBLICExample: Upload and Send a Document
1. Login
curl -X POST https://zdottedline.com/api/trpc/auth.login \
-H "Content-Type: application/json" \
-d '{"json":{"email":"you@company.com","password":"yourpassword"}}'2. Upload a document
curl -X POST https://zdottedline.com/api/trpc/documents.upload \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{"title":"Contract","fileBase64":"...","fileName":"contract.pdf","mimeType":"application/pdf"}}'3. Add a signer and send
# Add signer
curl -X POST https://zdottedline.com/api/trpc/documents.addSigner \
-H "Authorization: Bearer ACCESS_TOKEN" \
-d '{"json":{"documentId":"DOC_ID","email":"signer@example.com","name":"Jane Smith","signOrder":1}}'
# Send for signing
curl -X POST https://zdottedline.com/api/trpc/documents.send \
-H "Authorization: Bearer ACCESS_TOKEN" \
-d '{"json":{"documentId":"DOC_ID"}}'Webhooks
Webhook notifications for document events are coming soon. Subscribe to events like document.completed, signer.signed, and signer.declined.
Rate Limits
Authentication endpoints30 requests per minute
Public verification (/api/verify)30 requests per minute
General API (including uploads)100 requests per minute
Limits are per IP address. Exceeding one returns HTTP 429 with a Retry-After header. Separately, five failed sign-ins lock an account for 15 minutes.