Skip to content
Get started

Positions

View positions and manage position instructions.

Get Positions
$ clear-street v1:positions get-positions
GET/v1/accounts/{account_id}/positions
Close Positions
$ clear-street v1:positions close-positions
DELETE/v1/accounts/{account_id}/positions
Close Position
$ clear-street v1:positions close-position
DELETE/v1/accounts/{account_id}/positions/{instrument_id}
List Position Instructions
$ clear-street v1:positions get-position-instructions
GET/v1/accounts/{account_id}/positions/instructions
Submit Position Instructions
$ clear-street v1:positions submit-position-instructions
POST/v1/accounts/{account_id}/positions/instructions
Cancel Position Instruction
$ clear-street v1:positions cancel-position-instruction
DELETE/v1/accounts/{account_id}/positions/instructions/{instruction_id}
ModelsExpand Collapse
position: object { account_id, available_quantity, instrument_id, 15 more }

Represents a holding of a particular instrument in an account

account_id: number

The account this position belongs to

available_quantity: string

The quantity of a position that is free to be operated on.

instrument_id: string

OEMS instrument UUID

instrument_type: "COMMON_STOCK" or "PREFERRED_STOCK" or "OPTION" or 2 more

Type of security

"COMMON_STOCK"
"PREFERRED_STOCK"
"OPTION"
"CASH"
"OTHER"
market_value: string

The current market value of the position

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

The type of position

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"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

avg_price: optional string

The average price paid per share or contract for this position

closing_price: optional string

The closing price used to value the position for the last trading day

closing_price_date: optional string

The market date associated with closing_price

cost_basis: optional string

The total cost basis for this position

daily_unrealized_pnl: optional string

The unrealized profit or loss for this position relative to the previous close

daily_unrealized_pnl_pct: optional string

The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100).

instrument_price: optional string

The current market price of the instrument

underlying_instrument_id: optional string

OEMS instrument identifier of the underlying instrument, if resolvable

unrealized_pnl: optional string

The total unrealized profit or loss for this position based on current market value

unrealized_pnl_pct: optional string

The unrealized profit/loss for the position, expressed as a percentage of the position’s cost basis (range: 0-100).

position_instruction: object { id, account_id, instruction_id, 9 more }

A position instruction and its current lifecycle state.

id: string

Server-assigned id. Used as the path parameter on cancel.

account_id: number

Account the instruction belongs to.

instruction_id: string

Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied.

instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action this instruction requests.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
instrument_id: string

Identifier of the options contract this instruction acts on.

quantity: string

Number of contracts included in the instruction.

status: "SENT" or "ACCEPTED" or "REJECTED" or 5 more

Current lifecycle status.

"SENT"
"ACCEPTED"
"REJECTED"
"ENGINE_REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
symbol: string

Options symbol (OSI) for display.

accepted_quantity: optional string

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED.

created_at: optional string

When the instruction was first accepted by the service.

rejection_reason: optional string

Human-readable explanation populated on any non-success terminal status — REJECTED, ENGINE_REJECTED, or CANCEL_FAILED. On a 207 Multi-Status batch submit the top-level error field summarizes the batch; per-row detail continues to live here.

updated_at: optional string

When the instruction’s lifecycle state last changed.

position_instruction_list: array of PositionInstruction { id, account_id, instruction_id, 9 more }
id: string

Server-assigned id. Used as the path parameter on cancel.

account_id: number

Account the instruction belongs to.

instruction_id: string

Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied.

instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action this instruction requests.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
instrument_id: string

Identifier of the options contract this instruction acts on.

quantity: string

Number of contracts included in the instruction.

status: "SENT" or "ACCEPTED" or "REJECTED" or 5 more

Current lifecycle status.

"SENT"
"ACCEPTED"
"REJECTED"
"ENGINE_REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
symbol: string

Options symbol (OSI) for display.

accepted_quantity: optional string

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED.

created_at: optional string

When the instruction was first accepted by the service.

rejection_reason: optional string

Human-readable explanation populated on any non-success terminal status — REJECTED, ENGINE_REJECTED, or CANCEL_FAILED. On a 207 Multi-Status batch submit the top-level error field summarizes the batch; per-row detail continues to live here.

updated_at: optional string

When the instruction’s lifecycle state last changed.

position_instruction_status: "SENT" or "ACCEPTED" or "REJECTED" or 5 more

Lifecycle status of a position instruction.

"SENT"
"ACCEPTED"
"REJECTED"
"ENGINE_REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
position_instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action to take against an options position.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
position_list: array of Position { account_id, available_quantity, instrument_id, 15 more }
account_id: number

The account this position belongs to

available_quantity: string

The quantity of a position that is free to be operated on.

instrument_id: string

OEMS instrument UUID

instrument_type: "COMMON_STOCK" or "PREFERRED_STOCK" or "OPTION" or 2 more

Type of security

"COMMON_STOCK"
"PREFERRED_STOCK"
"OPTION"
"CASH"
"OTHER"
market_value: string

The current market value of the position

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

The type of position

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"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

avg_price: optional string

The average price paid per share or contract for this position

closing_price: optional string

The closing price used to value the position for the last trading day

closing_price_date: optional string

The market date associated with closing_price

cost_basis: optional string

The total cost basis for this position

daily_unrealized_pnl: optional string

The unrealized profit or loss for this position relative to the previous close

daily_unrealized_pnl_pct: optional string

The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100).

instrument_price: optional string

The current market price of the instrument

underlying_instrument_id: optional string

OEMS instrument identifier of the underlying instrument, if resolvable

unrealized_pnl: optional string

The total unrealized profit or loss for this position based on current market value

unrealized_pnl_pct: optional string

The unrealized profit/loss for the position, expressed as a percentage of the position’s cost basis (range: 0-100).

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

Position type classification

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"SHORT_PUT"