v51

latestOpenAPI 3.0.0raw.githubusercontent.com2026-08-0175184292.5 KB
Options

List account option positions

Deprecated. Use the newer unified positions endpoint instead. This will allow you to get both equity and option positions in a single call, as well as additional asset classes such as futures.

Returns a list of option positions in the specified account. For stock/ETF/crypto/mutual fund positions, please use the positions endpoint.

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 brokerage. If you need real-time, use the manual refresh endpoint.
get/accounts/{accountId}/options

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

pricenumber nullable

Last known market price per share of the option contract. The freshness of this price depends on the brokerage. Some brokerages provide real-time prices, while others provide delayed prices. It is recommended that you rely on your own third-party market data provider for most up to date prices.

unitsnumber

The number of contracts for this option position. A positive number indicates a long position, while a negative number indicates a short position.

average_purchase_pricenumber nullable

Cost basis per contract of this option position. To get the cost basis per share, divide this value by the number of shares per contract (usually 100).

Example response

[
  {
    "symbol": {
      "option_symbol": {
        "id": "2bcd7cc3-e922-4976-bce1-9858296801c3",
        "ticker": "AAPL  261218C00240000",
        "option_type": "CALL",
        "strike_price": 240,
        "expiration_date": "2026-12-18",
        "underlying_symbol": {
          "id": "2bcd7cc3-e922-4976-bce1-9858296801c3",
          "symbol": "SPY",
          "raw_symbol": "VAB",
          "description": "SPDR S&P 500 ETF Trust",
          "currency": {
            "id": "87b24961-b51e-4db8-9226-f198f6518a89",
            "code": "USD",
            "name": "US Dollar"
          },
          "exchange": {
            "id": "2bcd7cc3-e922-4976-bce1-9858296801c3",
            "code": "ARCX",
            "mic_code": "ARCA",
            "name": "NYSE ARCA",
            "timezone": "America/New_York",
            "start_time": "09:30:00",
            "close_time": "16:00:00",
            "suffix": "None"
          },
          "type": {
            "id": "2bcd7cc3-e922-4976-bce1-9858296801c3",
            "code": "cs",
            "description": "Common Stock",
            "is_supported": true
          },
          "figi_code": "BBG000B9XRY4",
          "figi_instrument": {
            "figi_code": "BBG000B9Y5X2",
            "figi_share_class": "BBG001S5N8V8"
          },
          "currencies": [
            {
              "id": "87b24961-b51e-4db8-9226-f198f6518a89",
              "code": "USD",
              "name": "US Dollar"
            }
          ]
        }
      },
      "id": "2bcd7cc3-e922-4976-bce1-9858296801c3",
      "description": "SPY CALL 7/17 200"
    },
    "price": 38.4,
    "units": -50,
    "average_purchase_price": 4126,
    "currency": {
      "id": "87b24961-b51e-4db8-9226-f198f6518a89",
      "code": "USD",
      "name": "US Dollar"
    }
  }
]