All integrations

PandaDoc

DOCS & KNOWLEDGE · FILES & DOCS

Documents, templates, forms, contacts, and signing status in the account they connected.

Connect PandaDoc with Fabriq Developer

Your user consents at PandaDoc. The credential lands in a vault your agent cannot read, and the tool list it gets back is the intersection of that user’s grant and the agent’s own scopes.

provider “panda_doc”
from af_sdk import AgenticFabriq

af = AgenticFabriq()                      # reads AF_APP_ID / AF_APP_SECRET

url = await af.initiate_connection(request, provider="panda_doc")   # consent at PandaDoc
return redirect(url)

async with await af.for_user(request) as session:
    tools = await session.get_tools()     # only what this user granted

Provider names are surfaces, not vendors, and the authoritative list is the capabilities endpoint rather than any page including this one — an unknown name returns 400 with the valid list. Fabriq Developer is free to start and needs no provider paperwork. Start free or read the quickstart.

Connecting PandaDoc in practice

PandaDoc rate limits are counted per user across all of that user’s keys on a sliding 60-second window, and they vary tenfold by operation: 2,000 requests a minute to list or check status but only 100 to download a document. A sandbox key is 10 requests a minute on every endpoint, so nothing about sandbox throughput predicts production.

Scopes that draw scrutiny

  • OAuth 2.0 scope `read+write` The scope PandaDoc’s own authorization example requests. It is the grant that lets an application create documents and send them out for signature on the user’s behalf.
  • Sandbox API key Available on any plan including a trial, and useful precisely because it cannot send real documents — but capped at 10 requests per minute, so it is not a load-test environment.

Rate limits

  • Create from Template: 500 requests/minute. Create from PDF: 300/minute. Create Notarization Request: 100/minute.
  • Send Document: 400/minute. Document Details: 600/minute. List, status and delete: 2,000/minute.
  • Download Document: 100/minute. Download protected document: 300/minute.
  • Sandbox API key: 10 requests per minute on any endpoint.
  • Limits are per user across that user’s keys, over a sliding window of the last 60 seconds; overage returns 429 Too Many Requests.
  • Maximum request body 2 MB. Maximum PDF for document creation 50 MB, above which the API returns 413 Request entity too large.

Who has to approve

PandaDoc is the gate rather than a workspace admin: the API has to be part of the plan, and creating an application — the prerequisite for OAuth — is only available once production API access is enabled on the account. Until then the sandbox key is the only route.

Worth knowing

  • The 2 MB request-body cap and the 50 MB PDF cap are different limits, so a base64-inlined document hits the body ceiling long before the file ceiling.
  • Because limits are per user, splitting an agent across two keys owned by the same account changes nothing about throughput.
  • Download is the tightest common operation at 100 requests a minute, which is the limit an archival or evidence-collection job hits first.
  • Access tokens expire and start returning 401; only the refresh token keeps a long-running integration alive, and multiple token pairs can be issued if it needs more than one.

Checked against PandaDoc API limits (2026-09-29), Authentication process (2026-09-29), About the PandaDoc API (2026-09-29)

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

panda_doc_delete_public_v1_contacts_by_idWRITE

Delete Contact. DELETE /public/v1/contacts/{id}

write
panda_doc_delete_public_v1_documentsWRITE

Bulk Delete Documents. DELETE /public/v1/documents

write
panda_doc_delete_public_v1_documents_by_document_id_sections_by_section_idWRITE

Delete Section. DELETE /public/v1/documents/{document_id}/sections/{section_id}

write
panda_doc_delete_public_v1_documents_by_idWRITE

Delete Document. DELETE /public/v1/documents/{id}

write
panda_doc_delete_public_v1_documents_by_id_attachments_by_attachment_idWRITE

Delete Document Attachment. DELETE /public/v1/documents/{id}/attachments/{attachment_id}

write
panda_doc_delete_public_v1_documents_by_id_linked_objects_by_linked_object_idWRITE

Delete Linked Object. DELETE /public/v1/documents/{id}/linked-objects/{linked_object_id}

write
panda_doc_delete_public_v1_documents_by_id_recipients_by_recipient_idWRITE

Delete Document Recipient. DELETE /public/v1/documents/{id}/recipients/{recipient_id}

write
panda_doc_delete_public_v1_templates_by_idWRITE

Delete Template. DELETE /public/v1/templates/{id}

write
panda_doc_delete_public_v1_webhook_subscriptions_by_idWRITE

Delete Webhook Subscription. DELETE /public/v1/webhook-subscriptions/{id}

write
panda_doc_delete_public_v1_workspaces_by_workspace_id_members_by_member_idWRITE

Remove Member. DELETE /public/v1/workspaces/{workspace_id}/members/{member_id}

write
panda_doc_delete_public_v2_notary_notarization_requests_by_session_request_idWRITE

Delete Notarization Request. DELETE /public/v2/notary/notarization-requests/{session_request_id}

write
panda_doc_delete_public_v2_product_catalog_items_by_item_uuidWRITE

Delete Catalog Item. DELETE /public/v2/product-catalog/items/{item_uuid}

write
panda_doc_get_public_beta_documents_by_document_id_ai_metadataREAD

Get Document Ai Metadata. GET /public/beta/documents/{document_id}/ai-metadata

read
panda_doc_get_public_beta_documents_by_document_id_contentREAD

Get Document Content. GET /public/beta/documents/{document_id}/content

read
panda_doc_get_public_beta_documents_by_document_id_docx_export_tasks_by_task_idREAD

Get Docx Export Task. GET /public/beta/documents/{document_id}/docx-export-tasks/{task_id}

read
panda_doc_get_public_beta_documents_by_document_id_summaryREAD

Get Document Summary. GET /public/beta/documents/{document_id}/summary

read
panda_doc_get_public_beta_documents_searchREAD

Search Documents Ai. GET /public/beta/documents/search

read
panda_doc_get_public_beta_privacy_settings_workspaces_by_workspace_idREAD

Get Workspace Privacy Settings. GET /public/beta/privacy-settings/workspaces/{workspace_id}

read
panda_doc_get_public_v1_contactsREAD

List Contacts. GET /public/v1/contacts

read
panda_doc_get_public_v1_contacts_by_idREAD

Details Contact. GET /public/v1/contacts/{id}

read
panda_doc_get_public_v1_content_library_itemsREAD

List Content Library Items. GET /public/v1/content-library-items

read
panda_doc_get_public_v1_content_library_items_by_idREAD

Status Content Library Item. GET /public/v1/content-library-items/{id}

read
panda_doc_get_public_v1_content_library_items_by_id_detailsREAD

Details Content Library Item. GET /public/v1/content-library-items/{id}/details

read
panda_doc_get_public_v1_documentsREAD

List Documents. GET /public/v1/documents

read
panda_doc_get_public_v1_documents_by_document_id_auto_remindersREAD

Get Document Auto Reminder Settings. GET /public/v1/documents/{document_id}/auto-reminders

read
panda_doc_get_public_v1_documents_by_document_id_auto_reminders_statusREAD

Status Document Auto Reminder. GET /public/v1/documents/{document_id}/auto-reminders/status

read
panda_doc_get_public_v1_documents_by_document_id_esign_disclosureREAD

Document E Sign Disclosure. GET /public/v1/documents/{document_id}/esign-disclosure

read
panda_doc_get_public_v1_documents_by_document_id_sectionsREAD

List Sections. GET /public/v1/documents/{document_id}/sections

read
panda_doc_get_public_v1_documents_by_document_id_sections_by_section_idREAD

Section Info. GET /public/v1/documents/{document_id}/sections/{section_id}

read
panda_doc_get_public_v1_documents_by_document_id_sections_uploads_by_upload_idREAD

Section Details. GET /public/v1/documents/{document_id}/sections/uploads/{upload_id}

read
panda_doc_get_public_v1_documents_by_idREAD

Status Document. GET /public/v1/documents/{id}

read
panda_doc_get_public_v1_documents_by_id_attachmentsREAD

List Document Attachments. GET /public/v1/documents/{id}/attachments

read
panda_doc_get_public_v1_documents_by_id_attachments_by_attachment_idREAD

Details Document Attachment. GET /public/v1/documents/{id}/attachments/{attachment_id}

read
panda_doc_get_public_v1_documents_by_id_detailsREAD

Details Document. GET /public/v1/documents/{id}/details

read
panda_doc_get_public_v1_documents_by_id_fieldsREAD

List Document Fields. GET /public/v1/documents/{id}/fields

read
panda_doc_get_public_v1_documents_by_id_linked_objectsREAD

List Linked Objects. GET /public/v1/documents/{id}/linked-objects

read
panda_doc_get_public_v1_documents_foldersREAD

List Document Folders. GET /public/v1/documents/folders

read
panda_doc_get_public_v1_documents_linked_objectsREAD

List Documents By Linked Object. GET /public/v1/documents/linked-objects

read
panda_doc_get_public_v1_formsREAD

List Form. GET /public/v1/forms

read
panda_doc_get_public_v1_logsREAD

List Logs. GET /public/v1/logs

read
panda_doc_get_public_v1_logs_by_idREAD

Details Log. GET /public/v1/logs/{id}

read
panda_doc_get_public_v1_membersREAD

List Members. GET /public/v1/members

read
panda_doc_get_public_v1_members_by_idREAD

Details Member. GET /public/v1/members/{id}

read
panda_doc_get_public_v1_members_currentREAD

Details Current Member. GET /public/v1/members/current

read
panda_doc_get_public_v1_sms_opt_outsREAD

List Recent Sms Opt Outs. GET /public/v1/sms-opt-outs

read
panda_doc_get_public_v1_templatesREAD

List Templates. GET /public/v1/templates

read
panda_doc_get_public_v1_templates_by_idREAD

Status Template. GET /public/v1/templates/{id}

read
panda_doc_get_public_v1_templates_by_id_detailsREAD

Details Template. GET /public/v1/templates/{id}/details

read
panda_doc_get_public_v1_templates_by_template_id_sharesREAD

Get Template Shares. GET /public/v1/templates/{template_id}/shares

read
panda_doc_get_public_v1_templates_foldersREAD

List Template Folders. GET /public/v1/templates/folders

read
panda_doc_get_public_v1_usersREAD

List Users. GET /public/v1/users

read
panda_doc_get_public_v1_users_by_user_idREAD

Details User. GET /public/v1/users/{user_id}

read
panda_doc_get_public_v1_webhook_eventsREAD

List Webhook Event. GET /public/v1/webhook-events

read
panda_doc_get_public_v1_webhook_events_by_idREAD

Details Webhook Event. GET /public/v1/webhook-events/{id}

read
panda_doc_get_public_v1_webhook_subscriptionsREAD

List Webhook Subscriptions. GET /public/v1/webhook-subscriptions

read
panda_doc_get_public_v1_webhook_subscriptions_by_idREAD

Details Webhook Subscription. GET /public/v1/webhook-subscriptions/{id}

read
panda_doc_get_public_v1_workspacesREAD

Get Workspaces List. GET /public/v1/workspaces

read
panda_doc_get_public_v2_documents_by_document_id_audit_trailREAD

List Document Audit Trail. GET /public/v2/documents/{document_id}/audit-trail

read
panda_doc_get_public_v2_documents_by_document_id_settingsREAD

Document Settings Get. GET /public/v2/documents/{document_id}/settings

read
panda_doc_get_public_v2_logsREAD

List Logs V2. GET /public/v2/logs

read
panda_doc_get_public_v2_logs_by_idREAD

Details Log V2. GET /public/v2/logs/{id}

read
panda_doc_get_public_v2_notary_notariesREAD

List Notaries. GET /public/v2/notary/notaries

read
panda_doc_get_public_v2_notary_notarization_requestsREAD

List Notarization Requests. GET /public/v2/notary/notarization-requests

read
panda_doc_get_public_v2_notary_notarization_requests_by_session_request_idREAD

Notarization Request Details. GET /public/v2/notary/notarization-requests/{session_request_id}

read
panda_doc_get_public_v2_product_catalog_items_by_item_uuidREAD

Get Catalog Item. GET /public/v2/product-catalog/items/{item_uuid}

read
panda_doc_get_public_v2_product_catalog_items_searchREAD

Search Catalog Items. GET /public/v2/product-catalog/items/search

read
panda_doc_get_public_v2_templates_by_template_id_settingsREAD

Template Settings Get. GET /public/v2/templates/{template_id}/settings

read
panda_doc_patch_public_beta_privacy_settings_workspaces_by_workspace_idWRITE

Update Workspace Privacy Settings. PATCH /public/beta/privacy-settings/workspaces/{workspace_id}

write
panda_doc_patch_public_beta_workspaces_by_workspace_idWRITE

Update Workspace. PATCH /public/beta/workspaces/{workspace_id}

write
panda_doc_patch_public_v1_contacts_by_idWRITE

Update Contact. PATCH /public/v1/contacts/{id}

write
panda_doc_patch_public_v1_documents_by_document_id_auto_remindersWRITE

Update Document Auto Reminder Settings. PATCH /public/v1/documents/{document_id}/auto-reminders

write
panda_doc_patch_public_v1_documents_by_document_id_quotesWRITE

Quotes Batch Update. PATCH /public/v1/documents/{document_id}/quotes

write
panda_doc_patch_public_v1_documents_by_idWRITE

Update Document. PATCH /public/v1/documents/{id}

write
panda_doc_patch_public_v1_documents_by_id_fieldsWRITE

Update Document Fields Assignment. PATCH /public/v1/documents/{id}/fields

write
panda_doc_patch_public_v1_documents_by_id_ownershipWRITE

Transfer Document Ownership. PATCH /public/v1/documents/{id}/ownership

write
panda_doc_patch_public_v1_documents_by_id_recipients_recipient_by_recipient_idWRITE

Edit Document Recipient. PATCH /public/v1/documents/{id}/recipients/recipient/{recipient_id}

write
panda_doc_patch_public_v1_documents_by_id_statusWRITE

Change Document Status. PATCH /public/v1/documents/{id}/status

write
panda_doc_patch_public_v1_documents_ownershipWRITE

Transfer All Documents Ownership. PATCH /public/v1/documents/ownership

write
panda_doc_patch_public_v1_templates_by_idWRITE

Update Template. PATCH /public/v1/templates/{id}

write
panda_doc_patch_public_v1_webhook_subscriptions_by_idWRITE

Update Webhook Subscription. PATCH /public/v1/webhook-subscriptions/{id}

write
panda_doc_patch_public_v1_webhook_subscriptions_by_id_shared_keyWRITE

Update Webhook Subscription Shared Key. PATCH /public/v1/webhook-subscriptions/{id}/shared-key

write
panda_doc_patch_public_v1_workspaces_by_workspace_id_members_by_member_id_roleWRITE

Change Member Role. PATCH /public/v1/workspaces/{workspace_id}/members/{member_id}/role

write
panda_doc_patch_public_v2_documents_by_document_id_settingsWRITE

Document Settings Update. PATCH /public/v2/documents/{document_id}/settings

write
panda_doc_patch_public_v2_product_catalog_items_by_item_uuidWRITE

Update Catalog Item. PATCH /public/v2/product-catalog/items/{item_uuid}

write
panda_doc_patch_public_v2_templates_by_template_id_settingsWRITE

Template Settings Update. PATCH /public/v2/templates/{template_id}/settings

write
panda_doc_post_public_beta_documents_ai_metadataWRITE

Batch Get Document Ai Metadata. POST /public/beta/documents/ai-metadata

write
panda_doc_post_public_beta_documents_by_document_id_docx_export_tasksWRITE

Create Export Docx Task. POST /public/beta/documents/{document_id}/docx-export-tasks

write
panda_doc_post_public_v1_contactsWRITE

Create Contact. POST /public/v1/contacts

write
panda_doc_post_public_v1_content_library_itemsWRITE

Create Content Library Item. POST /public/v1/content-library-items

write
panda_doc_post_public_v1_documentsWRITE

Create Document. POST /public/v1/documents

write
panda_doc_post_public_v1_documents_by_document_id_sections_uploadsWRITE

Upload Section. POST /public/v1/documents/{document_id}/sections/uploads

write
panda_doc_post_public_v1_documents_by_document_id_send_reminderWRITE

Create Manual Reminder. POST /public/v1/documents/{document_id}/send-reminder

write
panda_doc_post_public_v1_documents_by_id_append_content_library_itemWRITE

Append Content Library Item To Document. POST /public/v1/documents/{id}/append-content-library-item

write
panda_doc_post_public_v1_documents_by_id_attachmentsWRITE

Create Document Attachment. POST /public/v1/documents/{id}/attachments

write
panda_doc_post_public_v1_documents_by_id_draftWRITE

Document Revert To Draft. POST /public/v1/documents/{id}/draft

write
panda_doc_post_public_v1_documents_by_id_editing_sessionsWRITE

Create Document Editing Session. POST /public/v1/documents/{id}/editing-sessions

write
panda_doc_post_public_v1_documents_by_id_fieldsWRITE

Create Document Fields. POST /public/v1/documents/{id}/fields

write
panda_doc_post_public_v1_documents_by_id_linked_objectsWRITE

Create Linked Object. POST /public/v1/documents/{id}/linked-objects

write
panda_doc_post_public_v1_documents_by_id_move_to_folder_by_folder_idWRITE

Document Move To Folder. POST /public/v1/documents/{id}/move-to-folder/{folder_id}

write
panda_doc_post_public_v1_documents_by_id_recipientsWRITE

Add Document Recipient. POST /public/v1/documents/{id}/recipients

write
panda_doc_post_public_v1_documents_by_id_recipients_by_recipient_id_reassignWRITE

Reassign Document Recipient. POST /public/v1/documents/{id}/recipients/{recipient_id}/reassign

write
panda_doc_post_public_v1_documents_by_id_sendWRITE

Send Document. POST /public/v1/documents/{id}/send

write
panda_doc_post_public_v1_documents_by_id_sessionWRITE

Create Document Link. POST /public/v1/documents/{id}/session

write
panda_doc_post_public_v1_documents_foldersWRITE

Create Document Folder. POST /public/v1/documents/folders

write
panda_doc_post_public_v1_members_by_member_id_tokenWRITE

Create Member Token. POST /public/v1/members/{member_id}/token

write
panda_doc_post_public_v1_templatesWRITE

Create Template. POST /public/v1/templates

write
panda_doc_post_public_v1_templates_by_id_duplicateWRITE

Duplicate Template. POST /public/v1/templates/{id}/duplicate

write
panda_doc_post_public_v1_templates_by_id_editing_sessionsWRITE

Create Template Editing Session. POST /public/v1/templates/{id}/editing-sessions

write
panda_doc_post_public_v1_templates_foldersWRITE

Create Template Folder. POST /public/v1/templates/folders

write
panda_doc_post_public_v1_usersWRITE

Create User. POST /public/v1/users

write
panda_doc_post_public_v1_webhook_subscriptionsWRITE

Create Webhook Subscription. POST /public/v1/webhook-subscriptions

write
panda_doc_post_public_v1_workspacesWRITE

Create Workspace. POST /public/v1/workspaces

write
panda_doc_post_public_v1_workspaces_by_workspace_id_api_keysWRITE

Create Api Key. POST /public/v1/workspaces/{workspace_id}/api-keys

write
panda_doc_post_public_v1_workspaces_by_workspace_id_deactivateWRITE

Deactivate Workspace. POST /public/v1/workspaces/{workspace_id}/deactivate

write
panda_doc_post_public_v1_workspaces_by_workspace_id_membersWRITE

Add Member. POST /public/v1/workspaces/{workspace_id}/members

write
panda_doc_post_public_v2_dsv_by_document_id_add_named_itemsWRITE

Add Dsv Named Items. POST /public/v2/dsv/{document_id}/add-named-items

write
panda_doc_post_public_v2_notary_notarization_requestsWRITE

Create Notarization Request. POST /public/v2/notary/notarization-requests

write
panda_doc_post_public_v2_product_catalog_itemsWRITE

Create Catalog Item. POST /public/v2/product-catalog/items

write
panda_doc_put_public_v1_documents_by_document_id_quotes_by_quote_idWRITE

Quote Update. PUT /public/v1/documents/{document_id}/quotes/{quote_id}

write
panda_doc_put_public_v1_documents_folders_by_idWRITE

Rename Document Folder. PUT /public/v1/documents/folders/{id}

write
panda_doc_put_public_v1_templates_by_template_id_sharesWRITE

Update Template Sharing Settings. PUT /public/v1/templates/{template_id}/shares

write
panda_doc_put_public_v1_templates_folders_by_idWRITE

Rename Template Folder. PUT /public/v1/templates/folders/{id}

write

Put PandaDoc behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.