Skip to content
Start Trading

Get Position Instructions

PositionGetPositionInstructionsResponse v1().positions().getPositionInstructions(PositionGetPositionInstructionsParamsparams = PositionGetPositionInstructionsParams.none(), RequestOptionsrequestOptions = RequestOptions.none())
GET/v1/accounts/{account_id}/positions/instructions

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

Note: instructions that fail pre-acceptance validation on POST — duplicates, DO_NOT_EXERCISE / CONTRARY_EXERCISE on a non-expiry day, insufficient position, or an unresolvable instrument — are rejected (with status = REJECTED and a rejection_reason) without being persisted, so they surface only in the POST response and never appear in this list.

ParametersExpand Collapse
PositionGetPositionInstructionsParams params
Optional<Long> accountId
Optional<String> instrumentId

Limit results to a single contract. Instrument ID (UUID) or symbol (equity ticker or OSI option symbol).

minLength1
Optional<String> underlyingInstrumentId

Limit results to instructions whose contract has this underlier. Instrument ID (UUID) or symbol (equity ticker or OSI option symbol). Combined with instrument_id as a logical AND when both are supplied.

minLength1
ReturnsExpand Collapse
class PositionGetPositionInstructionsResponse:
String id

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

formatuuid
long accountId

Account the instruction belongs to.

formatint64
String clientInstructionId

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

PositionInstructionType instructionType

The action this instruction requests.

One of the following:
EXERCISE("EXERCISE")
DO_NOT_EXERCISE("DO_NOT_EXERCISE")
CONTRARY_EXERCISE("CONTRARY_EXERCISE")
String instrumentId

Identifier of the options contract this instruction acts on.

formatuuid
String quantity

Number of contracts included in the instruction.

Current lifecycle status.

One of the following:
SENT("SENT")
ACCEPTED("ACCEPTED")
REJECTED("REJECTED")
CANCEL_REQUESTED("CANCEL_REQUESTED")
CANCELLED("CANCELLED")
CANCEL_FAILED("CANCEL_FAILED")
UNKNOWN("UNKNOWN")
String symbol

Options symbol (OSI) for display.

Optional<String> acceptedQuantity

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED. When a null/undefined value is observed, it indicates that there is no available data.

Optional<LocalDateTime> createdAt

When the instruction was first accepted by the service. When a null/undefined value is observed, it indicates that there is no available data.

formatdate-time
Optional<PositionInstructionRejection> rejection

Machine-readable counterpart to rejection_reason: a stable reason code, human-readable description, and params, present on every rejected row — on submit, cancel, get, and list alike. Branch on rejection.reason and read rejection.description instead of the top-level rejection_reason. When a null/undefined value is observed, it indicates it does not apply.

String description

Human-readable explanation of the rejection. Duplicates the top-level rejection_reason; prefer this field.

String domain

Namespacing domain of the reason code — com.clearstreet.oems.exercise for reasons OEMS validates, com.clearstreet.oems.clearing for clearing-owned reasons.

Metadata metadata

Reason-specific parameters as a string→string map. Which keys are present depends on reason:

  • INSUFFICIENT_POSITION → available, requested
  • DNE_NOT_ON_EXPIRY / CEA_NOT_ON_EXPIRY → expiry, business_date
  • EXERCISE_PAST_CUTOFF → cutoff_time
  • DUPLICATE_INSTRUCTION → existing_id

Empty for reasons that carry no parameters. New keys may be added over time, so treat unknown keys leniently.

String reason

Stable, machine-readable reason code, e.g. DNE_NOT_ON_EXPIRY, INSUFFICIENT_POSITION, OPTIONS_LEVEL_EXCEEDED, EXERCISE_PAST_CUTOFF.

Optional<String> rejectionReason

Human-readable explanation populated on any non-success terminal status — 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. When a null/undefined value is observed, it indicates it does not apply.

Optional<String> underlyingInstrumentId

Identifier of the underlying instrument, when available. When a null/undefined value is observed, it indicates it does not apply.

formatuuid
Optional<LocalDateTime> updatedAt

When the instruction’s lifecycle state last changed. When a null/undefined value is observed, it indicates that there is no available data.

formatdate-time

Get Position Instructions

package com.clearstreet.api.example;

import com.clearstreet.api.client.ClearStreetClient;
import com.clearstreet.api.client.okhttp.ClearStreetOkHttpClient;
import com.clearstreet.api.models.v1.positions.PositionGetPositionInstructionsParams;
import com.clearstreet.api.models.v1.positions.PositionGetPositionInstructionsResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        ClearStreetClient client = ClearStreetOkHttpClient.builder()
            .fromEnv()
            .apiKey("My API Key")
            .build();

        PositionGetPositionInstructionsResponse response = client.v1().positions().getPositionInstructions(0L);
    }
}
{
  "data": [
    {
      "accepted_quantity": null,
      "account_id": 122503,
      "client_instruction_id": "ui-20260424-001",
      "created_at": "2026-04-24T14:30:00Z",
      "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e08",
      "instruction_type": "EXERCISE",
      "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
      "quantity": "1",
      "rejection_reason": null,
      "status": "SENT",
      "symbol": "AAPL  280121C00195000",
      "updated_at": "2026-04-24T14:30:00Z"
    }
  ],
  "error": null,
  "metadata": {
    "request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd07"
  }
}
Returns Examples
{
  "data": [
    {
      "accepted_quantity": null,
      "account_id": 122503,
      "client_instruction_id": "ui-20260424-001",
      "created_at": "2026-04-24T14:30:00Z",
      "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e08",
      "instruction_type": "EXERCISE",
      "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
      "quantity": "1",
      "rejection_reason": null,
      "status": "SENT",
      "symbol": "AAPL  280121C00195000",
      "updated_at": "2026-04-24T14:30:00Z"
    }
  ],
  "error": null,
  "metadata": {
    "request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd07"
  }
}