# Query audit logs with filters

> 🔒 **Private label — [contact sales](mailto:sales@boyahq.com).** Requires a private-label entitlement on your API client.

Query audit logs with filters

Endpoint: POST /wallet-policies/audit/query
Version: 2.0.0
Security: oauth2ClientCredentials

## Header parameters:

  - `business_id` (string, required)
    Business identifier for the request

## Request fields (application/json):

  - `search` (string)
    Search action, reason, performer, or policy subject

  - `policy_id` (string)
    Filter by policy ID

  - `wallet_id` (string)
    Filter by wallet ID

  - `performed_by` (string)
    Filter by performer employee ID

  - `action` (string)
    Filter by action type
    Enum: "GRANTED", "MODIFIED", "SUSPENDED", "REVOKED", "EXPIRED", "REACTIVATED"

  - `from_date` (string)
    Filter from date

  - `to_date` (string)
    Filter to date

  - `limit` (number)
    Number of records to return

  - `offset` (number)
    Number of records to skip

## Response 200 fields (application/json):

  - `docs` (array, required)
    List of audit log entries

  - `docs._id` (string, required)
    Audit log MongoDB ID

  - `docs.policy_id` (string, required)
    Policy ID

  - `docs.wallet_id` (string, required)
    Wallet ID

  - `docs.action` (string, required)
    Action performed
    Enum: "GRANTED", "MODIFIED", "SUSPENDED", "REVOKED", "EXPIRED", "REACTIVATED"

  - `docs.performed_by` (object)
    Employee who performed the action

  - `docs.changes` (object)
    Changes made

  - `docs.reason` (string)
    Reason for the action

  - `docs.ip_address` (string)
    IP address of the request

  - `docs.user_agent` (string)
    User agent of the request

  - `docs.createdAt` (string, required)
    Timestamp of the action

  - `docs.updatedAt` (string)
    Last update timestamp

  - `total` (number, required)
    Total count

  - `page` (number, required)
    Current page

  - `limit` (number, required)
    Items per page

  - `pages` (number, required)
    Total pages

