Skip to content
Get started

List Position Instructions

v1.positions.get_position_instructions(intaccount_id, PositionGetPositionInstructionsParams**kwargs) -> PositionGetPositionInstructionsResponse
GET/v1/accounts/{account_id}/positions/instructions

Returns the current lifecycle state of the account’s position instructions. Optionally filter by a specific contract.

ParametersExpand Collapse
account_id: int
instrument_id: Optional[InstrumentIDOrSymbol]

Limit results to a single contract. Accepts the instrument id or the OSI symbol.

formatuuid
ReturnsExpand Collapse
class PositionGetPositionInstructionsResponse:
id: str

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

formatuuid
account_id: int

Account the instruction belongs to.

formatint64
instruction_id: str

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

instruction_type: PositionInstructionType

The action this instruction requests.

One of the following:
"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
instrument_id: str

Identifier of the options contract this instruction acts on.

formatuuid
quantity: str

Number of contracts included in the instruction.

Current lifecycle status.

One of the following:
"SENT"
"ACCEPTED"
"REJECTED"
"ENGINE_REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
symbol: str

Options symbol (OSI) for display.

accepted_quantity: Optional[str]

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

created_at: Optional[datetime]

When the instruction was first accepted by the service.

formatdate-time
rejection_reason: Optional[str]

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[datetime]

When the instruction’s lifecycle state last changed.

formatdate-time

List Position Instructions

from clear_street import ClearStreet

client = ClearStreet(
    api_key="My API Key",
)
response = client.v1.positions.get_position_instructions(
    account_id=0,
)
print(response)
{
  "metadata": {
    "request_id": "request_id",
    "next_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "page_number": 0,
    "previous_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "total_items": 0,
    "total_pages": 0
  },
  "error": {
    "code": 400,
    "message": "Order quantity must be greater than zero",
    "details": [
      {
        "foo": "bar"
      }
    ]
  },
  "data": [
    {
      "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
      "account_id": 122503,
      "instruction_id": "ui-20260424-001",
      "instruction_type": "EXERCISE",
      "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
      "quantity": "1",
      "status": "SENT",
      "symbol": "AAPL  280121C00195000",
      "accepted_quantity": null,
      "created_at": "2026-04-24T14:30:00Z",
      "rejection_reason": null,
      "updated_at": "2026-04-24T14:30:00Z"
    }
  ]
}
Returns Examples
{
  "metadata": {
    "request_id": "request_id",
    "next_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "page_number": 0,
    "previous_page_token": "U3RhaW5sZXNzIHJvY2tz",
    "total_items": 0,
    "total_pages": 0
  },
  "error": {
    "code": 400,
    "message": "Order quantity must be greater than zero",
    "details": [
      {
        "foo": "bar"
      }
    ]
  },
  "data": [
    {
      "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
      "account_id": 122503,
      "instruction_id": "ui-20260424-001",
      "instruction_type": "EXERCISE",
      "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
      "quantity": "1",
      "status": "SENT",
      "symbol": "AAPL  280121C00195000",
      "accepted_quantity": null,
      "created_at": "2026-04-24T14:30:00Z",
      "rejection_reason": null,
      "updated_at": "2026-04-24T14:30:00Z"
    }
  ]
}