---
title: "List accounts for a connection (discriminated union)"
method: GET
path: "/connections/{connectionId}/accounts"
tags: ["Experimental endpoints"]
---

# List accounts for a connection (discriminated union)

`GET /connections/{connectionId}/accounts`

Experimental and subject to change without notice.

Returns the accounts that belong to the specified connection for the authenticated user, using the `kind`-discriminated account shape.

Each item in the response carries a `kind` field (`investment`, `deposit`, and `line_of_credit` are implemented) that determines which additional fields are present -- see the `ConnectionAccount` schema.

On Pay as you Go / Real-time, this endpoint refreshes each account's opening date and total net value (`net_value`) live from the institution on each call, along with funding date for `investment` accounts.

On Pay as you Go / Daily, this endpoint returns Daily data. Daily data is cached and refreshed once a day. Exact refresh timing may vary by institution. To force a refresh, use the [manual refresh endpoint](/reference/Connections/Connections_refreshBrokerageAuthorization).

Check your API key on the [Customer Dashboard billing page](https://dashboard.snaptrade.com/settings/billing) to see whether your plan includes real-time data.

## Path parameters

- `connectionId` string, uuid, required — Unique identifier for the connection (brokerage_authorization_id). This is the UUID used to reference the connection in SnapTrade.

## Query parameters

- `userId` string, required — SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
- `userSecret` string, required — SnapTrade User Secret. This is a randomly generated string and should be stored securely. If compromised, please rotate it via the [rotate user secret endpoint](/reference/Authentication/Authentication_resetSnapTradeUserSecret).

## Response `200`

OK

- ConnectionAccount[] — List of accounts under the specified connection.
  - union — A single account under a connection, from the `kind`-discriminated union used by `Connections_listConnectionAccounts`. Use `kind` to determine which schema is present. `investment`, `deposit`, and `line_of_credit` are implemented today.
    - InvestmentAccount — An investment account under a connection. `opening_date`, `funding_date`, and `net_value` are real-time or cached depending on the caller's plan -- see `Connections_listConnectionAccounts`.
      - `kind` 'investment', required — Discriminator for the account kind.
      - `id` string, uuid, required — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
      - `connection_id` string, uuid, required — Unique identifier for the connection (brokerage_authorization_id). This is the UUID used to reference the connection in SnapTrade.
      - `display_name` string, nullable — A display name for the account. Either assigned by the user or by the institution itself.
      - `number` string, required — The account number assigned by the institution, masked to the last 4 characters (e.g. `****8443`).
      - `institution_account_id` string, nullable — A stable and unique account identifier provided by the institution. Will be set to null if not provided. When present, can be used to check if a user has connected the same institution account across multiple connections.
      - `institution_id` string, uuid — Unique identifier for the institution that holds the account.
      - `opening_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was opened at the institution. Only populated for institutions that expose this data; `null` for all other institutions. See [supported institutions](https://support.snaptrade.com/brokerages) for the full list.
      - `funding_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was funded. Only populated for institutions that expose this data; `null` for all other institutions. See [supported institutions](https://support.snaptrade.com/brokerages) for the full list.
      - `sync_status` ConnectionAccountSyncStatus, required — Contains status updates for the account sync process between SnapTrade and the institution, used by `InvestmentAccount` in `Connections_listConnectionAccounts`. Each property is optional -- an institution may not report sync status for every data type. `orders`/`positions`/`balances` are the timestamp of the last successful sync of that data type (null if never synced). See `DepositAccountSyncStatus`/`LineOfCreditAccountSyncStatus` for the deposit/line-of-credit counterparts, which omit `orders`/`positions` since those account kinds don't place orders or hold positions.
        - `transactions` TransactionsStatus — Status of account transaction sync. SnapTrade syncs transactions from the brokerage under the following conditions: 1. Initial connection - SnapTrade syncs all transactions from the brokerage account as far back as the brokerage allows. Check [our integrations doc](https://support.snaptrade.com/brokerages-table?v=6fab8012ade6441fa0c6d9af9c55ce3a) for details on how far back we sync for each brokerage. 2. Daily sync - Once a day SnapTrade syncs new transactions from the brokerage. 3. Manual sync - You can trigger an incremental sync of transactions with the [transactions sync](/reference/Experimental%20endpoints/Connections_syncBrokerageAuthorizationTransactions) endpoint.
          - `initial_sync_completed` boolean — Indicates if the initial sync of transactions has been completed. For accounts with a large number of transactions, the initial sync may take a while to complete.
          - `last_successful_sync` string, date, nullable — Date in YYYY-MM-DD format or null
          - `first_transaction_date` string, date, nullable — Date in YYYY-MM-DD format or null
        - `orders` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
        - `positions` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
        - `balances` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
      - `raw_type` string, nullable — The account type as provided by the institution.
      - `is_paper` boolean, required — Indicates whether the account is a paper (simulated) trading account.
      - `net_value` object, nullable — Net value of the account -- total market value for investment accounts. Shared across all account kinds -- negative for `line_of_credit` accounts, representing money owed. Null when unknown (e.g. a real-time fetch failed and no cached value exists).
        - `amount` number, nullable
        - `currency` string, nullable
    - DepositAccount — A deposit account (checking, savings) under a connection.
      - `kind` 'deposit', required — Discriminator for the account kind.
      - `id` string, uuid, required — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
      - `connection_id` string, uuid, required — Unique identifier for the connection (brokerage_authorization_id). This is the UUID used to reference the connection in SnapTrade.
      - `display_name` string, nullable — A display name for the account. Either assigned by the user or by the institution itself.
      - `number` string, required — The account number assigned by the institution, masked to the last 4 characters (e.g. `****4821`).
      - `institution_account_id` string, nullable — A stable and unique account identifier provided by the institution. Will be set to null if not provided. When present, can be used to check if a user has connected the same institution account across multiple connections.
      - `institution_id` string, uuid — Unique identifier for the institution that holds the account.
      - `opening_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was opened at the institution. Only populated for institutions that expose this data; `null` for all other institutions.
      - `sync_status` DepositAccountSyncStatus, required — Contains status updates for the account sync process between SnapTrade and the institution, used by `DepositAccount` in `Connections_listConnectionAccounts`. Each property is optional -- an institution may not report sync status for every data type. Deposit accounts don't place orders or hold positions, so unlike `ConnectionAccountSyncStatus` this type has no `orders` or `positions` field. `balances` is the timestamp of the last successful sync of that data type (null if never synced).
        - `transactions` TransactionsStatus — Status of account transaction sync. SnapTrade syncs transactions from the brokerage under the following conditions: 1. Initial connection - SnapTrade syncs all transactions from the brokerage account as far back as the brokerage allows. Check [our integrations doc](https://support.snaptrade.com/brokerages-table?v=6fab8012ade6441fa0c6d9af9c55ce3a) for details on how far back we sync for each brokerage. 2. Daily sync - Once a day SnapTrade syncs new transactions from the brokerage. 3. Manual sync - You can trigger an incremental sync of transactions with the [transactions sync](/reference/Experimental%20endpoints/Connections_syncBrokerageAuthorizationTransactions) endpoint.
          - `initial_sync_completed` boolean — Indicates if the initial sync of transactions has been completed. For accounts with a large number of transactions, the initial sync may take a while to complete.
          - `last_successful_sync` string, date, nullable — Date in YYYY-MM-DD format or null
          - `first_transaction_date` string, date, nullable — Date in YYYY-MM-DD format or null
        - `balances` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
      - `raw_type` string, nullable — The account type as provided by the institution.
      - `net_value` object, nullable — Net value of the account -- cash balance for deposit accounts. Shared across all account kinds -- negative for `line_of_credit` accounts, representing money owed. Null when unknown (e.g. a real-time fetch failed and no cached value exists).
        - `amount` number, nullable
        - `currency` string, nullable
    - LineOfCreditAccount — A line-of-credit account (e.g. a credit card) under a connection.
      - `kind` 'line_of_credit', required — Discriminator for the account kind.
      - `id` string, uuid, required — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
      - `connection_id` string, uuid, required — Unique identifier for the connection (brokerage_authorization_id). This is the UUID used to reference the connection in SnapTrade.
      - `display_name` string, nullable — A display name for the account. Either assigned by the user or by the institution itself.
      - `number` string, required — The account number assigned by the institution, masked to the last 4 characters (e.g. `****1881`).
      - `institution_account_id` string, nullable — A stable and unique account identifier provided by the institution. Will be set to null if not provided. When present, can be used to check if a user has connected the same institution account across multiple connections.
      - `institution_id` string, uuid — Unique identifier for the institution that holds the account.
      - `opening_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was opened at the institution. Only populated for institutions that expose this data; `null` for all other institutions.
      - `sync_status` LineOfCreditAccountSyncStatus, required — Contains status updates for the account sync process between SnapTrade and the institution, used by `LineOfCreditAccount` in `Connections_listConnectionAccounts`. Each property is optional -- an institution may not report sync status for every data type. Line-of-credit accounts don't place orders or hold positions, so like `DepositAccountSyncStatus` this type has no `orders` or `positions` field. `balances` is the timestamp of the last successful sync of that data type (null if never synced).
        - `transactions` TransactionsStatus — Status of account transaction sync. SnapTrade syncs transactions from the brokerage under the following conditions: 1. Initial connection - SnapTrade syncs all transactions from the brokerage account as far back as the brokerage allows. Check [our integrations doc](https://support.snaptrade.com/brokerages-table?v=6fab8012ade6441fa0c6d9af9c55ce3a) for details on how far back we sync for each brokerage. 2. Daily sync - Once a day SnapTrade syncs new transactions from the brokerage. 3. Manual sync - You can trigger an incremental sync of transactions with the [transactions sync](/reference/Experimental%20endpoints/Connections_syncBrokerageAuthorizationTransactions) endpoint.
          - `initial_sync_completed` boolean — Indicates if the initial sync of transactions has been completed. For accounts with a large number of transactions, the initial sync may take a while to complete.
          - `last_successful_sync` string, date, nullable — Date in YYYY-MM-DD format or null
          - `first_transaction_date` string, date, nullable — Date in YYYY-MM-DD format or null
        - `balances` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
      - `raw_type` string, nullable — The account type as provided by the institution.
      - `net_value` object, nullable — Net value of the account -- negative, representing money owed. Shared across all account kinds. Null when unknown (e.g. a real-time fetch failed and no cached value exists).
        - `amount` number, nullable
        - `currency` string, nullable
      - `credit_details` object, nullable — Additional line-of-credit details. Currently only `minimum_payment_amount`; more properties (e.g. credit limit) may be added later without a breaking change. Omitted when no such data is available.
        - `minimum_payment_amount` object, nullable — The minimum payment due on the account's next statement.
          - `amount` number, nullable
          - `currency` string, nullable

## Other responses

- `401` — Unauthorized, invalid credentials for this resource
- `404` — The requested resource does not exist.

---

[API](https://skmtc.net/passiv/apis/snaptrade.md) · [All operations](https://skmtc.net/passiv/apis/snaptrade/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/passiv/snaptrade/revisions/259274f1e845/schema)
