Documenso
Open-source e-signature with a documented v2 API for documents, templates, recipients and webhooks.
Send documents for signature, build templates, place fields and get webhooks, self-hosted under AGPL or on the Builder's cloud. The public API v2 is the agent interface; it is included in self-hosting but only on paid cloud plans. Documents and templates are being folded into envelopes, so watch the migration guide.
- I want contracts signed from our own server and our agent to create and send them from a template
- I am paying per envelope elsewhere and want a flat self-hosted signing tool
- Cloud Free plan has no API access; API starts at Individual and is 'personal use only' there
- Documents and templates endpoints are being replaced by envelopes; build against the migration guide
- The Builder no longer accepts external pull requests
- AGPL: a modified hosted copy must publish source
Last activity Sep 2, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free open source
Cloud Free · Free closed source
- HostedOpen the hosted app
Individual · $25 per month closed source
- HostedOpen the hosted app
Teams · $40 per month closed source
- HostedOpen the hosted app
Platform · $250 per month closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only21 things to edit
cp .env.example .env and set the NEXT_PRIVATE_* values: database, encryption keys, SMTP or Resend, and an S3 bucket for uploads. Signing certificate is a local .p12 (NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH) or Google Cloud HSM; OIDC, Google and Microsoft sign-in are env-driven; NEXT_PUBLIC_DISABLE_* flags lock down sign-up. Branding and templates are set in-product.
- Env vars
NEXT_PUBLIC_WEBAPP_URLNEXTAUTH_SECRETNEXT_PRIVATE_DATABASE_URLNEXT_PRIVATE_ENCRYPTION_KEYNEXT_PRIVATE_ENCRYPTION_SECONDARY_KEYNEXT_PRIVATE_SMTP_TRANSPORTNEXT_PRIVATE_SMTP_HOSTNEXT_PRIVATE_SMTP_FROM_ADDRESSNEXT_PRIVATE_RESEND_API_KEYNEXT_PRIVATE_UPLOAD_BUCKETNEXT_PRIVATE_UPLOAD_ENDPOINTNEXT_PRIVATE_SIGNING_TRANSPORTNEXT_PRIVATE_SIGNING_LOCAL_FILE_PATHNEXT_PRIVATE_SIGNING_PASSPHRASENEXT_PRIVATE_OIDC_WELL_KNOWNNEXT_PRIVATE_OIDC_CLIENT_IDNEXT_PRIVATE_ALLOWED_SIGNUP_DOMAINSNEXT_PUBLIC_DISABLE_SIGNUPNEXT_PRIVATE_DOCUMENSO_LICENSE_KEY- Config files
.env.exampledocker/compose.yml- Prompt files
- none
- Accounts you need
- SMTP or ResendS3-compatible storagesigning certificate (self-generated or Google Cloud HSM)
Source
- github.com/documenso/documenso
- AGPL-3.0 license
- Last commit Sep 2, 2026
- 14,863 stars
Operable: what an agent can drive
Interface
OfficialAPIpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 5 of 8 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create a document and send it for signing | Reachable | API v2 Documents: create, retrieve, update, delete; recipients and fields endpoints |
| Build and reuse templates | Reachable | API v2 Templates group |
| Add recipients and place signature fields | Reachable | API v2 Recipients and Fields groups |
| Get notified when a document is viewed or completed | Reachable | Webhooks documented on the public API page |
| Manage team members | Reachable | API v2 Teams group |
| Sign on a recipient's behalf | Not reachable | Signing is the recipient's act through the signing link or embedded signing; no API call signs for a person |
| Embed signing in your own app | Not reachable | Embedding is a front-end SDK, not an API operation |
| Download the signed PDF and audit certificate | Undetermined | Not confirmed on the API overview page; check openapi.documenso.com |
Code stack
- Languages
- TypeScript
- Frameworks
- React Router v7HonoPrismatRPCTailwind CSSreact-email
- Package manager
- npm
- Database
- PostgreSQLRedis (optional)
- Hosting target
- DockerRailwayKubernetes
- Built
- Human-written (recorded, never ranked)
Skills
Repo carries contributor-facing development skills (browser automation, documentation, envelope editor E2E) for working on the app. [contributor tooling, not adopter-facing]
- Kind
- contributor
- Paths
.agents/skills/*/SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README Tech Stack: React Router v7 app with Hono server, Docker images | 95% |
| executionModel | No runtime model; GOOGLE_VERTEX_* keys present but undocumented in README | 70% |
| operability | docs.documenso.com/developers/public-api: v2 API, api_ key in Authorization header | 95% |
| effort | README: cp .env.example .env with handpicked defaults; 100+ named NEXT_PRIVATE_* vars | 90% |
| editions | documenso.com/pricing fetched 2026-09-02: Free, Individual 25, Teams 40, Platform 250 USD/month | 90% |
| active | GitHub pushedAt 2026-09-03 | – |
| reach | 80% |
Open questions
- What are the GOOGLE_VERTEX_* env vars for?
- Does the API expose signed PDF and audit log download?
- Is there a paid self-hosted license and what does NEXT_PRIVATE_DOCUMENSO_LICENSE_KEY unlock?
Sources
- github.com/documenso/documenso sourcing:smb-ops-crm:github
- docs.documenso.com/developers/public-api sourcing:smb-ops-crm:github
- documenso.com/pricing analysis