---
title: "List Document Audit Trail"
method: GET
path: "/public/v2/documents/{document_id}/audit-trail"
tags: ["Document Audit Trail"]
---

# List Document Audit Trail

`GET /public/v2/documents/{document_id}/audit-trail`

Retrieves the full audit trail for a specified document. The audit trail includes detailed user actions
such as sending, viewing, signing, and editing, along with metadata like timestamps, IP addresses, and user identity.
This endpoint is accessible to authorized workspace administrators only.

## Path parameters

- `document_id` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Successfully retrieved audit trail.

- DocumentAuditTrailResponse
  - `count` integer — Total number of audit trail entries available.
  - `results` object[] — List of audit trail entries returned for the current page.
    - `id` string — Unique identifier of the audit trail entry.
    - `user` object — The user who triggered the action.
      - `id` string — Unique identifier of the user.
      - `email` string, email — User's email address.
    - `action` integer — Numeric code representing the type of action performed. Possible values: | Integer Value | String Representation | |---------------|---------------------------------------------| | 1 | new document | | 2 | new revision | | 3 | approval request | | 4 | approved | | 5 | rejected | | 6 | sent | | 7 | completed by all | | 8 | viewed | | 9 | completed | | 10 | waiting pay | | 11 | paid | | 12 | forwarded | | 13 | expired | | 14 | bank account submitted | | 15 | bank account verified | | 16 | payment submitted | | 17 | payment failed | | 18 | completed manually | | 19 | expired manually | | 20 | paid manually | | 21 | approval deleted | | 22 | approval forced | | 23 | reassigned | | 24 | recipient edited | | 25 | recipient added | | 26 | recipient deleted | | 27 | declined manually | | 28 | approval step skipped | | 29 | suggest edits | | 43 | declined | | 44 | partly paid | | 45 | partly paid manually | | 47 | recipient verification with kba passed | | 48 | recipient verification with id passed | | 49 | recipient verification with text sms passed | | 50 | recipient verification with passcode passed | | 51 | recipient verification with kba failed | | 52 | recipient verification with id failed | | 53 | recipient verification with text sms failed | | 54 | recipient verification with passcode failed | | 55 | recipient signed with QES | | 56 | QES completed | | 57 | recipient QES attempt started | | 58 | recipient QES attempt expired | | 59 | Optional item in quote selected | | 60 | Optional item in quote deselected | | 61 | Item quantity in quote changed | | 62 | Item quantity in pricing table changed | | 63 | Optional item in pricing table selected | | 64 | Optional item in pricing table deselected | | 65 | Section item in pricing table selected (one of) | | 66 | Optional section in quote selected | | 67 | Optional section in quote deselected | | 68 | Section quantity in quote changed | | 69 | recipient verification with email otp passed | | 70 | recipient verification with email otp failed |
    - `reason` string, nullable — Optional reason or explanation for the action.
    - `date_created` string, date-time — Timestamp when the action was performed (in ISO 8601 format).
    - `ip_address` string, nullable — The IP address from which the action was performed. If a sandbox API key is used, this will be "hidden".

---

[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)
