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

> Retrieve a paginated list of transactions, filtered by status, category, vault, asset, or external ID.

**GET** `/api/external/transactions/?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>">
  Transaction filters such as status, category, vaultId, asset, or externalId when supported.
</ParamField>

## Response

```typescript theme={null}
interface TransactionListResponse {
  results: Transaction[];
  nextCursor?: string | null;
  hasNext?: boolean;
}
```

<RequestExample dropdown>
  ```json Request example theme={null}
  {
    "query": {
      "limit": 20,
      "cursor": null,
      "status": "COMPLETED",
      "vaultId": "vault_123"
    }
  }
  ```

  ```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/transactions/?limit=20&status=COMPLETED&vaultId=vault_123" \
    --header "Authorization: Bearer <signed JWT>" \
    --header "Api-Key: <API key>" \
    --header "Accept: application/json"
  ```

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

<ResponseExample>
  ```json JSON example theme={null}
  {
    "results": [
      {
        "id": "transaction_123",
        "orgId": "org_456",
        "vaultId": "vault_123",
        "status": "COMPLETED",
        "transactionType": "OUTGOING",
        "category": "TRANSFER",
        "subCategory": "EXTERNAL_TRANSFER",
        "createdAt": "2026-08-04T10:40:00Z",
        "updatedAt": "2026-08-04T10:42:15Z",
        "isDeleted": false,
        "externalId": "invoice-1001",
        "memo": "Vendor payout #1001",
        "source": {
          "type": "VAULT",
          "id": "vault_123",
          "subOrgId": "sub_org_123",
          "name": "Treasury Vault"
        },
        "destination": {
          "type": "CONTACT",
          "id": "contact_456",
          "name": "Operations Wallet",
          "address": "0xAbC1234567890abcdef1234567890abcdef1234",
          "chain": "ETHEREUM"
        },
        "blockChain": "ETHEREUM",
        "asset": "ETH",
        "amount": "0.50",
        "txHash": "0x9f4e6c1b7a2d3e4f",
        "balanceChanges": {
          "changes": [
            {
              "party": {
                "type": "VAULT",
                "id": "vault_123",
                "subOrgId": "sub_org_123",
                "name": "Treasury Vault"
              },
              "asset": "ETH",
              "amount": "-0.50",
              "chain": "ETHEREUM"
            },
            {
              "party": {
                "type": "CONTACT",
                "id": "contact_456",
                "name": "Operations Wallet",
                "address": "0xAbC1234567890abcdef1234567890abcdef1234",
                "chain": "ETHEREUM"
              },
              "asset": "ETH",
              "amount": "0.50",
              "chain": "ETHEREUM"
            }
          ]
        }
      }
    ],
    "nextCursor": "eyJpZCI6InRyYW5zYWN0aW9uXzEyMyJ9",
    "hasNext": true
  }
  ```
</ResponseExample>


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