---
title: "Document Details"
method: GET
path: "/public/v1/documents/{id}/details"
tags: ["Documents"]
---

# Document Details

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

Return detailed data about a document. Use Document Status for getting just a basic info and status.

Get details about a document by its `id`. Details include:

- Basic document information (name, document state, owner, sender, grand total, etc.)
- Recipients (completion status, signing order, etc.)
- Fields with values (incl. Collect Files field)
- Tokens (variables) with values
- Pricing information (pricing tables, products, quotes, etc.)
- Content block names for table, image, and text blocks (tables, images, texts)
- Metadata
- Tags
- Linked objects
- [Approval flow](https://support.pandadoc.com/en/articles/9714799-approval-workflow) (if present)
- Active editing lock (holder and expiry), when the document is locked
- Timestamps associated with a document. Note that `date_modified` means any changes associated with the recipients and document status, while `content_date_modified` reflects any changes in the document content.

## Path parameters

- `id` string, required

## Response `200`

OK

- DocumentDetailsResponse
  - `id` string — Document ID.
  - `name` string — Document name.
  - `autonumbering_sequence_name_prefix` unknown
  - `folder_uuid` string, nullable — ID of the folder where the created document should be stored.
  - `date_created` string — Document creation date.
  - `date_modified` string — Document modification date.
  - `date_completed` string, nullable — Document completion date.
  - `content_date_modified` string — Document content modification date.
  - `date_sent` string, nullable — Document sent date.
  - `ref_number` string — Document reference number.
  - `created_by` object — Document creator details.
    - `id` string — Creator ID.
    - `membership_id` string — Creator membership ID.
    - `email` string — Creator email.
    - `first_name` string — Creator first name.
    - `last_name` string — Creator last name.
    - `avatar` string, nullable — Creator avatar URL.
  - `template` object, nullable — Source template of the document. `null` for documents created from multiple templates (bundles) because only a single parent template is stored.
    - `id` string — Template ID.
    - `name` string — Template name.
  - `expiration_date` string, nullable — Document expiration date.
  - `metadata` object — Document metadata.
  - `tokens` Token[] — Document tokens.
    - `name` string, required — Token name.
    - `value` string — Token value.
  - `fields` Field[] — Document 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
        - `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` string
        - `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` string, 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
          - `external_columns` object
          - `discounts` object, nullable
          - `taxes` object, nullable
          - `fees` object, nullable
          - `multipliers` object, nullable
          - `total` string, nullable
          - `overall_total` string, nullable
        - `total` string
        - `settings` QuoteSectionSettings
          - `optional` boolean
          - `selected` boolean
          - `selection_type` 'custom' | 'single' | 'multiple'
      - `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
  - `tables` object[] — Document tables.
    - `name` string — Table name.
  - `images` object[] — Document images.
    - `name` string — Image name.
  - `texts` object[] — Document text blocks.
    - `name` string — Text name.
  - `tags` string[] — Document tags.
  - `sent_by` object, nullable — Document sent by.
    - `id` string
    - `email` string
    - `first_name` string
    - `last_name` string
    - `avatar` string, nullable
  - `recipients` union[] — Document recipients.
    - union
      - object — Recipient
        - `id` string
        - `recipient_type` 'signer' | 'CC' | 'approver'
        - `role` string, nullable
        - `roles` string[]
        - `signing_order` integer, nullable
        - `email` string, nullable
        - `has_completed` boolean
        - `last_name` string
        - `contact_id` string
        - `first_name` string
        - `phone` string, nullable
        - `delivery_methods` RecipientDeliveryMethods, nullable
          - `email` boolean
          - `sms` boolean
        - `shared_link` string
        - `signature_date` string, nullable
        - `verification_settings` RecipientVerificationSettingsResponse — To set up recipient verification, provide verification_place (required) and exactly one verification type: passcode_verification, phone_verification, kba_verification, id_verification, or email_otp_verification. All other verification type fields must be null. Providing more than one verification type returns a 400 error. - For passcode_verification, provide the passcode. - For phone_verification, provide the phone_number. - For email_otp_verification, provide the email. - For kba_verification and id_verification, set the enabled parameter to true.
          - `verification_place` 'before_open' | 'before_sign' — Specifies when a recipient must complete the verification process: - `before_open` (before opening the document), - `before_sign` (before signing the document).
          - `passcode_verification` object, nullable — Sets the passcode.
            - `passcode` string, required — Document passcode.
          - `phone_verification` object, nullable — Sets the phone number to send a passcode to.
            - `phone_number` string, required — A phone number to send a passcode to.
          - `kba_verification` object, nullable — Sets the KBA verification.
            - `time_limit_sec` integer
            - `score_threshold` integer
            - `max_attempts_count` integer
          - `id_verification` object, nullable — Sets the ID verification.
            - `enabled` boolean
          - `email_otp_verification` object, nullable — Sets the email address to send a one-time passcode to.
            - `email` string, email, required — An email address to send a one-time passcode to.
        - `redirect` RecipientRedirect
          - `is_enabled` boolean, required
          - `url` string, nullable, required — A URL to redirect to after the document is signed.
        - `avatar` string, nullable
        - `type` 'recipient'
      - object — Recipient Group
        - `id` string
        - `recipient_type` 'signer' | 'CC' | 'approver'
        - `role` string, nullable
        - `roles` string[]
        - `signing_order` integer, nullable
        - `email` string, nullable
        - `has_completed` boolean
        - `name` string
        - `type` 'recipient_group'
        - `members` DocumentDetailsRecipientGroupMember[]
          - `id` string
          - `first_name` string
          - `last_name` string
          - `email` string, nullable
          - `shared_link` string
          - `avatar` string, nullable
          - `signature_date` string, nullable
  - `grand_total` object — Document grand total.
    - `amount` string — Total amount.
    - `currency` string — Currency type.
  - `linked_objects` object[] — Document linked objects.
    - `provider` string — Linked object provider.
    - `entity_type` string — Linked object entity type.
    - `entity_id` string — Linked object entity ID.
    - `id` string — Linked object ID.
    - `children` object[] — Linked object children array.
      - `entity_type` string — Linked object child entity type.
      - `entity_id` string — Linked object child entity ID.
      - `id` string — Linked object child ID.
  - `status` 'document.draft' | 'document.sent' | 'document.completed' | 'document.uploaded' | 'document.error' | 'document.viewed' | 'document.waiting_approval' | 'document.approved' | 'document.rejected' | 'document.waiting_pay' | 'document.paid' | 'document.voided' | 'document.declined' | 'document.external_review' | 'document.scheduled'
  - `approval_execution` object, nullable — Document approval execution.
    - `document_uuid` string — Decoded uuid of related RegularDocument instance.
    - `revision_number` integer — Consequent number of revision for related RegularDocument.
  - `version` string — Document version.
  - `lock` object, nullable — Active editing lock on the document, if any. `null` when the document is not locked or the lock has expired.
    - `locked_by_user_id` string — A unique identifier of the user holding the lock.
    - `lock_type` 'wopi_editing' — Type of the active document lock.
    - `expires_at` string, date-time — ISO 8601 timestamp when the lock automatically expires.

## Other responses

- `401` — Authentication error
- `403` — Permission error
- `404` — Not found
- `409` — Conflict
- `429` — Too Many Requests

---

[API](https://skmtc.net/pandadoc/apis/pandadoc-public-api.md) · [All operations](https://skmtc.net/pandadoc/apis/pandadoc-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pandadoc/pandadoc-public-api/versions/0c2b70be3fb0/schema)
