PandaDoc website screenshot

PandaDoc

PandaDoc is a document automation platform that enables businesses to create, send, track, and e-sign documents programmatically. Their developer platform provides REST APIs and embedded tools for integrating document generation, e-signature collection, and workflow automation directly into third-party applications.

5 APIs 16 Features
Document AutomationE-SignatureDocument ManagementDocument GenerationWebhooks

APIs

PandaDoc REST API

The PandaDoc REST API provides programmatic access to PandaDoc's document automation platform, enabling developers to create, send, track, and manage documents within their own ...

PandaDoc Document Generation API

The PandaDoc Document Generation API allows developers to programmatically create documents from templates by injecting dynamic data pulled from CRM systems, databases, or other...

PandaDoc E-Signature API

The PandaDoc E-Signature API enables developers to embed legally binding e-signature workflows directly within their applications using a white-label signing experience. It supp...

PandaDoc Embedded Editing API

The PandaDoc Embedded Editing API allows developers to embed PandaDoc's document editor directly within their own platform, enabling end users to prepare, customize, and finaliz...

PandaDoc Webhooks API

The PandaDoc Webhooks API enables developers to subscribe to real-time event notifications for document lifecycle events such as document sent, viewed, signed, approved, decline...

Collections

GraphQL

PandaDoc GraphQL Schema

This GraphQL schema represents the PandaDoc document automation and e-signature platform. PandaDoc provides REST APIs at `https://api.pandadoc.com/public/v1` for creating, sendi...

GRAPHQL

Pricing Plans

Pandadoc Plans Pricing

4 plans

PLANS

Rate Limits

Pandadoc Rate Limits

2 limits

RATE LIMITS

FinOps

Features

Free: 60 documents/year, unlimited seats
Starter at $19/mo: 110 documents/year, audit trail
Business at $49/seat/mo: unlimited documents, CRM integrations
Enterprise: CPQ, workflow automation, SSO, API access
REST API at api.pandadoc.com
Default 100 req/min/workspace
Documents API + Templates API + Contacts API
OAuth 2.0 + API keys (Bearer)
Webhooks for document state changes
Drag-and-drop editor with rich media
E-signature legally binding (eIDAS, ESIGN)
Audit trail for all document interactions
CRM integrations (Salesforce, HubSpot, etc.)
Approval workflows
Deal rooms for buyer collaboration
Smart content for dynamic documents (Enterprise)

Event Specifications

PandaDoc Webhook Events

The PandaDoc webhook system delivers real-time event notifications to registered subscriber endpoints when document lifecycle and platform events occur. PandaDoc sends HTTP POST...

ASYNCAPI

Semantic Vocabularies

Pandadoc Context

0 classes · 10 properties

JSON-LD

JSON Structure

Pandadoc Structure

0 properties

JSON STRUCTURE

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Website
Website
📰
Blog
Blog
🔗
Login
Login
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
💬
Support
Support
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: PandaDoc REST API
  version: 7.18.0
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Documents
    type: folder
  items:
  - info:
      name: List Documents
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
      - name: template_id
        value: ''
        type: query
        description: Filter by the parent template identifier.
      - name: form_id
        value: ''
        type: query
        description: Filter by the parent form identifier.
      - name: folder_uuid
        value: ''
        type: query
        description: Filter by the folder where documents are stored.
      - name: contact_id
        value: ''
        type: query
        description: Filter by recipient or approver contact identifier.
      - name: status
        value: ''
        type: query
        description: Filter by document status.
      - name: tag
        value: ''
        type: query
        description: Filter by document tag (exact match).
      - name: q
        value: ''
        type: query
        description: Search by document name substring.
      - name: id
        value: ''
        type: query
        description: Filter by a specific document identifier.
      - name: owner_id
        value: ''
        type: query
        description: Filter by the document owner member identifier.
      - name: order_by
        value: ''
        type: query
        description: Sort field for results.
      - name: asc
        value: ''
        type: query
        description: Set to true for ascending order, false for descending.
    docs: Returns a paginated list of documents accessible to the authenticated user. Supports filtering by template, form,
      folder, contact, status, tag, owner, and date ranges. Results can be ordered by various fields.
  - info:
      name: Create Document
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/documents
      body:
        type: json
        data: '{}'
    docs: Creates a new document from a template, an uploaded file, or a URL. The document is created in draft status and
      can be customized with recipient details, field values, pricing table data, and metadata tokens before being sent for
      signature.
  - info:
      name: Get Document Details
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Retrieves comprehensive details for a specific document including its status, recipients, fields, pricing tables,
      tokens, tags, and metadata.
  - info:
      name: Delete Document
      type: http
    http:
      method: DELETE
      url: https://api.pandadoc.com/public/v1/documents/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Permanently deletes a specific document by its identifier. This action is irreversible and removes the document
      and all associated data.
  - info:
      name: Get Document Status
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/status
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Returns the current status of a document. Use this endpoint to poll for status transitions after creating or sending
      a document.
  - info:
      name: Send Document
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/documents/:id/send
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      body:
        type: json
        data: '{}'
    docs: Sends a document in draft status to its recipients for e-signature collection or review. Optionally includes a subject
      line, custom message, and controls whether email notifications are sent silently. The document must be in document.draft
      status before it can be sent.
  - info:
      name: Download Document
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/download
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      - name: watermark_color
        value: ''
        type: query
        description: Hex color code for watermark text applied to the downloaded PDF.
      - name: watermark_font_size
        value: ''
        type: query
        description: Font size for watermark text in points.
      - name: watermark_opacity
        value: ''
        type: query
        description: Opacity of the watermark from 0.0 to 1.0.
      - name: watermark_text
        value: ''
        type: query
        description: Text to render as a watermark on every page of the PDF.
      - name: separate_files
        value: ''
        type: query
        description: If true, returns a ZIP archive containing each document section as a separate PDF file.
    docs: Downloads the signed PDF for a completed document. The document must be in document.completed status. Returns the
      binary PDF file content with appropriate Content-Disposition headers.
  - info:
      name: Create Document Session
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/documents/:id/session
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      body:
        type: json
        data: '{}'
    docs: Creates a time-limited session token for embedded document viewing or signing. The returned session ID is used to
      embed the PandaDoc document viewer within an iframe in the host application. Session lifetime and recipient scope are
      configurable.
- info:
    name: Document Recipients
    type: folder
  items:
  - info:
      name: List Document Recipients
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/recipients
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Returns the list of recipients associated with a document, including their roles, completion status, signing order,
      and contact information.
  - info:
      name: Add Document Recipient
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/documents/:id/recipients
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      body:
        type: json
        data: '{}'
    docs: Adds a new recipient to a document that is in draft status. Recipients can be assigned roles that map to signature
      and form fields within the document. The recipient will receive signing instructions when the document is sent.
  - info:
      name: Update Document Recipient
      type: http
    http:
      method: PATCH
      url: https://api.pandadoc.com/public/v1/documents/:id/recipients/:recipient_id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      - name: recipient_id
        value: ''
        type: path
        description: Unique identifier of the document recipient.
      body:
        type: json
        data: '{}'
    docs: Updates the details of an existing recipient on a document, such as their name, email, role, or signing order. The
      document must be in an editable state.
  - info:
      name: Delete Document Recipient
      type: http
    http:
      method: DELETE
      url: https://api.pandadoc.com/public/v1/documents/:id/recipients/:recipient_id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      - name: recipient_id
        value: ''
        type: path
        description: Unique identifier of the document recipient.
    docs: Removes a recipient from a document. The document must not have been sent yet. If the recipient has associated fields,
      those fields will be unassigned.
- info:
    name: Document Fields
    type: folder
  items:
  - info:
      name: List Document Fields
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/fields
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Returns all fields defined in a document, including their identifiers, types, values, roles, and positions. Supports
      filtering by field type and recipient role.
  - info:
      name: Update Document Fields
      type: http
    http:
      method: PATCH
      url: https://api.pandadoc.com/public/v1/documents/:id/fields
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      body:
        type: json
        data: '{}'
    docs: Updates the values of one or more fields in a document that is in draft status. Supports updating text fields, checkboxes,
      dropdowns, dates, and other field types by name.
- info:
    name: Document Attachments
    type: folder
  items:
  - info:
      name: List Document Attachments
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/attachments
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Returns a list of all file attachments associated with a document. Includes attachment metadata such as name, size,
      and upload date.
  - info:
      name: Download Document Attachment
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:id/attachments/:attachment_id/download
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the document.
      - name: attachment_id
        value: ''
        type: path
        description: Unique identifier of the document attachment.
    docs: Downloads a specific attachment file associated with a document. Returns the binary file content with appropriate
      content type headers.
- info:
    name: Document Reminders
    type: folder
  items:
  - info:
      name: Get Document Auto-Reminders
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/:document_id/auto-reminders
      params:
      - name: document_id
        value: ''
        type: path
        description: Unique identifier of the document.
    docs: Retrieves the automatic reminder configuration for a specific document, including the schedule and message used
      for outstanding recipient notification emails.
- info:
    name: Document Link to CRM
    type: folder
  items:
  - info:
      name: List Linked Objects
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/linked-objects
      params:
      - name: provider
        value: ''
        type: query
        description: CRM provider name (e.g., salesforce, hubspot).
      - name: entity_type
        value: ''
        type: query
        description: CRM entity type (e.g., contact, deal, account).
      - name: entity_id
        value: ''
        type: query
        description: Unique identifier of the CRM entity.
    docs: Returns a list of documents that are linked to a specified CRM object. Supports filtering by CRM provider, object
      type, and object identifier.
- info:
    name: Templates
    type: folder
  items:
  - info:
      name: List Templates
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/templates
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
      - name: q
        value: ''
        type: query
        description: Search by template name substring.
      - name: tag
        value: ''
        type: query
        description: Filter by template tag (exact match).
      - name: folder_uuid
        value: ''
        type: query
        description: Filter by folder identifier.
      - name: deleted
        value: ''
        type: query
        description: If true, include deleted templates in the results.
      - name: id
        value: ''
        type: query
        description: Filter by specific template identifier.
    docs: Returns a paginated list of templates available in the authenticated workspace. Supports filtering by tag, folder,
      and search query.
  - info:
      name: Get Template Details
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/templates/:id/details
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the template.
    docs: Retrieves detailed information about a specific template including its roles, fields, tokens, pricing tables, and
      content configuration. Use this information to determine the data needed when creating documents from this template.
  - info:
      name: Delete Template
      type: http
    http:
      method: DELETE
      url: https://api.pandadoc.com/public/v1/templates/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the template.
    docs: Permanently deletes a template by its identifier. This action cannot be undone and will prevent creation of new
      documents from this template. Existing documents created from this template are not affected.
- info:
    name: Forms
    type: folder
  items:
  - info:
      name: List Forms
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/forms
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
      - name: name
        value: ''
        type: query
        description: Filter forms by name substring.
      - name: status
        value: ''
        type: query
        description: Filter forms by status.
    docs: Returns a paginated list of forms in the authenticated workspace. Forms are publicly shareable documents that allow
      recipients to fill and sign without being pre-specified as named recipients.
- info:
    name: Folders
    type: folder
  items:
  - info:
      name: List Document Folders
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/documents/folders
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
      - name: parent_uuid
        value: ''
        type: query
        description: Filter by parent folder UUID to retrieve sub-folders. Omit to retrieve root-level folders.
      - name: name
        value: ''
        type: query
        description: Filter folders by name substring.
    docs: Returns a list of folders used to organize documents in the workspace. Supports filtering by parent folder and search
      by name.
  - info:
      name: Create Document Folder
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/documents/folders
      body:
        type: json
        data: '{}'
    docs: Creates a new folder for organizing documents. An optional parent UUID may be specified to create a nested sub-folder
      within an existing folder.
- info:
    name: Contacts
    type: folder
  items:
  - info:
      name: List Contacts
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/contacts
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
      - name: q
        value: ''
        type: query
        description: Search contacts by name, email, or company substring.
    docs: Returns a paginated list of contacts from the workspace contacts directory. Supports search by name, email, or company.
      Contacts can be used to pre-populate recipient data when creating documents.
  - info:
      name: Create Contact
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/contacts
      body:
        type: json
        data: '{}'
    docs: Creates a new contact record in the workspace contacts directory. The email field is optional. Contacts can be referenced
      when adding recipients to documents.
  - info:
      name: Get Contact
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/contacts/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the contact.
    docs: Retrieves details of a specific contact by their unique identifier, including name, email, phone, company, and job
      title.
  - info:
      name: Update Contact
      type: http
    http:
      method: PATCH
      url: https://api.pandadoc.com/public/v1/contacts/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the contact.
      body:
        type: json
        data: '{}'
    docs: Updates the fields of an existing contact record. Only the provided fields are updated; omitted fields retain their
      current values.
  - info:
      name: Delete Contact
      type: http
    http:
      method: DELETE
      url: https://api.pandadoc.com/public/v1/contacts/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the contact.
    docs: Permanently removes a contact from the workspace contacts directory. Documents and templates that previously used
      this contact are not affected.
- info:
    name: Members
    type: folder
  items:
  - info:
      name: List Members
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/members
    docs: Returns a list of all members in the current workspace, including their user details, roles, and status. Useful
      for workspace administration and for looking up member identifiers.
  - info:
      name: Get Current Member
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/members/current
    docs: Returns the profile of the currently authenticated member, including their identifier, email, name, role, and workspace
      association.
  - info:
      name: Get Member
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/members/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the workspace member.
    docs: Retrieves the details of a specific workspace member by their unique identifier, including their name, email, role,
      and membership status.
- info:
    name: Webhook Subscriptions
    type: folder
  items:
  - info:
      name: List Webhook Subscriptions
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions
    docs: Returns a paginated list of all webhook subscriptions configured in the workspace, including their trigger types,
      target URLs, payload options, and current status.
  - info:
      name: Create Webhook Subscription
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions
      body:
        type: json
        data: '{}'
    docs: Creates a new webhook subscription that will deliver event notifications to the specified URL. Specify the trigger
      event types and optional payload extras (fields, products, metadata, tokens, pricing) to include in each notification.
  - info:
      name: Get Webhook Subscription
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
        description: UUID of the webhook subscription.
    docs: Retrieves details of a specific webhook subscription by its UUID, including its configuration, trigger list, payload
      options, shared key, and status.
  - info:
      name: Update Webhook Subscription
      type: http
    http:
      method: PATCH
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
        description: UUID of the webhook subscription.
      body:
        type: json
        data: '{}'
    docs: Updates the configuration of an existing webhook subscription, including its name, target URL, active status, trigger
      types, and payload options. Only provided fields are updated.
  - info:
      name: Delete Webhook Subscription
      type: http
    http:
      method: DELETE
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
        description: UUID of the webhook subscription.
    docs: Permanently deletes a webhook subscription. No further notifications will be delivered to the associated URL after
      deletion.
  - info:
      name: Regenerate Webhook Shared Key
      type: http
    http:
      method: PATCH
      url: https://api.pandadoc.com/public/v1/webhook-subscriptions/:id/shared-key
      params:
      - name: id
        value: ''
        type: path
        description: UUID of the webhook subscription.
    docs: Regenerates the shared HMAC key for a webhook subscription. The new shared key is used to sign outgoing webhook
      payloads for signature verification. Update the key in your receiving endpoint before rotating to avoid verification
      failures.
- info:
    name: Webhook Events
    type: folder
  items:
  - info:
      name: List Webhook Events
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/webhook-events
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve.
      - name: since
        value: ''
        type: query
        description: Return events created on or after this timestamp.
      - name: to
        value: ''
        type: query
        description: Return events created before this timestamp.
      - name: type
        value: ''
        type: query
        description: Filter by event trigger type.
      - name: http_status_code
        value: ''
        type: query
        description: Filter by HTTP response status code group.
    docs: Returns a paginated log of webhook events that have been dispatched. Supports filtering by event type, delivery
      time range, HTTP status code group, and error type. Use this endpoint to audit deliveries and diagnose failures.
  - info:
      name: Get Webhook Event Details
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/webhook-events/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique identifier of the webhook event.
    docs: Retrieves detailed information about a specific webhook event by its UUID, including the full request body sent
      to the subscriber, the response received, HTTP status code, delivery timestamp, and HMAC signature used for verification.
- info:
    name: API Logs
    type: folder
  items:
  - info:
      name: List API Logs
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/logs
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
    docs: Returns a paginated list of API request logs. Useful for debugging integration issues and auditing API usage. Logs
      include request method, path, status code, and timestamp.
- info:
    name: Workspaces
    type: folder
  items:
  - info:
      name: List Workspaces
      type: http
    http:
      method: GET
      url: https://api.pandadoc.com/public/v1/workspaces
      params:
      - name: count
        value: ''
        type: query
        description: Number of results to return per page.
      - name: page
        value: ''
        type: query
        description: Page number to retrieve, starting from 1.
    docs: Returns a paginated list of all active workspaces in the organization. Requires organization administrator privileges.
  - info:
      name: Create Workspace
      type: http
    http:
      method: POST
      url: https://api.pandadoc.com/public/v1/workspaces
      body:
        type: json
        data: '{}'
    docs: Creates a new workspace in the organization. Requires organization administrator privileges. The authenticated user
      is automatically added as an administrator of the new workspace.
bundled: true