For AI agents: the documentation index is available at https://docs.snaptrade.com/llms.txt, and the comprehensive documentation index is available at https://docs.snaptrade.com/llms-full.txt. The complete public OpenAPI specification is available at https://docs.snaptrade.com/openapi.yaml. Complete public OpenAPI specification with all documented operations, schemas, servers, and authentication requirements. Use it for SDK generation and API tooling; beta operations are marked x-beta. Markdown versions of documentation pages are available by appending .md to the URL path.
Account Information

Get account details

get
https://api.snaptrade.com/accounts/{accountId}/details

Returns the specified account for the authenticated user. The account can be an investment, deposit, line of credit, or annuity account. Use the kind discriminator to determine the schema for the account.

On Pay as you Go / Real-time, this endpoint refreshes the 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.

Check your API key on the Customer Dashboard billing page to see whether your plan includes real-time data.

If the connection has become disabled, it can no longer access the latest data from the institution, but will continue to return the last available cached state. Please see this guide on how to fix a disabled connection.

Execute an API Request

Authentication Method

Use commercial authentication when acting on behalf of your application and passing end-user credentials with requests that require them.

Credentials
Path
accountIdstring (format: uuid)required

Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.

Request
Installation
$
npm install snaptrade-typescript-sdk
1
import {
2
Snaptrade,
3
SnaptradeAuth,
4
} from "snaptrade-typescript-sdk";
5
6
const snaptrade = new Snaptrade({
7
auth: SnaptradeAuth.commercialApiKey({
8
consumerKey: "CONSUMER_KEY",
9
clientId: "CLIENT_ID",
10
}),
11
});
12
13
const response =
14
await snaptrade.accountInformation.getAccountDetails(
15
{
16
accountId:
17
"917c8734-8470-4a3e-a18f-57c3f2ee6631",
18
userId: "USER_ID",
19
userSecret: "USER_SECRET",
20
},
21
);
22
console.log(response.data);

Response fields

object

A single account under a connection, from the kind-discriminated union used by Connections_listConnectionAccounts and AccountInformation_listAllUserAccounts. Use kind to determine which schema is present.

investment, deposit, line_of_credit, and annuity are implemented today.

kindstring

Discriminator for the account kind.

idstring (format: uuid)

Unique identifier for the connected institution account. This is the UUID used to reference the account in SnapTrade.

connection_idstring (format: uuid)

Unique identifier for the connection (brokerage_authorization_id). This is the UUID used to reference the connection in SnapTrade.

statusstring

The current status of the account. Omitted when the status is unknown or not provided by the institution.

  • open: The account is open.
  • closed: The account is closed.
  • archived: The account is archived.
  • unavailable: The account is no longer available through the institution's API. Accounts with this status are excluded from account list responses.
display_namestring or null

A display name for the account. Either assigned by the user or by the institution itself.

The account number assigned by the institution, masked to the last 4 characters (e.g. ****8443).

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_idstring (format: uuid)

Unique identifier for the institution that holds the account.

opening_datestring (format: date-time) or null

Timestamp in 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 for the full list.

funding_datestring (format: date-time) or null

Timestamp in 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 for the full list.

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.

raw_typestring or null

The account type as provided by the institution.

Whether the account is a cash or margin account, normalized across institutions.

  • cash: The account cannot borrow on margin. Includes registered, retirement and employer plan accounts that can't use margin (for example TFSA, RRSP, 401(k) or ISA).
  • margin: A margin account, including portfolio margin accounts. Some institutions also report retirement accounts with limited margin (for example, trading before funds settle) as margin accounts.
  • unknown: SnapTrade doesn't have enough information to tell, or the distinction doesn't apply to the account (for example crypto accounts).

Coverage is limited for Fidelity because its API doesn't report it for every account; Fidelity accounts default to unknown where it can't be determined.

is_paperboolean

Indicates whether the account is a paper (simulated) trading account.

net_valueobject or null

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

1
{
2
"kind": "investment",
3
"id": "917c8734-8470-4a3e-a18f-57c3f2ee6631",
4
"connection_id": "87b24961-b51e-4db8-9226-f198f6518a89",
5
"status": "open",
6
"display_name": "Robinhood Individual",
7
"masked_account_number": "****8443",
8
"institution_account_id": "54953432",
9
"institution_id": "b6e1a9f0-6e2a-4c37-9b0a-6f1e2d3c4b5a",
10
"opening_date": "2024-07-20T09:30:00.000Z",
11
"funding_date": "2024-07-25T12:00:00.000Z",
12
"sync_status": {
13
"transactions": {
14
"initial_sync_completed": true,
15
"last_successful_sync": "2022-01-24T00:00:00.000Z",
16
"first_transaction_date": "2022-01-24T00:00:00.000Z"
17
},
18
"orders": "2024-06-28T18:42:46.561Z",
19
"positions": "2024-06-28T18:42:46.561Z",
20
"balances": "2024-06-28T18:42:46.561Z"
21
},
22
"raw_type": "Margin",
23
"cash_or_margin": "margin",
24
"is_paper": false,
25
"net_value": {
26
"amount": 84213.55,
27
"currency": "USD"
28
}
29
}