> ## Documentation Index
> Fetch the complete documentation index at: https://docs.primevault.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Vaults

> Retrieve a paginated list of vaults in your organization, optionally filtered by vault name.

**GET** `/api/external/vaults/?limit={limit}&cursor={cursor}&{filters}`

## Query parameters

<ParamField query="limit" type="number">
  Requested page size. SDK default: 20.
</ParamField>

<ParamField query="cursor" type="string | null">
  First page: null/empty. Subsequent pages: the preceding `nextCursor`.
</ParamField>

<ParamField query="Filters" type="Record<string, string>">
  Resource filters, for example `vaultName`.
</ParamField>

## Response

Returns a page of [Vault](/api-basics/data-models#vault) objects. See [Cursor response](/api-basics/filtering-and-pagination#cursor-response).

<ResponseField name="results" type="Vault[]">
  Vaults on this page. Each item is a [Vault](/api-basics/data-models#vault).

  <Expandable title="Properties">
    <ResponseField name="id" type="string">
      Vault ID.
    </ResponseField>

    <ResponseField name="orgId" type="string">
      Organization that owns the vault.
    </ResponseField>

    <ResponseField name="subOrgId" type="string">
      [Sub-org](/sub-orgs/overview) that owns the vault, if any.
    </ResponseField>

    <ResponseField name="vaultName" type="string">
      Vault name.
    </ResponseField>

    <ResponseField name="vaultType" type="VaultType">
      `DEFAULT`, `EXCHANGE`, or `GAS`. See [VaultType](/api-basics/data-models#vaulttype).
    </ResponseField>

    <ResponseField name="asset" type="string | null">
      Currency of a multi-currency account vault, for example `NGN`. `null` for self-custody vaults.
    </ResponseField>

    <ResponseField name="wallets" type="object[]">
      Blockchain wallets in the vault.

      <Expandable title="Properties">
        <ResponseField name="id" type="string">
          Wallet ID.
        </ResponseField>

        <ResponseField name="blockchain" type="string">
          Chain the wallet is on.
        </ResponseField>

        <ResponseField name="address" type="string">
          Wallet address. Missing until the wallet is generated.
        </ResponseField>

        <ResponseField name="publicKey" type="string">
          Wallet public key.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="walletsGenerated" type="boolean">
      Whether wallet addresses are ready. Wait for `true` before using `wallets`.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      Creation timestamp (ISO 8601).
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      Last update timestamp (ISO 8601).
    </ResponseField>

    <ResponseField name="isDeleted" type="boolean">
      Whether the vault is deleted.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="nextCursor" type="string | null">
  Cursor for the next page. `null` on the last page.
</ResponseField>

<ResponseField name="hasNext" type="boolean">
  Whether another page exists.
</ResponseField>

<RequestExample dropdown>
  ```json Request example theme={null}
  {
    "query": {
      "limit": 20,
      "cursor": null,
      "vaultName": "Treasury"
    }
  }
  ```

  ```bash cURL theme={null}
  # Sample only. Generate a new signed token for each request
  # (see Authentication). Tokens expire after 120 seconds.
  curl --request GET \
    --url "https://api.primevault.com/api/external/vaults/?limit=20&vaultName=Treasury" \
    --header "Authorization: Bearer <signed JWT>" \
    --header "Api-Key: <API key>" \
    --header "Accept: application/json"
  ```

  ```typescript JavaScript SDK theme={null}
  getVaults(
    params?: Record<string, string>,
    limit?: number,
    cursor?: string | null,
  ): Promise<VaultListResponse>

  const firstPage = await apiClient.getVaults(
    { vaultName: "Treasury" },
    20,
    null,
  );
  ```
</RequestExample>

<ResponseExample dropdown>
  ```json Response example theme={null}
  {
    "results": [
      {
        "id": "vault_123",
        "orgId": "org_456",
        "subOrgId": "sub_org_123",
        "vaultName": "Treasury Vault",
        "vaultType": "DEFAULT",
        "wallets": [
          {
            "id": "wallet_123",
            "blockchain": "ETHEREUM",
            "address": "0x1234567890abcdef1234567890abcdef12345678",
            "publicKey": "0x04abcdef"
          }
        ],
        "walletsGenerated": true,
        "createdAt": "2026-08-04T10:30:00Z",
        "updatedAt": "2026-08-04T10:35:00Z",
        "isDeleted": false,
        "asset": null
      },
      {
        "id": "vault_ngn_business",
        "orgId": "org_456",
        "subOrgId": "sub_org_123",
        "vaultName": "NGN Business Account",
        "vaultType": "DEFAULT",
        "asset": "NGN",
        "wallets": [],
        "walletsGenerated": false,
        "createdAt": "2026-09-27T10:00:00Z",
        "updatedAt": "2026-09-27T10:00:00Z",
        "isDeleted": false
      }
    ],
    "nextCursor": "eyJpZCI6InZhdWx0XzEyMyJ9",
    "hasNext": true
  }
  ```

  ```typescript JavaScript SDK theme={null}
  interface VaultListResponse {
    results: Vault[];
    nextCursor?: string | null;
    hasNext?: boolean;
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.