# DocuSeal

Open-source document signing with a REST API, webhooks, SDKs in seven languages, a CLI and an MCP endpoint.

PDF form builder, multi-signer submissions, automatic e-signatures and verification, self-hosted from one Docker image with SQLite by default. The Builder documents the API at docuseal.com/docs/api, ships SDKs and a CLI on the docusealco org, and runs an MCP server at mcp.docuseal.com. Pro features (white-label, reminders, SMS, conditional fields, HTML template API, embedded forms) are closed.

Alternative to: DocuSign, Dropbox Sign, PandaDoc

- Capabilities: adaptable, operable
- Vertical: smb-ops-crm
- Shape: business-app
- Form factor: web-app
- Execution model: deterministic
- Provenance: human-written (recorded, never ranked)
- Repo: https://github.com/docusealco/docuseal (AGPL-3.0 with Section 7(b) additional terms), 18417 stars, last commit 2026-08-31
- Last activity: 2026-08-31
- Page: apps/docusealco--docuseal.html
- JSON: apps/docusealco--docuseal.json

## Use it when

- I want clients to sign onboarding forms from our own domain and our agent to send them from a template
- I need signing inside a client's portal and will pay Pro for the embedded builder

## Gotchas

- AGPL with Section 7(b) additional terms: read LICENSE_ADDITIONAL_TERMS before rebranding
- White-label, reminders, roles, SSO, conditional fields and embedded forms are Pro (closed)
- Free edition sends invitation emails only over your own SMTP
- mcp.docuseal.com refuses plain GET; tool list not verified

## Editions

- Self-hosted: Free, open source
  - source: https://github.com/docusealco/docuseal
  - container: docker run --name docuseal -p 3000:3000 -v.:/data docuseal/docuseal
  - one-click: https://github.com/docusealco/docuseal#deploy
- Cloud: Free, closed source
  - hosted: https://www.docuseal.com/pricing
- Pro: Free, closed source
  - hosted: https://www.docuseal.com/pricing

## Adaptable: make it yours

Effort: config-only (7 things to edit)

Run the Docker image; set DATABASE_URL to move off SQLite and HOST for the Compose stack, which issues TLS through Caddy. SMTP, storage (disk, S3, Google, Azure), branding and languages are set in the app's settings. Rails config lives in config/ (database.yml, storage.yml, sidekiq.yml). Pro features are closed, so white-label and reminders are not a fork away.

- Env vars: DATABASE_URL, HOST, SECRET_KEY_BASE
- Config files: docker-compose.yml, config/database.yml, config/storage.yml, config/sidekiq.yml
- Prompt files: none
- Accounts you'll need: SMTP provider; cloud storage (optional); DocuSeal account (Pro or cloud)

## Operable: what an agent can drive

Operability: official. Interface: api at https://www.docuseal.com/docs/api (published by the builder, both).

### Reach (partial coverage)

- Create templates from PDF, DOCX or HTML: reachable. API Templates: create from PDF/DOCX/HTML, clone, merge, update, archive; HTML and field-tag APIs are Pro
- Send a document for filling and signing: reachable. API Submissions: create from template or file, list, retrieve, archive
- Pre-fill fields and track each signer: reachable. API Submitters: list, retrieve, update with field values
- Get events (viewed, completed, declined): reachable. Webhooks: form, submission and template events
- Bulk send from a spreadsheet: undetermined. Bulk send is a Pro UI feature; API equivalent is a loop of submissions
- Embed the signing form or builder in your app: not reachable. Embedded forms are front-end SDKs (React, Vue, Angular, JS), Pro only
- Manage users and roles: undetermined. Not on the API page; roles are Pro
- Verify a signed PDF: undetermined. Verification is a product feature; API endpoint not confirmed

## Code stack

- Languages: Ruby, JavaScript
- Frameworks: Ruby on Rails, Vue.js, Sidekiq, Shakapacker
- Package manager: bundler + yarn
- Database: SQLite (default), PostgreSQL, MySQL
- Hosting target: Docker, Docker Compose with Caddy, Heroku, Railway, DigitalOcean, Render

## Evidence and confidence

- formFactor: README: web tool, single Docker image (confidence 0.95)
- executionModel: No model in README or config/ (confidence 0.85)
- operability: docuseal.com/docs/api: X-Auth-Token API, webhooks, SDKs (JS, Python, Ruby, PHP, Java, C#, Go), CLI; mcp.docuseal.com on the Builder's domain; docusealco org has docuseal-cli, docuseal-python, docuseal-ruby, docuseal-php (confidence 0.9)
- effort: README Docker section names DATABASE_URL and HOST; config/ has 23 Rails files (confidence 0.8)
- editions: README Features vs Pro Features; docuseal.com/pricing (confidence 0.7)
- active: GitHub pushedAt 2026-08-31
- reach:  (confidence 0.8)

## Open questions

- Pro and cloud prices
- Tools exposed by mcp.docuseal.com and whether it works with self-hosted instances
- Full list of supported env vars beyond DATABASE_URL, HOST and SECRET_KEY_BASE

## Sources

- https://github.com/docusealco/docuseal (sourcing:smb-ops-crm:github)
- https://www.docuseal.com/docs/api (sourcing:smb-ops-crm:github)
