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".
85
83%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
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).
app.documenso.com or self-hosted instanceTypeScript / Node.js:
npm install @documenso/sdk-typescript
# or
pnpm add @documenso/sdk-typescriptPython:
pip install documenso-sdk-python
# or
uv pip install documenso-sdk-pythonhttps://app.documenso.com or your self-hosted URL).ci-pipeline-prod).Team API keys inherit the team's document and template access. Personal keys only access your own documents.
# .env (never commit this file)
DOCUMENSO_API_KEY=api_xxxxxxxxxxxxxxxxxxxxxxxxxxAdd .env to .gitignore:
echo ".env" >> .gitignoreTypeScript — 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"])// 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.
| 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 |
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 | 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 |
ERR_INVALID_URL | N/A | Bad serverURL value | Include protocol and path: https://host/api/v2 |
.env is listed in .gitignoreAfter successful auth, proceed to documenso-hello-world for your first document.
70e9fa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.