# SignWith developer docs: e-signature API and MCP server

> Build with SignWith: send documents for e-signature from your app with the REST API and webhooks, or let AI assistants do it over the SignWith MCP server.

Source: https://signwith.co/docs · Updated 2026-10-02

## REST API

Send documents for e-signature from your product. 20 endpoints, webhooks, cURL/Node/Python samples.

- [Overview](https://signwith.co/docs/api.md): The SignWith e-signature API: send documents for signature from your app, track signers with webhooks, and pay per document. Every endpoint, with examples.
- [Quick start](https://signwith.co/docs/api/quickstart.md): Send your first document for e-signature with the SignWith API: get an API key, upload a PDF as a template, place signature fields, send it and check its status.
- [Text tags](https://signwith.co/docs/api/text-tags.md): Place SignWith signature, date, checkbox and other fields by writing text tags like {{Client signature;type=signature;role=Client}} into your PDF. Full syntax.
- [Authentication](https://signwith.co/docs/api/authentication.md): How to authenticate with the SignWith API: Bearer API keys, live and test keys, full-access and read-only keys, key expiry, and the 401 and 403 errors.
- [Making requests](https://signwith.co/docs/api/requests.md): How SignWith API requests work: the base URL, JSON and timestamps, cursor pagination with limit and next_cursor, and safe retries with the Idempotency-Key header.
- [Errors](https://signwith.co/docs/api/errors.md): Every SignWith API error code with its HTTP status and meaning: the error envelope, which codes to branch on, and which errors are safe to retry.
- [Rate limits](https://signwith.co/docs/api/rate-limits.md): SignWith API rate limits: 300 requests per minute per API key, the RateLimit headers on every response, the 429 error, and the reminder and feedback limits.
- [Credits and billing](https://signwith.co/docs/api/credits.md): How the SignWith API uses credits: when a credit is used, checking the balance, the 402 insufficient_credits error, and buying credits from your code.
- [Account](https://signwith.co/docs/api/account.md): SignWith account API: check which user, account and environment an API key belongs to, and read the credit balance. Fields, errors and code examples.
- [Templates](https://signwith.co/docs/api/templates.md): SignWith templates API: upload PDFs as reusable templates, place signature fields, update, duplicate and archive them. With cURL, Node and Python examples.
- [Signature requests](https://signwith.co/docs/api/signature-requests.md): Send documents for signature with the SignWith API: create, list, get, cancel and remind signature requests. Every parameter and error, with code examples.
- [Signers](https://signwith.co/docs/api/signers.md): SignWith signers API: get a signer's status, field values and signed documents, fix their email, prefill fields and resend their link. With code examples.
- [Documents](https://signwith.co/docs/api/documents.md): Verify a signed PDF with the SignWith API: check that SignWith issued it and that its digital signatures are valid. Request, response and code examples.
- [Billing](https://signwith.co/docs/api/billing.md): Buy SignWith credits from the API: list credit packs, start a hosted checkout and poll it until credits are added. Every field, with code examples.
- [Feedback](https://signwith.co/docs/api/feedback.md): Send bug reports, feature requests and questions to the SignWith team from your API client or AI agent. Request fields, limits, errors and code examples.
- [Webhooks overview](https://signwith.co/docs/api/webhooks.md): SignWith webhooks send a signed POST to your server when a document is sent, viewed, signed, declined or completed. Setup, payload, headers, retries and testing.
- [Events](https://signwith.co/docs/api/webhooks/events.md): Every SignWith webhook event, from signature_request.created to signer.signed and template.archived, with when it is sent, its payload object and an example.
- [Verify signatures](https://signwith.co/docs/api/webhooks/verify-signatures.md): How to verify SignWith webhook signatures: check the X-SignWith-Signature header with HMAC-SHA256 over the timestamp and raw body, in Node.js and Python.

## MCP server

Connect AI assistants to SignWith at `https://app.signwith.co/mcp` (Streamable HTTP; OAuth or a Bearer API key). 18 tools.

- [Overview](https://signwith.co/docs/mcp.md): The SignWith MCP server lets Claude, ChatGPT, Cursor and other AI assistants send documents for e-signature, follow signers and verify PDFs.
- [Tools](https://signwith.co/docs/mcp/tools.md): All 18 SignWith MCP tools: what each one does, its arguments, the API endpoint it runs, and whether View only connections and read-only keys can use it.
- [Claude](https://signwith.co/docs/mcp/claude.md): Connect Claude to SignWith over MCP: add a custom connector in Claude on the web, desktop or mobile, or add the server to Claude Code with an API key or OAuth.
- [ChatGPT](https://signwith.co/docs/mcp/chatgpt.md): Connect ChatGPT to SignWith over MCP with developer mode: create an app for the SignWith MCP server, sign in with OAuth, and send documents from a chat.
- [Cursor](https://signwith.co/docs/mcp/cursor.md): Add the SignWith MCP server to Cursor with mcp.json and an API key, so Cursor can create templates, send documents for signature and check signers while you build.
- [VS Code](https://signwith.co/docs/mcp/vscode.md): Add the SignWith MCP server to VS Code and GitHub Copilot with one click or with mcp.json, then send documents for signature and check signers from the chat.
- [OAuth and protocol](https://signwith.co/docs/mcp/oauth.md): How MCP clients authenticate with the SignWith MCP server: OAuth 2.1 with PKCE, dynamic client registration, scopes, token lifetimes and protocol behaviour.

## For agents

Every page has a Markdown copy at its URL plus `.md`. Index: https://signwith.co/llms.txt. Everything in one file: https://signwith.co/llms-full.txt. OpenAPI: https://signwith.co/docs/openapi.yaml.
