documenso-install-auth
Install and configure Documenso SDK/API authentication. Use when setting up a new Documenso integration, configuring API keys, or initializing Documenso in your project. Trigger with phrases like "install documenso", "setup documenso", "documenso auth", "configure documenso API key".
Allowed Tools
Provided by Plugin
documenso-pack
Claude Code skill pack for Documenso (24 skills)
Installation
This skill is included in the documenso-pack plugin:
/plugin install documenso-pack@claude-code-plugins-plus
Click to copy
Instructions
Documenso Install & Auth
Overview
Set up the Documenso SDK and configure API authentication for document signing. Covers the TypeScript SDK (@documenso/sdk-typescript), the Python SDK (documenso-sdk-python), and raw REST API usage. Documenso exposes two API versions: v1 (legacy, documents only) and v2 (envelopes, multi-document, recommended for new work).
Prerequisites
- Node.js 18+ or Python 3.10+
- Package manager (npm, pnpm, yarn, pip, or uv)
- Documenso account — cloud at
app.documenso.comor self-hosted instance - API key generated from the Documenso dashboard
Instructions
Step 1: Install the SDK
TypeScript / Node.js:
npm install @documenso/sdk-typescript
# or
pnpm add @documenso/sdk-typescript
Python:
pip install documenso-sdk-python
# or
uv pip install documenso-sdk-python
Step 2: Generate an API Key
- Log in to your Documenso dashboard (
https://app.documenso.comor your self-hosted URL). - Click your avatar (top-right) and select User settings (or Team settings for team-scoped keys).
- Navigate to the API tokens tab.
- Click Create API Key, give it a descriptive name (e.g.
ci-pipeline-prod). - Copy the key immediately — it is shown only once.
Team API keys inherit the team's document and template access. Personal keys only access your own documents.
Step 3: Store the Key Securely
# .env (never commit this file)
DOCUMENSO_API_KEY=api_xxxxxxxxxxxxxxxxxxxxxxxxxx
Add .env to .gitignore:
echo ".env" >> .gitignore
Step 4: Initialize the Client
TypeScript — v2 API (recommended):
import { Documenso } from "@documenso/sdk-typescript";
const documenso = new Documenso({
apiKey: process.env.DOCUMENSO_API_KEY!,
// For self-hosted, override the server URL:
// serverURL: "https://sign.yourcompany.com/api/v2",
});
TypeScript — v1 REST (legacy):
const BASE = process.env.DOCUMENSO_BASE_URL ?? "https://app.documenso.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.DOCUMENSO_API_KEY}` };
const res = await fetch(`${BASE}/documents`, { headers });
const docs = await res.json();
Python:
from documenso_sdk_python import Documenso
import os
client = Documenso(api_key=os.environ["DOCUMENSO_API_KEY"])
Step 5: Verify the Connection
// verify-connection.ts
import { Documenso } from "@documenso/sdk-typescript";
async function verify() {
const client = new Documenso({ apiKey: process.env.DOCUMENSO_API_KEY! });
const { documents } = await client.documents.findV0({ page: 1, perPage: 1 });
console.log(`Connected — ${documents.length >= 0 ? "OK" : "FAIL"}`);
}
verify().catch(console.error);
Run with npx tsx verify-connection.ts.
API Endpoints
| Environment | Base URL (v2) | Base URL (v1, legacy) |
|---|---|---|
| Cloud production | https://app.documenso.com/api/v2 |
https://app.documenso.com/api/v1 |
| Cloud staging | https://stg-app.documenso.com/api/v2 |
https://stg-app.documenso.com/api/v1 |
| Self-hosted | https://your-instance.com/api/v2 |
https://your-instance.com/api/v1 |
Self-Hosted Base URL Override
const documenso = new Documenso({
apiKey: process.env.DOCUMENSO_API_KEY!,
serverURL: process.env.DOCUMENSO_BASE_URL, // e.g. "https://sign.acme.com/api/v2"
});
Error Handling
| Error | HTTP | Cause | Solution |
|---|---|---|---|
| Unauthorized | 401 | Invalid or expired API key | Regenerate key in dashboard |
| Forbidden | 403 | Personal key accessing team resources | Use team-scoped API key |
| Module not found | N/A | SDK not installed | Run npm install @documenso/sdk-typescript |
| Network error | N/A | Firewall or DNS issue | Verify outbound HTTPS to app.documenso.com |
ERRINVALIDURL |
N/A | Bad serverURL value |
Include protocol and path: https://host/api/v2 |
Security Checklist
- [ ] API key stored in environment variable, never in source code
- [ ]
.envis listed in.gitignore - [ ] CI secrets use masked/encrypted storage (GitHub Secrets, Vault, etc.)
- [ ] Team keys rotated on employee offboarding
- [ ] Self-hosted instances use HTTPS with valid TLS certificates
Resources
Next Steps
After successful auth, proceed to documenso-hello-world for your first document.