POST /public/v1/documents

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Query parameters

Name Type Required Description
editor_ver String No

Set this parameter as ev1 if you want to create a document from PDF with Classic Editor when both editors are enabled for the workspace.

Request body fields

Name Type Required Description
content_placeholders[] Array No

You may replace Content Library Item Placeholders with a few content library items each and pre-fill fields/variables values, pricing table items, and assign recipients to roles from there.

content_placeholders[].block_id String No

Content placeholder block id

content_placeholders[].content_library_items[] Array No
content_placeholders[].content_library_items[].id String Yes

Content library item id

content_placeholders[].content_library_items[].recipients[] Array No
content_placeholders[].content_library_items[].recipients[].email String Yes
content_placeholders[].content_library_items[].recipients[].last_name String No
content_placeholders[].content_library_items[].recipients[].signing_order Integer No
content_placeholders[].content_library_items[].recipients[].first_name String No
content_placeholders[].content_library_items[].recipients[].role String No
content_placeholders[].content_library_items[].pricing_tables[] Array No
content_placeholders[].content_library_items[].pricing_tables[].name String Yes
content_placeholders[].content_library_items[].pricing_tables[].sections[] Array No
content_placeholders[].content_library_items[].pricing_tables[].sections[].multichoice_enabled Boolean No

Default value: false

content_placeholders[].content_library_items[].pricing_tables[].sections[].default Boolean No
content_placeholders[].content_library_items[].pricing_tables[].sections[].title String Yes
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[] Array No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].data Object No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].options Object No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].options.optional_selected Boolean No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].options.qty_editable Boolean No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].options.optional Boolean No
content_placeholders[].content_library_items[].pricing_tables[].sections[].rows[].custom_fields Object No
content_placeholders[].content_library_items[].pricing_tables[].options Object No
content_placeholders[].content_library_items[].pricing_tables[].data_merge Boolean No

When set to true all field names in data rows must be passed as external names defined in the template.

content_placeholders[].content_library_items[].fields Object No
recipients[] Array No

The list of recipients you're sending the document to. Every object must contain the email parameter. The role, first_name and last_name parameters are optional. If the role parameter is passed, a person is assigned all fields matching their corresponding role. If a role was not passed, a person receives a read-only link to view the document. If the first_name and last_name are not passed, the system does this 1. Creates a new contact, if none exists with the given email; or 2. Gets the existing contact with the given email that already exists.

recipients[].email String Yes
recipients[].last_name String No
recipients[].signing_order Integer No
recipients[].first_name String No
recipients[].role String No
detect_title_variables Boolean No

Set this parameter as true if you want to detect title variables in the document.

pricing_tables[] Array No

Information to construct or populate a pricing table can be passed when creating a document. All product information must be passed when creating a new document. Products stored in PandaDoc cannot be used to populate table rows at this time. Keep in mind that this is an array, so multiple table objects can be passed to a document.

pricing_tables[].name String Yes
pricing_tables[].sections[] Array No
pricing_tables[].sections[].multichoice_enabled Boolean No

Default value: false

pricing_tables[].sections[].default Boolean No
pricing_tables[].sections[].title String Yes
pricing_tables[].sections[].rows[] Array No
pricing_tables[].sections[].rows[].data Object No
pricing_tables[].sections[].rows[].options Object No
pricing_tables[].sections[].rows[].options.optional_selected Boolean No
pricing_tables[].sections[].rows[].options.qty_editable Boolean No
pricing_tables[].sections[].rows[].options.optional Boolean No
pricing_tables[].sections[].rows[].custom_fields Object No
pricing_tables[].options Object No
pricing_tables[].data_merge Boolean No

When set to true all field names in data rows must be passed as external names defined in the template.

url String No

Use a URL to specify the PDF. We support only URLs starting with https.

metadata Object No

You can pass arbitrary data in the key-value format to associate custom information with a document. This information is returned in any API requests for the document details by id.

fields Object No

You can pass a list of fields/values to pre-fill fields used in a template. Please note Signature field can't be pre-filled.

parse_form_fields Boolean No

Set this parameter as true if you create a document from a PDF with form fields and as false if you upload a PDF with field tags.

tokens[] Array No

You can pass a list of tokens/values to pre-fill tokens used in a template. Name is a token name in a template. Value is a real value you would like to replace a token with.

tokens[].name String Yes
tokens[].value String Yes
template_uuid String No

ID of the template you want to use. You can copy it from an in-app template URL such as https://app.pandadoc.com/a/#/templates/{ID}/content. A template ID is also obtained by listing templates.

name String No

Name the document you are creating.

images[] Array No

You can pass a list of images to image blocks (one image in one block) for replacement.

images[].name String Yes
images[].urls[] Array Yes
tags[] Array No

Mark your document with one or several tags.

folder_uuid String No

ID of the folder where the created document should be stored.

owner Object No

You can set an owner of a document as an email or membership_id

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.