Account Information

List all account positions

Changed on

Returns a list of all positions in the specified account.

The results list can contain multiple instrument types in the same response, including stocks, ADRs, ETFs, mutual funds, closed-end funds, bonds, crypto, futures, option positions, future option positions, CFD positions, and tokenized asset positions. Use the instrument.kind discriminator to determine the schema for each position's instrument.

Beta: future option positions (instrument.kind: future_option) are in beta. They are currently returned only for tastytrade and Interactive Brokers connections, and only for partners they have been enabled for — please contact the SnapTrade team to enable them. The FutureOptionInstrument schema may change.

Positions counted in account cash balance or buying power include cash_equivalent: true. stock, adr, etf, mutualfund, and crypto positions may include tax_lots when tax lot data is enabled for the account. To see which institutions support tax lot data, please see our supported institutions doc.

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

get/accounts/{accountId}/positions/all

Request

  • Base URL
    https://api.snaptrade.com
  • URL
    https://api.snaptrade.com/accounts/{accountId}/positions/all
  • 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

Example response

{
  "results": [
    {
      "instrument": {
        "kind": "stock",
        "id": "1ef3a5d3-4a9b-40b2-b8d1-cc35f74d6324",
        "symbol": "AAPL",
        "raw_symbol": "AAPL",
        "description": "Apple Inc.",
        "currency": "USD",
        "exchange": "XNAS",
        "figi_instrument": {
          "figi_code": "BBG000B9Y5X2",
          "figi_share_class": "BBG001S5N8V8"
        }
      },
      "units": "10.5",
      "price": "123.45",
      "cost_basis": "118.2",
      "currency": "USD",
      "tax_lots": [
        {
          "original_purchase_date": "2022-01-15T10:30:00Z",
          "quantity": "10",
          "purchased_price": "100.50",
          "cost_basis": "1005.00",
          "current_value": "1200.00",
          "position_type": "LONG",
          "lot_id": "12345678"
        }
      ]
    }
  ],
  "data_freshness": {
    "as_of": "2026-06-02T14:30:00Z"
  }
}

Changes

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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

    • breaking

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