## Get Positions `client.V1.Positions.GetPositions(ctx, accountID, query) (*V1PositionGetPositionsResponse, error)` **get** `/v1/accounts/{account_id}/positions` Retrieves all positions for the specified trading account. ### Parameters - `accountID int64` - `query V1PositionGetPositionsParams` - `InstrumentIDs param.Field[[]string]` Comma-separated OEMS instrument UUIDs - `PageSize param.Field[int64]` The number of items to return per page. Only used when page_token is not provided. - `PageToken param.Field[string]` Token for retrieving the next or previous page of results. Contains encoded pagination state; when provided, page_size is ignored. - `SortBy param.Field[V1PositionGetPositionsParamsSortBy]` Field to sort by - `const V1PositionGetPositionsParamsSortBySymbol V1PositionGetPositionsParamsSortBy = "SYMBOL"` - `const V1PositionGetPositionsParamsSortByInstrumentType V1PositionGetPositionsParamsSortBy = "INSTRUMENT_TYPE"` - `const V1PositionGetPositionsParamsSortByQuantity V1PositionGetPositionsParamsSortBy = "QUANTITY"` - `const V1PositionGetPositionsParamsSortByMarketValue V1PositionGetPositionsParamsSortBy = "MARKET_VALUE"` - `const V1PositionGetPositionsParamsSortByPositionType V1PositionGetPositionsParamsSortBy = "POSITION_TYPE"` - `const V1PositionGetPositionsParamsSortByUnrealizedPnl V1PositionGetPositionsParamsSortBy = "UNREALIZED_PNL"` - `const V1PositionGetPositionsParamsSortByDailyUnrealizedPnl V1PositionGetPositionsParamsSortBy = "DAILY_UNREALIZED_PNL"` - `SortDirection param.Field[V1PositionGetPositionsParamsSortDirection]` Sort direction - `const V1PositionGetPositionsParamsSortDirectionAsc V1PositionGetPositionsParamsSortDirection = "ASC"` - `const V1PositionGetPositionsParamsSortDirectionDesc V1PositionGetPositionsParamsSortDirection = "DESC"` ### Returns - `type V1PositionGetPositionsResponse struct{…}` - `Data PositionList` - `AccountID int64` The account this position belongs to - `AvailableQuantity string` The quantity of a position that is free to be operated on. - `InstrumentID string` OEMS instrument UUID - `InstrumentType SecurityType` Type of security - `const SecurityTypeCommonStock SecurityType = "COMMON_STOCK"` - `const SecurityTypePreferredStock SecurityType = "PREFERRED_STOCK"` - `const SecurityTypeOption SecurityType = "OPTION"` - `const SecurityTypeCash SecurityType = "CASH"` - `const SecurityTypeOther SecurityType = "OTHER"` - `MarketValue string` The current market value of the position - `PositionType PositionType` The type of position - `const PositionTypeLong PositionType = "LONG"` - `const PositionTypeShort PositionType = "SHORT"` - `const PositionTypeLongCall PositionType = "LONG_CALL"` - `const PositionTypeShortCall PositionType = "SHORT_CALL"` - `const PositionTypeLongPut PositionType = "LONG_PUT"` - `const PositionTypeShortPut PositionType = "SHORT_PUT"` - `Quantity string` The number of shares or contracts. Can be positive (long) or negative (short) - `Symbol string` The trading symbol for the instrument - `AvgPrice string` The average price paid per share or contract for this position - `ClosingPrice string` The closing price used to value the position for the last trading day - `ClosingPriceDate Time` The market date associated with `closing_price` - `CostBasis string` The total cost basis for this position - `DailyUnrealizedPnl string` The unrealized profit or loss for this position relative to the previous close - `DailyUnrealizedPnlPct string` The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100). - `InstrumentPrice string` The current market price of the instrument - `UnderlyingInstrumentID string` OEMS instrument identifier of the underlying instrument, if resolvable - `UnrealizedPnl string` The total unrealized profit or loss for this position based on current market value - `UnrealizedPnlPct string` The unrealized profit/loss for the position, expressed as a percentage of the position's cost basis (range: 0-100). ### Example ```go package main import ( "context" "fmt" "github.com/clear-street/clear-street-go" "github.com/clear-street/clear-street-go/option" ) func main() { client := clearstreet.NewClient( option.WithAPIKey("My API Key"), ) response, err := client.V1.Positions.GetPositions( context.TODO(), 0, clearstreet.V1PositionGetPositionsParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### Response ```json { "data": [ { "account_id": 19816, "available_quantity": "100", "avg_price": "145.00", "closing_price": "150.50", "closing_price_date": "2025-10-31", "cost_basis": "14500.00", "instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8", "instrument_price": "151.00", "instrument_type": "COMMON_STOCK", "market_value": "15050.00", "position_type": "LONG", "quantity": "100", "symbol": "AAPL", "unrealized_pnl": "550.00" }, { "account_id": 19816, "available_quantity": "100", "avg_price": "180.00", "closing_price": "180.00", "closing_price_date": "2025-10-30", "cost_basis": "-9000.00", "instrument_id": "d4d5d6d7-e4e5-f4f5-a4a5-a6a7a8a9aaab", "instrument_price": "178.50", "instrument_type": "COMMON_STOCK", "market_value": "-9000.00", "position_type": "SHORT", "quantity": "-50", "symbol": "TSLA", "unrealized_pnl": "75.00" }, { "account_id": 19816, "available_quantity": "100", "avg_price": "2.50", "closing_price": "2.70", "closing_price_date": "2025-10-30", "cost_basis": "2500.00", "instrument_id": "e5e6e7e8-f5f6-a5a6-b5b6-b7b8b9babcbe", "instrument_price": "2.72", "instrument_type": "OPTION", "market_value": "2700.00", "position_type": "LONG_CALL", "quantity": "10", "symbol": "AAPL250117C00190000", "underlying_instrument_id": "a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8", "unrealized_pnl": "200.00" } ], "error": null, "metadata": { "next_page_token": "cGFnZT0yJmxhc3Rfc3ltYm9sPVRTM0E=", "page_number": 1, "request_id": "3f4a5b6c-7d8e-9f0a-1b2c-3d4e5f6a7b8c", "total_items": 25, "total_pages": 3 } } ```