---
title: "Template Details"
method: GET
path: "/public/v1/templates/{id}/details"
tags: ["Templates"]
---

# Template Details

`GET /public/v1/templates/{id}/details`

## Request

- Base URL: `https://api.pandadoc.com`
- URL: `https://api.pandadoc.com/public/v1/templates/{id}/details`
- Auth: one of:
  - API key in header `Authorization`
  - OAuth 2
    - Authorization code: `https://app.pandadoc.com/oauth2/authorize`
    - Token URL: `https://api.pandadoc.com/oauth2/access_token`
- TypeScript: <https://skmtc.dev/pandadoc/apis/pandadoc-public-api/docs/public/v1/templates/:id/details/get.ts> (a function with typed inputs; its response is checked against the schema)

Get details about a template by `id`. Details include:

- Basic template information (name, author, etc)
- Roles
- All fields with values
- All tokens with values
- Pricing information (pricing tables, products, quotes)
- Template metadata
- Template tags
- Content placeholders
- Modification timestamps. Note that `date_modified` means any changes associated with the template roles, while `content_date_modified` logs any changes in the template content.

## Path parameters

- `id` string, required

## Response `200`

OK

- TemplateDetailsResponse
  - `id` string
  - `name` string
  - `folder_uuid` string
  - `date_created` string
  - `date_modified` string
  - `content_date_modified` string
  - `created_by` object
    - `id` string
    - `email` string
    - `first_name` string
    - `last_name` string
    - `avatar` string, nullable
  - `metadata` object
  - `tokens` Token[]: Template tokens.
    - `name` string, required: Token name.
    - `value` string: Token value.
  - `fields` Field[]: Template fields.
    - union
      - Checkbox
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'checkbox'
        - `value` boolean: Value of the Checkbox field.
        - `merge_field` string
      - CollectFile
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'collect_file'
        - `value` object: Value of the Collect File field.
          - `name` string
          - `url` string
      - Date
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'date'
        - `value` string, date-time: Value of the Date field.
        - `merge_field` string
      - Dropdown
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'dropdown'
        - `value` string: Value of the Dropdown field.
        - `merge_field` string
      - Initials
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'initials'
        - `value` object: Value of the Initials field. Always empty object.
      - Payment
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'payment_details'
        - `value` string: Value of the Payment field. Always empty string.
      - RadioButtons
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'radio_buttons'
        - `value` string: Value of the Radio Buttons field.
        - `merge_field` string
      - Signature
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'signature'
        - `value` object: Value of the Signature field. Always empty object.
      - Stamp
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'stamp'
        - `value` object: Value of the Stamp field. Always empty object.
      - Text
        - `uuid` string
        - `name` string: Name of a field
        - `title` string
        - `placeholder` string: Placeholder of a field
        - `assigned_to` union
          - RecipientAssignedTo: Recipient
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `first_name` string
            - `last_name` string
            - `phone` string
            - `role` string
            - `delivery_methods` AssignedToRecipientDeliveryMethods
              - …
            - `redirect` RecipientRedirectSettings
              - …
            - `type` 'recipient'
          - RecipientsGroupAssignedTo: Collection of Recipients
            - `id` string
            - `email` string, email
            - `recipient_type` string
            - `roles` string[]
            - `signing_order` integer
            - `has_completed` boolean
            - `name` string
            - `members` object[]
              - …
            - `type` 'recipient_group'
        - `field_id` string
        - `is_filled` boolean: Whether the field has a completed value according to its type.
        - `type` 'text'
        - `value` string: Value of the Text field.
        - `merge_field` string, nullable
  - `pricing` PricingResponse
    - `tables` PricingTableResponse[]
      - `name` string
      - `id` string
      - `total` string
      - `is_included_in_total` boolean
      - `summary` object, nullable
        - `subtotal` string, nullable
        - `total` string, nullable
        - `discount` string, nullable
        - `tax` string, nullable
        - `fee` string, nullable
      - `items` object[]
        - `id` string, nullable
        - `sku` string, nullable
        - `qty` string, nullable
        - `name` string, nullable
        - `cost` string, nullable
        - `price` string, nullable
        - `description` string, nullable
        - `custom_fields` object, nullable
        - `custom_columns` object, nullable
        - `discount` object, nullable
          - `value` string, nullable
          - `type` string, nullable
        - `tax_first` object, nullable
          - `value` string, nullable
          - `type` string, nullable
        - `tax_second` object, nullable
          - `value` string, nullable
          - `type` string, nullable
        - `subtotal` string, nullable
        - `options` object, nullable
          - `optional` boolean, nullable
          - `optional_selected` boolean, nullable
          - `multichoice_enabled` boolean, nullable
          - `multichoice_selected` boolean, nullable
          - `qty_editable` boolean
        - `sale_price` string, nullable
        - `taxes` object, nullable
        - `discounts` object, nullable
        - `fees` object, nullable
        - `merged_data` object, nullable: Contains all fields in a flat structure with external field names defined in the template.
      - `currency` string
    - `quotes` QuoteResponse[]
      - `id` string
      - `currency` string
      - `total` string
      - `summary` object
        - `total` string
        - `subtotal` string, nullable
        - `one_time_subtotal` string, nullable
        - `recurring_subtotal` object[], nullable
          - `billing_cycle` string
          - `value` string
        - `total_qty` string, nullable
        - `discounts` object, nullable
        - `taxes` object, nullable
        - `fees` object, nullable
        - `custom_fields` object, nullable
        - `total_discount` string, nullable
        - `total_tax` string, nullable
        - `total_fee` string, nullable
        - `total_savings` string, nullable
        - `total_contract_value` string, nullable
      - `sections` object[]
        - `id` string
        - `name` string
        - `summary` object
          - `total` string
          - `subtotal` string, nullable
          - `one_time_subtotal` string, nullable
          - `recurring_subtotal` object[], nullable
            - `billing_cycle` string
            - `value` string
          - `total_qty` string, nullable
          - `discounts` object, nullable
          - `taxes` object, nullable
          - `fees` object, nullable
          - `custom_fields` object, nullable
          - `total_section_value` string, nullable
        - `columns` object[]
          - `header` string, nullable
          - `name` string
          - `merge_name` string, nullable
          - `hidden` boolean
          - `formula_expression` string, nullable
          - `formula_error_code` string, nullable
        - `items` object[], nullable
          - `id` string, nullable
          - `sku` string, nullable
          - `name` string, nullable
          - `description` string, nullable
          - `qty` string, nullable
          - `price` string, nullable
          - `cost` string, nullable
          - `billing_frequency` 'weekly' | 'monthly' | 'annually' | 'quarterly' | 'semiannually', nullable
          - `contract_term` string, nullable
          - `pricing_method` string, nullable
          - `type` string, nullable
          - `reference_type` string, nullable
          - `options` object, nullable
            - `selected` boolean, nullable
            - `qty_editable` boolean, nullable
          - `custom_columns` object, nullable
          - `formula_columns` object, nullable
          - `external_columns` object
          - `discounts` object, nullable
          - `taxes` object, nullable
          - `fees` object, nullable
          - `multipliers` object, nullable
          - `total` string, nullable
          - `overall_total` string, nullable
          - `total_qty` string, nullable
          - `reference_id` string, nullable
          - `thumbnail` string, nullable
          - `images` string[], nullable
          - `merged_data` object, nullable
        - `total` string
        - `settings` QuoteSectionSettings
          - `optional` boolean
          - `selected` boolean
          - `selection_type` 'custom' | 'single' | 'multiple'
          - `data_merge_enabled` boolean
      - `merge_rules` object[]
        - `id` string
        - `enabled` boolean
        - `action` object
          - `type` string
          - `section_id` string
        - `condition` object
          - `field_name` string
          - `type` string
          - `comparison` object[]
            - `type` string
            - `value` string
      - `settings` object
        - `selection_type` 'custom' | 'single' | 'multiple'
    - `total` string
  - `tags` string[]
  - `roles` object[]
    - `id` string
    - `name` string
    - `signing_order` string, nullable
    - `preassigned_person` object, nullable
      - `email` string, nullable
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `type` string
      - `placeholder_name` string, nullable
      - `placeholder_source` string, nullable
      - `members` object[]: List of contacts in the group. Only present for type "preassigned contact group".
        - `email` string, nullable
        - `first_name` string, nullable
        - `last_name` string, nullable
  - `version` string
  - `content_placeholders` object[]
    - `uuid` string
    - `block_id` string
    - `description` string
  - `tables` object[]: Document tables.
    - `name` string: Table name.
  - `images` object[]
    - `name` string, nullable
    - `block_uuid` string
    - `urls` string[]

## Other responses

- `401`: Authentication error
- `403`: Permission error
- `404`: Not found
- `429`: Too Many Requests

## Changes

- **2026-11-03** `b9a306b1a421`: 1 breaking, 5 warning, 10 info
  - the `pricing/quotes/items/sections/items/columns/items/hidden` response's property type changed from `string` to `boolean` for status `200`
  - added the new `annually` enum value to the `pricing/quotes/items/sections/items/items/items/billing_frequency` response property for the response status `200`
  - added the new `monthly` enum value to the `pricing/quotes/items/sections/items/items/items/billing_frequency` response property for the response status `200`
  - added the new `quarterly` enum value to the `pricing/quotes/items/sections/items/items/items/billing_frequency` response property for the response status `200`
  - …12 more

[Operation history](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/changes/public/v1/templates/:id/details/get.md)

---

[API](https://skmtc.dev/pandadoc/apis/pandadoc-public-api.md) - [All operations](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pandadoc/apis/pandadoc-public-api/revisions/b9a306b1a421?raw)
