Docs

List asset wallets

GET /api/v1/programmatic/wallets

GET/api/v1/programmatic/wallets
Walletsv1wallets:read

Returns active asset wallets and their account balances.

Parameters

NameInType Description
group_idquerystringOptional Return wallets from this wallet group only. <group_id>
pagequerynumberOptional One-based result page. <page>
limitquerynumberOptional Maximum wallets returned per page. <limit>

Code examples

curl --request GET \
  --url 'https://api.tetri.app/api/v1/programmatic/wallets?group_id=<group_id>&page=<page>&limit=<limit>' \
  --header 'Authorization: Bearer $TETRI_API_TOKEN'

Responses

200Active asset wallets with account balances and pagination metadata.
{
  "data": [
    {
      "type": "wallets",
      "id": "<uuid>",
      "attributes": {
        "version": 0,
        "created_by_user_id": "<uuid>",
        "name": "Main checking",
        "type": "bank",
        "money_place_kind": "bank_account",
        "icon": "wallet",
        "icon_url": "https://cdn.tetri.app/icons/abc.webp",
        "accent_color": "sky",
        "group_id": "<uuid>",
        "include_net_worth": false,
        "notes": "<string>",
        "order": 0,
        "liability_type": "credit_card",
        "liability_direction": "outgoing",
        "interest": "5.25",
        "interest_period": "yearly",
        "term_periods": 360,
        "repayment_type": "french",
        "scheduled_payment_amount": "1066.20",
        "first_payment_date": "2026-06-15",
        "payment_day_of_month": 15,
        "expected_settle_date": "2026-12-31",
        "accounts": [
          {
            "id": "<uuid>",
            "currency": {},
            "current_balance": "1234.56",
            "opening_balance": "1234.56",
            "opening_balance_date": "2026-04-01",
            "opening_balance_missing": false,
            "active": false,
            "iban": "<string>",
            "bic": "<string>",
            "account_number": "<string>"
          }
        ],
        "total_balance": "1234.56",
        "total_balance_currency": {},
        "balance_aggregate": {
          "contract_version": "wallet-setup-v1",
          "amount": "1234.56",
          "currency": {},
          "status": "complete",
          "reasons": [
            "home_currency_missing"
          ],
          "missing_opening_balance_account_ids": [
            "<uuid>"
          ],
          "missing_fx_currency_ids": [
            "<uuid>"
          ]
        },
        "per_currency": [
          {
            "currency_id": "<uuid>",
            "currency_code": "USD",
            "amount": "1234.56"
          }
        ],
        "balance_sparkline_30d": [
          0
        ],
        "balance_trend_30d_percentage": "-3.2",
        "last_transaction_at": "2026-07-12T12:00:00Z",
        "needs_opening_balance_setup": false,
        "last_reconciled_at": "2026-07-12",
        "reconciliation_status": "draft",
        "credit_card": {},
        "created_at": "2026-07-12T12:00:00Z",
        "updated_at": "2026-07-12T12:00:00Z",
        "archived_at": "2026-07-12T12:00:00Z",
        "is_archived": false,
        "created_by": {}
      }
    }
  ],
  "meta": {
    "pagination": "<string>"
  }
}
400Request parameters or payload failed validation. Inspect `code` and `message`.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
401The personal access token is missing, invalid, expired, or revoked.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
403The token lacks the required scope or no longer has workspace access.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
429The credential exceeded its request rate limit.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}