Account Information

List account balances (V2)

Changed on

Returns the account's balances in a single snapshot: total net value, cash per currency, buying power, and margin details for margin accounts. Every field is always present and is null when the institution doesn't report it.

Beta: this endpoint is only available for partners it has been enabled for. Please contact the SnapTrade team to enable it. The response schema may change.

Check your API key on the Customer Dashboard billing page to see if you have real-time data access:

  • If you do, this endpoint returns real-time data.
  • If you don't, Daily data is cached and refreshed once a day. Exact refresh timing may vary by institution. If you need real-time, use the manual refresh endpoint.

data_freshness.as_of is the time the returned data was fetched from the institution.

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.

get/accounts/{accountId}/balances/v2

Request

  • Base URL
    https://api.snaptrade.com
  • URL
    https://api.snaptrade.com/accounts/{accountId}/balances/v2
  • Auth
    API key in header Signature and API key in query parameter clientId and API key in query parameter timestamp

Path parameters

accountIdstring uuid required

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

Example:917c8734-8470-4a3e-a18f-57c3f2ee6631

Query parameters

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

Example:snaptrade-user-123
userSecretstring 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.

Example:adf2aa34-8219-40f7-a6b3-60156985cc61

Response

OK

account_idstring uuid required

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

cash_or_margin'cash' | 'margin' | 'unknown' required

Whether the account is a cash or margin account, normalized across institutions. Same values as cash_or_margin on the get account details endpoint.

  • cash: the account can't borrow on margin.
  • margin: the account can borrow on margin.
  • unknown: SnapTrade doesn't have enough information to tell, or the distinction doesn't apply (for example crypto accounts).

Example response

{
  "account_id": "378eb9a5-448b-4fbc-ab61-29d2bcf0ec09",
  "cash_or_margin": "margin",
  "net_value": {
    "amount": "520692.19",
    "currency": "CAD"
  },
  "cash": [
    {
      "currency": "CAD",
      "amount": "121610.45"
    },
    {
      "currency": "USD",
      "amount": "-72658.27"
    }
  ],
  "buying_power": [
    {
      "currency": "CAD",
      "amount": "1208463.36",
      "basis": "margin"
    }
  ],
  "margin": {
    "loan_balances": [
      {
        "currency": "USD",
        "amount": "72658.27"
      }
    ]
  },
  "data_freshness": {
    "as_of": "2026-10-15T11:03:35Z"
  }
}

Changes

    • breaking

      the / response's property type changed from no type to object for status

    • info

      removed from the / response property allOf list for the response status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      endpoint added