{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "docusealco--docuseal",
    "name": "DocuSeal",
    "tagline": "Open-source document signing with a REST API, webhooks, SDKs in seven languages, a CLI and an MCP endpoint.",
    "shortTagline": "Open-source document signing",
    "description": "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.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "smb-ops-crm",
    "alternativeTo": [
      "DocuSign",
      "Dropbox Sign",
      "PandaDoc"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "Ruby",
        "JavaScript"
      ],
      "frameworks": [
        "Ruby on Rails",
        "Vue.js",
        "Sidekiq",
        "Shakapacker"
      ],
      "packageManager": "bundler + yarn",
      "database": [
        "SQLite (default)",
        "PostgreSQL",
        "MySQL"
      ],
      "hostingTarget": [
        "Docker",
        "Docker Compose with Caddy",
        "Heroku",
        "Railway",
        "DigitalOcean",
        "Render"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/docusealco/docuseal",
        "owner": "docusealco",
        "name": "docuseal",
        "license": "AGPL-3.0 with Section 7(b) additional terms",
        "stars": 18417,
        "lastCommit": "2026-08-31"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://www.docuseal.com/docs/api",
      "official": true,
      "hosted": "both"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Create templates from PDF, DOCX or HTML",
        "reachable": true,
        "evidence": "API Templates: create from PDF/DOCX/HTML, clone, merge, update, archive; HTML and field-tag APIs are Pro"
      },
      {
        "job": "Send a document for filling and signing",
        "reachable": true,
        "evidence": "API Submissions: create from template or file, list, retrieve, archive"
      },
      {
        "job": "Pre-fill fields and track each signer",
        "reachable": true,
        "evidence": "API Submitters: list, retrieve, update with field values"
      },
      {
        "job": "Get events (viewed, completed, declined)",
        "reachable": true,
        "evidence": "Webhooks: form, submission and template events"
      },
      {
        "job": "Bulk send from a spreadsheet",
        "reachable": null,
        "evidence": "Bulk send is a Pro UI feature; API equivalent is a loop of submissions"
      },
      {
        "job": "Embed the signing form or builder in your app",
        "reachable": false,
        "evidence": "Embedded forms are front-end SDKs (React, Vue, Angular, JS), Pro only"
      },
      {
        "job": "Manage users and roles",
        "reachable": null,
        "evidence": "Not on the API page; roles are Pro"
      },
      {
        "job": "Verify a signed PDF",
        "reachable": null,
        "evidence": "Verification is a product feature; API endpoint not confirmed"
      }
    ],
    "editions": [
      {
        "name": "Self-hosted",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/docusealco/docuseal"
          },
          {
            "kind": "container",
            "url": "https://hub.docker.com/r/docuseal/docuseal",
            "command": "docker run --name docuseal -p 3000:3000 -v.:/data docuseal/docuseal"
          },
          {
            "kind": "one-click",
            "url": "https://github.com/docusealco/docuseal#deploy"
          }
        ]
      },
      {
        "name": "Cloud",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://www.docuseal.com/pricing"
          }
        ]
      },
      {
        "name": "Pro",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://www.docuseal.com/pricing"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or skills install target in the repo."
    },
    "customization": {
      "summary": "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.",
      "envVars": [
        "DATABASE_URL",
        "HOST",
        "SECRET_KEY_BASE"
      ],
      "configFiles": [
        "docker-compose.yml",
        "config/database.yml",
        "config/storage.yml",
        "config/sidekiq.yml"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 7
    },
    "useWhen": [
      "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"
    ],
    "accounts": [
      "SMTP provider",
      "cloud storage (optional)",
      "DocuSeal account (Pro or cloud)"
    ],
    "active": true,
    "lastActivity": "2026-08-31",
    "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"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README: web tool, single Docker image",
      "executionModel": "No model in README or config/",
      "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",
      "effort": "README Docker section names DATABASE_URL and HOST; config/ has 23 Rails files",
      "editions": "README Features vs Pro Features; docuseal.com/pricing",
      "active": "GitHub pushedAt 2026-08-31"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.85,
      "operability": 0.9,
      "effort": 0.8,
      "reach": 0.8,
      "editions": 0.7
    },
    "openQuestions": [
      "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": [
      {
        "url": "https://github.com/docusealco/docuseal",
        "foundBy": "sourcing:smb-ops-crm:github"
      },
      {
        "url": "https://www.docuseal.com/docs/api",
        "foundBy": "sourcing:smb-ops-crm:github"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Both capabilities. Official API, SDKs, CLI and MCP; Reach near-complete for the free edition's jobs. Adaptable 2: thin env surface, AGPL plus additional terms, Pro closed.",
      "disputed": []
    },
    "url": "apps/docusealco--docuseal.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/docusealco--docuseal.json"
  }
}
