PandaDoc · Capability
PandaDoc REST API — Documents
PandaDoc REST API — Documents. 8 operations. Lead operation: List Documents. Self-contained Naftiko capability covering one Pandadoc business surface.
What You Can Do
GET
Listdocuments
— List Documents
/v1/documents
POST
Createdocument
— Create Document
/v1/documents
GET
Getdocumentdetails
— Get Document Details
/v1/documents/{id}
DELETE
Deletedocument
— Delete Document
/v1/documents/{id}
GET
Downloaddocument
— Download Document
/v1/documents/{id}/download
POST
Senddocument
— Send Document
/v1/documents/{id}/send
POST
Createdocumentsession
— Create Document Session
/v1/documents/{id}/session
GET
Getdocumentstatus
— Get Document Status
/v1/documents/{id}/status
MCP Tools
list-documents
List Documents
read-only
idempotent
create-document
Create Document
get-document-details
Get Document Details
read-only
idempotent
delete-document
Delete Document
idempotent
download-document
Download Document
read-only
idempotent
send-document
Send Document
create-document-session
Create Document Session
get-document-status
Get Document Status
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: PandaDoc REST API — Documents
description: 'PandaDoc REST API — Documents. 8 operations. Lead operation: List Documents. Self-contained Naftiko capability
covering one Pandadoc business surface.'
tags:
- Pandadoc
- Documents
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
PANDADOC_API_KEY: PANDADOC_API_KEY
capability:
consumes:
- type: http
namespace: rest-documents
baseUri: https://api.pandadoc.com/public/v1
description: PandaDoc REST API — Documents business capability. Self-contained, no shared references.
resources:
- name: documents
path: /documents
operations:
- name: listdocuments
method: GET
description: List Documents
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: template_id
in: query
type: string
description: Filter by the parent template identifier.
- name: form_id
in: query
type: string
description: Filter by the parent form identifier.
- name: folder_uuid
in: query
type: string
description: Filter by the folder where documents are stored.
- name: contact_id
in: query
type: string
description: Filter by recipient or approver contact identifier.
- name: status
in: query
type: string
description: Filter by document status.
- name: tag
in: query
type: string
description: Filter by document tag (exact match).
- name: q
in: query
type: string
description: Search by document name substring.
- name: id
in: query
type: string
description: Filter by a specific document identifier.
- name: owner_id
in: query
type: string
description: Filter by the document owner member identifier.
- name: order_by
in: query
type: string
description: Sort field for results.
- name: asc
in: query
type: boolean
description: Set to true for ascending order, false for descending.
- name: createdocument
method: POST
description: Create Document
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: documents-id
path: /documents/{id}
operations:
- name: getdocumentdetails
method: GET
description: Get Document Details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: deletedocument
method: DELETE
description: Delete Document
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: documents-id-download
path: /documents/{id}/download
operations:
- name: downloaddocument
method: GET
description: Download Document
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: watermark_color
in: query
type: string
description: Hex color code for watermark text applied to the downloaded PDF.
- name: watermark_font_size
in: query
type: integer
description: Font size for watermark text in points.
- name: watermark_opacity
in: query
type: number
description: Opacity of the watermark from 0.0 to 1.0.
- name: watermark_text
in: query
type: string
description: Text to render as a watermark on every page of the PDF.
- name: separate_files
in: query
type: boolean
description: If true, returns a ZIP archive containing each document section as a separate PDF file.
- name: documents-id-send
path: /documents/{id}/send
operations:
- name: senddocument
method: POST
description: Send Document
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: documents-id-session
path: /documents/{id}/session
operations:
- name: createdocumentsession
method: POST
description: Create Document Session
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: documents-id-status
path: /documents/{id}/status
operations:
- name: getdocumentstatus
method: GET
description: Get Document Status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
authentication:
type: bearer
token: '{{env.PANDADOC_API_KEY}}'
exposes:
- type: rest
namespace: rest-documents-rest
port: 8080
description: REST adapter for PandaDoc REST API — Documents. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/documents
name: documents
description: REST surface for documents.
operations:
- method: GET
name: listdocuments
description: List Documents
call: rest-documents.listdocuments
with:
template_id: rest.template_id
form_id: rest.form_id
folder_uuid: rest.folder_uuid
contact_id: rest.contact_id
status: rest.status
tag: rest.tag
q: rest.q
id: rest.id
owner_id: rest.owner_id
order_by: rest.order_by
asc: rest.asc
outputParameters:
- type: object
mapping: $.
- method: POST
name: createdocument
description: Create Document
call: rest-documents.createdocument
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/documents/{id}
name: documents-id
description: REST surface for documents-id.
operations:
- method: GET
name: getdocumentdetails
description: Get Document Details
call: rest-documents.getdocumentdetails
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletedocument
description: Delete Document
call: rest-documents.deletedocument
outputParameters:
- type: object
mapping: $.
- path: /v1/documents/{id}/download
name: documents-id-download
description: REST surface for documents-id-download.
operations:
- method: GET
name: downloaddocument
description: Download Document
call: rest-documents.downloaddocument
with:
watermark_color: rest.watermark_color
watermark_font_size: rest.watermark_font_size
watermark_opacity: rest.watermark_opacity
watermark_text: rest.watermark_text
separate_files: rest.separate_files
outputParameters:
- type: object
mapping: $.
- path: /v1/documents/{id}/send
name: documents-id-send
description: REST surface for documents-id-send.
operations:
- method: POST
name: senddocument
description: Send Document
call: rest-documents.senddocument
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/documents/{id}/session
name: documents-id-session
description: REST surface for documents-id-session.
operations:
- method: POST
name: createdocumentsession
description: Create Document Session
call: rest-documents.createdocumentsession
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/documents/{id}/status
name: documents-id-status
description: REST surface for documents-id-status.
operations:
- method: GET
name: getdocumentstatus
description: Get Document Status
call: rest-documents.getdocumentstatus
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: rest-documents-mcp
port: 9090
transport: http
description: MCP adapter for PandaDoc REST API — Documents. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: list-documents
description: List Documents
hints:
readOnly: true
destructive: false
idempotent: true
call: rest-documents.listdocuments
with:
template_id: tools.template_id
form_id: tools.form_id
folder_uuid: tools.folder_uuid
contact_id: tools.contact_id
status: tools.status
tag: tools.tag
q: tools.q
id: tools.id
owner_id: tools.owner_id
order_by: tools.order_by
asc: tools.asc
outputParameters:
- type: object
mapping: $.
- name: create-document
description: Create Document
hints:
readOnly: false
destructive: false
idempotent: false
call: rest-documents.createdocument
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-document-details
description: Get Document Details
hints:
readOnly: true
destructive: false
idempotent: true
call: rest-documents.getdocumentdetails
outputParameters:
- type: object
mapping: $.
- name: delete-document
description: Delete Document
hints:
readOnly: false
destructive: true
idempotent: true
call: rest-documents.deletedocument
outputParameters:
- type: object
mapping: $.
- name: download-document
description: Download Document
hints:
readOnly: true
destructive: false
idempotent: true
call: rest-documents.downloaddocument
with:
watermark_color: tools.watermark_color
watermark_font_size: tools.watermark_font_size
watermark_opacity: tools.watermark_opacity
watermark_text: tools.watermark_text
separate_files: tools.separate_files
outputParameters:
- type: object
mapping: $.
- name: send-document
description: Send Document
hints:
readOnly: false
destructive: false
idempotent: false
call: rest-documents.senddocument
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-document-session
description: Create Document Session
hints:
readOnly: false
destructive: false
idempotent: false
call: rest-documents.createdocumentsession
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-document-status
description: Get Document Status
hints:
readOnly: true
destructive: false
idempotent: true
call: rest-documents.getdocumentstatus
outputParameters:
- type: object
mapping: $.