Authenticate with an API key in the Authorization: API-Key header, or use OAuth 2.0 for user-context operations.
Create a document from a template by POSTing to /public/v1/documents with the template_uuid, a name, recipients array (each with email, first_name, last_name, role), and a tokens array for variable substitution.
Poll GET /public/v1/documents/{id} or use a webhook to wait until the document status transitions from 'document.draft' to 'document.waiting_for_payment' or 'document.sent'.
Send the document to recipients for signing via POST /public/v1/documents/{id}/send with a message and subject.
After completion, download the signed PDF via GET /public/v1/documents/{id}/download.
Use the content library items endpoint to manage reusable clause blocks that can be inserted into templates programmatically.
Known gotchas
PandaDoc document creation is asynchronous; the document is not ready to send immediately after the creation POST — poll for status or await the document.draft webhook event before calling send.
Token names in the template must match exactly (case-sensitive) the token keys in the API request; unmatched tokens remain as unfilled placeholders in the rendered document.
The free-tier API has strict rate limits and disables certain features like content library access; check entitlements before building integrations that depend on them.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp