PandaDoc Documents
Let an agent prepare and send proposals, quotes and contracts with PandaDoc: browse templates, create a document from a template with recipients and pricing tokens, send it for signature, track its status, send reminders and get a signing link. Curated from PandaDoc's official OpenAPI specification.
Connect this API to an AI agent Browse all specs
What you can do with PandaDoc Documents via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /public/v1/templates |
listTemplates | List or search document templates |
| GET | /public/v1/templates/{id}/details |
getTemplateDetails | Get a template's roles, tokens, fields and pricing tables |
| GET | /public/v1/documents |
listDocuments | List or search documents by name, status or date |
| POST | /public/v1/documents |
createDocumentFromTemplate | Create a draft document from a template with recipients and tokens |
| GET | /public/v1/documents/{id} |
getDocumentStatus | Check a document's status (draft, sent, viewed, completed) |
| GET | /public/v1/documents/{id}/details |
getDocumentDetails | Get a document's recipients, fields, tokens and totals |
| POST | /public/v1/documents/{id}/send |
sendDocument | Send a draft document to its recipients for signing |
| POST | /public/v1/documents/{document_id}/send-reminder |
sendDocumentReminder | Email a reminder to recipients who have not signed yet |
| POST | /public/v1/documents/{id}/session |
createDocumentSigningSession | Get a link for a recipient to view and sign the document |
Authentication
apiKey
API key — sent as the Authorization header
PandaDoc API keys are sent in the Authorization header as API-Key <your key> (include the API-Key prefix and the space).
How to get a credential
- Sign in to PandaDoc as a workspace admin.
- Open Settings > Integrations > API (Developer Dashboard).
- Create a Production API key (Sandbox keys only work on sandbox documents and add a watermark).
- Copy the key and store it as
API-Key <key>.
Permissions used
API keys act as the workspace member who created them; there are no per-key scopes.
| Access | Operations |
|---|---|
| Read templates | listTemplates, getTemplateDetails |
| Read documents | listDocuments, getDocumentStatus, getDocumentDetails |
| Create and send documents | createDocumentFromTemplate, sendDocument, sendDocumentReminder, createDocumentSigningSession |
Common errors
- 401 Unauthorized: key missing, revoked, or sent without the
API-Keyprefix. - 403 Forbidden: the key owner cannot see that template/document, or the plan lacks API access.
- 400 Bad Request: a template role has no recipient, a required token/field is missing, or
sendDocumentwas called before the document leftdocument.uploadedstatus. - 429 Too Many Requests: rate limit (e.g. creation and send are limited per minute); wait and retry with backoff.
Store the value as a VX Agents credential (API key) and attach it to the agent; never paste it into chat.
Usage guide
Setup
- Connect a PandaDoc Production API key, stored as
API-Key <key>(see the authentication section). - Optional presets: pin a
template_uuidthe agent always uses (e.g. your standard proposal) and afolder_uuidfor generated documents.
Create and send a document from a template
listTemplateswithq(name search) to find the template id.getTemplateDetailsto read itsroles(e.g.Client),tokens(variables likeClient.Company),fieldsandpricingtables.- Collect recipient name and email plus token values from the user.
createDocumentFromTemplatewithname,template_uuid,recipients(email,first_name,last_name,role= a template role), andtokens([{ "name": "Client.Company", "value": "Acme" }]). The document is created asynchronously in statusdocument.uploaded.- Poll
getDocumentStatusevery few seconds until status isdocument.draft(usually under 10 s). Sending earlier returns 400. - Show the user the document name, recipients and totals (
getDocumentDetails) and wait for confirmation. sendDocumentwithsubject,message;silent: truesends without PandaDoc's email (use with a signing link).
Track and follow up
listDocumentswithq,status(numeric: 0 draft, 1 sent, 2 completed, 5 viewed; full list in the parameter description),created_from/modified_from,template_id,countandpage.getDocumentStatusfor the current status;getDocumentDetailsfor recipients, who has signed, fields and grand total.sendDocumentRemindernudges recipients who have not completed (confirm first; it emails the client).createDocumentSigningSessionwithrecipient(email) andlifetimein seconds returns a sessionid; the signing link ishttps://app.pandadoc.com/s/{id}. The document must already be sent.
Good to know
- Dates are ISO 8601, e.g.
2026-10-01T00:00:00Z. - Document and template ids are short strings (e.g.
BhVzRcxH9Z2LgfPPGXFUBa). - Status strings look like
document.draft,document.sent,document.viewed,document.completed. - Sending and reminders email your customers: always confirm with the user first.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “PandaDoc Documents” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.