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

# List accounts for a connection (discriminated union)

`GET /connections/{authorizationId}/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 (currently only `investment` is 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, funding date, and market value live from the brokerage on each call.

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

- `authorizationId` 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.
  - `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 brokerage itself.
  - `number` string, required — The account number assigned by the brokerage. For some brokerages, this field may be masked for security reasons.
  - `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 brokerage account across multiple connections.
  - `institution_id` string, uuid — Unique identifier for the institution (brokerage) 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 brokerage.
  - `sync_status` ConnectionAccountSyncStatus, required — Contains status updates for the account sync process between SnapTrade and the brokerage, used only by `Connections_listConnectionAccounts`. Each property is optional -- a brokerage 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).
    - `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 brokerage.
  - `funding_date` string, date-time, nullable — Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was funded.
  - `is_paper` boolean, required — Indicates whether the account is a paper (simulated) trading account.
  - `market_value` object, nullable — Total market value of the account. Null when unknown (e.g. a real-time fetch failed and no cached value exists).
    - `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/993e058b557e/schema)
