> ## 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.

# Retrieve a Vault

> Retrieve a single vault by ID, including its wallets, asset, and sub-org.

**GET** `/api/external/vaults/{vaultId}/`

## Path parameter

<ParamField path="vaultId" type="string" required>
  ID returned by a vault list or create response.
</ParamField>

## Response

Returns a [Vault](/api-basics/data-models#vault).

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

<RequestExample dropdown>
  ```json Request example theme={null}
  {
    "path": {
      "vaultId": "vault_ngn_business"
    }
  }
  ```

  ```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/vault_ngn_business/" \
    --header "Authorization: Bearer <signed JWT>" \
    --header "Api-Key: <API key>" \
    --header "Accept: application/json"
  ```

  ```typescript JavaScript SDK theme={null}
  const vault = await apiClient.getVaultById("vault_ngn_business");
  console.log(vault.id, vault.asset); // vault_ngn_business, NGN
  ```
</RequestExample>

<ResponseExample dropdown>
  ```json Response example theme={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
  }
  ```

  ```typescript JavaScript SDK theme={null}
  interface Vault {
    id: string;
    orgId: string;
    subOrgId?: string;
    vaultName: string;
    vaultType: VaultType;
    asset?: string | null;
    wallets: Array<{
      id: string;
      blockchain: string;
      address?: string;
      publicKey?: string;
    }>;
    walletsGenerated: boolean;
    createdAt: string;
    updatedAt: string;
    isDeleted: boolean;
  }
  ```
</ResponseExample>


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