# SignWith > SignWith is pay-per-document e-signature software: upload a PDF, add fields, send it for signature, and get a signed copy with an audit trail. No subscription; one credit covers one signed document. Developers can use the REST API, signed webhooks, and an MCP server for AI assistants. Every docs page below is Markdown. The HTML versions are at the same URLs without `.md`. The full docs in one file: https://signwith.co/llms-full.txt. OpenAPI spec: https://signwith.co/docs/openapi.yaml. ## Developer docs - [SignWith developer docs: e-signature API and MCP server](https://signwith.co/docs.md): 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. - [SignWith API changelog](https://signwith.co/docs/changelog.md): Changes to the SignWith e-signature API, webhooks and MCP server, newest first: new endpoints, fields, events and error codes, and changes to existing calls. ## REST API - [E-signature API: send documents for signature](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: send a document for signature](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: place signature fields from the PDF](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. - [SignWith API authentication: API keys](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. - [API requests: pagination and idempotency](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. - [API error codes and what they mean](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. - [API rate limits and 429 errors](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. - [E-signature API pricing and credits](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 API reference](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 API reference](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 API reference](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 API reference](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 API reference](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 API reference](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 API reference](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. - [E-signature webhooks for signing events](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. - [Webhook events and payloads](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 webhook signatures in Node and Python](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 - [E-signature MCP server for AI assistants](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. - [SignWith MCP tools reference](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. - [Connect Claude to SignWith (MCP)](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. - [Connect ChatGPT to SignWith (MCP)](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. - [Connect Cursor to SignWith (MCP)](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. - [Connect VS Code to SignWith (MCP)](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. - [MCP OAuth and protocol reference for client developers](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. ## Product - [Pricing](https://signwith.co/pricing): free documents every month and one-time credit packs - [Help Center](https://signwith.co/help-docs): step-by-step guides for the SignWith app