Submit Position Instructions
PositionSubmitPositionInstructionsResponse v1().positions().submitPositionInstructions(PositionSubmitPositionInstructionsParamsparams, RequestOptionsrequestOptions = RequestOptions.none())
POST/v1/accounts/{account_id}/positions/instructions
Submit one or more position instructions (Exercise, Do-Not-Exercise, Contrary Exercise Advice) against the account.
Batch semantics:
- All rows accepted →
200 OK. Every row is indatawithstatus = SENT. - Partial success →
207 Multi-Status.datacontains every row; rejected rows carrystatus = ENGINE_REJECTED(orREJECTED) andrejection_reason. The top-levelerrorsummarizes the batch failure. - All rows rejected →
4xx/5xxerror response. The HTTP status reflects the underlying cause:409for duplicateinstruction_id,400for validation failures such as DNE/CEA on a non-expiry day,503if the clearing service is unavailable. Nodatais returned.
Pre-flight validation (unknown instrument_id, unencodable
quantity) short-circuits the whole batch with a 4xx before any
row is submitted.
Submit Position Instructions
package com.clear_street.api.example;
import com.clear_street.api.client.ClearStreetClient;
import com.clear_street.api.client.okhttp.ClearStreetOkHttpClient;
import com.clear_street.api.models.v1.positions.PositionInstructionType;
import com.clear_street.api.models.v1.positions.PositionSubmitPositionInstructionsParams;
import com.clear_street.api.models.v1.positions.PositionSubmitPositionInstructionsResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
ClearStreetClient client = ClearStreetOkHttpClient.builder()
.fromEnv()
.apiKey("My API Key")
.build();
PositionSubmitPositionInstructionsParams params = PositionSubmitPositionInstructionsParams.builder()
.accountId(0L)
.addInstruction(PositionSubmitPositionInstructionsParams.Instruction.builder()
.instructionType(PositionInstructionType.EXERCISE)
.instrumentId("0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02")
.quantity("1")
.build())
.build();
PositionSubmitPositionInstructionsResponse response = client.v1().positions().submitPositionInstructions(params);
}
}{
"data": [
{
"account_id": 122503,
"id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"status": "SENT",
"symbol": "AAPL 280121C00195000"
}
],
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd01"
}
}{
"data": [
{
"account_id": 122503,
"id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"status": "SENT",
"symbol": "AAPL 280121C00195000"
},
{
"account_id": 122503,
"id": "00000000-0000-0000-0000-000000000000",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"rejection_reason": "Duplicate exercise instruction",
"status": "ENGINE_REJECTED",
"symbol": "AAPL 280121C00195000"
}
],
"error": {
"code": 409,
"message": "Duplicate exercise instruction"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd02"
}
}{
"error": {
"code": 400,
"message": "DO_NOT_EXERCISE must be submitted on the contract's expiration date"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd03"
}
}{
"error": {
"code": 409,
"message": "Duplicate exercise instruction"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd04"
}
}Returns Examples
{
"data": [
{
"account_id": 122503,
"id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"status": "SENT",
"symbol": "AAPL 280121C00195000"
}
],
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd01"
}
}{
"data": [
{
"account_id": 122503,
"id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e02",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"status": "SENT",
"symbol": "AAPL 280121C00195000"
},
{
"account_id": 122503,
"id": "00000000-0000-0000-0000-000000000000",
"instruction_id": "ui-20260424-001",
"instruction_type": "EXERCISE",
"instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
"quantity": "1",
"rejection_reason": "Duplicate exercise instruction",
"status": "ENGINE_REJECTED",
"symbol": "AAPL 280121C00195000"
}
],
"error": {
"code": 409,
"message": "Duplicate exercise instruction"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd02"
}
}{
"error": {
"code": 400,
"message": "DO_NOT_EXERCISE must be submitted on the contract's expiration date"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd03"
}
}{
"error": {
"code": 409,
"message": "Duplicate exercise instruction"
},
"metadata": {
"request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd04"
}
}