---
title: "List policies"
method: GET
path: "/policies"
tags: ["policy"]
---

# List policies

`GET /policies`

## Query parameters

- `page` integer — Which page to fetch
- `pageSize` integer — Page size to use
- `name` string — Search by matching name
- `isPrivate` boolean — Search private policies
- `currency` string — Search by currency
- `contractAddress` string — Filter by token contract address (requires 'currency')
- `tokenIdentifier` string — Filter by token identifier (requires 'currency')
- `policyType` 'single' | 'multiple' — Filter by policy type: 'single' returns policies with any currency assigned, 'multiple' returns policies without a currency (multicurrency)
- `sortBy` 'name' | 'createdAt' | 'updatedAt' — Sort by attribute
- `sortOrder` 'asc' | 'desc' — Sort order

## Response `200`

Successful response

- object
  - `page` number, required — Current page
  - `next` number, required — Next page or null if there is none
  - `prev` number, required — Previous page or null if there is none
  - `pageSize` number, required — Max count of items per page
  - `total` number, required — Total count of items
  - `results` PolicyResponse[], required — Array of results
    - `id` string, required — Internal unique identifier
    - `legacyId` number, required — Legacy internal unique identifier (for retro-compatibility)
    - `name` string, required — Policy name
    - `description` string, required — Policy description
    - `asset` object, required — Policy asset identity
      - `network` string, required — Network (Same as currency for now)
      - `contractAddress` string, required — Token issuer
      - `tokenIdentifier` string, required — Token identifier
    - `isPrivate` boolean, required — Whether the policy is private
    - `rules` GovRuleResponse[], required — List of governance rules
      - `reviewSteps` union[], required — Review steps
        - union
          - object — Review step with users
            - `quorum` number, required — Number of required approvals for the step
            - `userIds` string[], required — User ids in the step
          - object — Review step with group
            - `quorum` number, required — Number of required approvals for the step
            - `groupId` string, required — Group id in the step
      - `threshold` object — Threshold for the transaction value
        - `min` string, required — Minimum transaction amount
        - `max` string, required — Maximum transaction amount
      - `whitelistIds` string[] — IDs of whitelists for the recipient address
      - `operationType` 'SEND' | 'DEPLOY_CONTRACT' | 'EXECUTE_CONTRACT' | 'ACTIVATE_TOKEN' | 'RECEIVE' | 'STAKE' | 'SIGN_MESSAGE' | 'SIGN_DIGESTS', required — Allowed action
    - `whitelists` WhitelistResponse[], required — Related whitelists
      - `id` string, required — Internal unique identifier
      - `legacyId` number, required — Legacy internal unique identifier (for retro-compatibility)
      - `name` string, required — Whitelist name
      - `type` 'TRANSACTION' | 'SMART_CONTRACT', required — Whitelist usage type
      - `status` 'ACTIVE' | 'INACTIVE', required — Whitelist status
      - `addresses` object[], required
        - `name` string, required — Address name
        - `currency` string, required — Address currency
        - `address` string, required — Address value
        - `destinationTag` string — Destination tag (applicable for Ripple currency)
      - `createdAt` string, required — Creation timestamp
      - `updatedAt` string, required — Last modification timestamp
      - `description` string, required — Whitelist description
    - `users` object[], required — Referenced users
      - `id` string, required — Internal unique identifier
      - `legacyId` number, required — Legacy internal unique identifier (for retro-compatibility)
      - `legacyViewAll` boolean, required — If true, user can read all resources on the workspace
      - `workspaceName` string, required — User's workspace name
      - `name` string, required — User name
      - `deviceUserId` string, required — User's device ID (for non-API users)
      - `deviceType` 'PSD' | 'SOFT_PSD' | 'API', required — User's device type
      - `role` 'ADMIN' | 'OPERATOR' | 'READ_ONLY_API_KEY', required — User role
      - `pubKey` string, required — User public key
      - `status` 'ACTIVE' | 'INACTIVE', required — User status
      - `isSuspended` boolean, required — Whether the user is suspended
      - `createdAt` string, required — Creation timestamp
      - `updatedAt` string, required — Last modification timestamp
    - `groups` object[], required — Referenced groups
      - `id` string, required — Internal unique identifier
      - `legacyId` number, required — Legacy internal unique identifier (for retro-compatibility)
      - `name` string, required — Group name
      - `description` string, required — Group description
      - `status` 'ACTIVE' | 'INACTIVE', required — Group status
      - `createdAt` string, required — Creation timestamp
      - `updatedAt` string, required — Last modification timestamp
      - `memberIds` string[], required — List of member user IDs
    - `createdAt` string, required — Creation timestamp
    - `updatedAt` string, required — Last modification timestamp

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `404` — Not found
- `500` — Internal server error

---

[API](https://skmtc.net/ledgerhq/apis/vault-api.md) · [All operations](https://skmtc.net/ledgerhq/apis/vault-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ledgerhq/vault-api/revisions/c88faa17bc25/schema)
