Skip to content
Get started

Close Positions

PositionClosePositionsResponse v1().positions().closePositions(PositionClosePositionsParamsparams = PositionClosePositionsParams.none(), RequestOptionsrequestOptions = RequestOptions.none())
DELETE/v1/accounts/{account_id}/positions

Delete all positions within an account.

Closes all positions for the specified trading account.

ParametersExpand Collapse
PositionClosePositionsParams params
Optional<Long> accountId
Optional<Boolean> cancelOrders

Whether to cancel existing open orders for the position before submitting closing orders.

ReturnsExpand Collapse
class PositionClosePositionsResponse:
List<Order> data
String id

Engine-assigned unique identifier for this order (UUID).

long accountId

Account placing the order

formatint64
String clientOrderId

Client-provided identifier echoed back (FIX tag 11).

LocalDateTime createdAt

Timestamp when order was created (UTC)

formatdate-time
String filledQuantity

Cumulative filled quantity

String instrumentId

OEMS instrument UUID for the traded instrument.

formatuuid
SecurityType instrumentType

Type of security

One of the following:
COMMON_STOCK("COMMON_STOCK")
PREFERRED_STOCK("PREFERRED_STOCK")
OPTION("OPTION")
CASH("CASH")
OTHER("OTHER")
String leavesQuantity

Remaining unfilled quantity

OrderType orderType

Type of order (MARKET, LIMIT, etc.)

One of the following:
MARKET("MARKET")
LIMIT("LIMIT")
STOP("STOP")
STOP_LIMIT("STOP_LIMIT")
TRAILING_STOP("TRAILING_STOP")
TRAILING_STOP_LIMIT("TRAILING_STOP_LIMIT")
OTHER("OTHER")
String quantity

Total order quantity

Side side

Side of the order (BUY, SELL, SELL_SHORT)

One of the following:
BUY("BUY")
SELL("SELL")
SELL_SHORT("SELL_SHORT")
OTHER("OTHER")

Current status of the order

One of the following:
PENDING_NEW("PENDING_NEW")
NEW("NEW")
PARTIALLY_FILLED("PARTIALLY_FILLED")
FILLED("FILLED")
CANCELED("CANCELED")
REJECTED("REJECTED")
EXPIRED("EXPIRED")
PENDING_CANCEL("PENDING_CANCEL")
PENDING_REPLACE("PENDING_REPLACE")
REPLACED("REPLACED")
DONE_FOR_DAY("DONE_FOR_DAY")
STOPPED("STOPPED")
SUSPENDED("SUSPENDED")
CALCULATED("CALCULATED")
OTHER("OTHER")
String symbol

Trading symbol

TimeInForce timeInForce

Time in force instruction

One of the following:
DAY("DAY")
GOOD_TILL_CANCEL("GOOD_TILL_CANCEL")
IMMEDIATE_OR_CANCEL("IMMEDIATE_OR_CANCEL")
FILL_OR_KILL("FILL_OR_KILL")
GOOD_TILL_DATE("GOOD_TILL_DATE")
AT_THE_OPENING("AT_THE_OPENING")
AT_THE_CLOSE("AT_THE_CLOSE")
GOOD_TILL_CROSSING("GOOD_TILL_CROSSING")
GOOD_THROUGH_CROSSING("GOOD_THROUGH_CROSSING")
AT_CROSSING("AT_CROSSING")
OTHER("OTHER")
LocalDateTime updatedAt

Timestamp of the most recent update (UTC)

formatdate-time
String venue

MIC code of the venue where the order is routed

Optional<String> averageFillPrice

Average fill price across all executions

Optional<List<String>> details

Contains execution, rejection or cancellation details, if any

Optional<LocalDateTime> expiresAt

Timestamp when the order will expire (UTC). Present when time_in_force is GOOD_TILL_DATE.

formatdate-time
Optional<Boolean> extendedHours

Whether the order is eligible for extended-hours trading.

Optional<String> limitOffset

Limit offset for trailing stop-limit orders (signed)

Optional<String> limitPrice

Limit price (for LIMIT and STOP_LIMIT orders)

Optional<QueueState> queueState

Parent order queue state, present when the order is awaiting release or released.

One of the following:
AWAITING_RELEASE("AWAITING_RELEASE")
RELEASED("RELEASED")
Optional<LocalDateTime> releasesAt

Scheduled release time for orders awaiting release.

formatdate-time
Optional<String> stopPrice

Stop price (for STOP and STOP_LIMIT orders)

Optional<String> trailingLimitPx

Current trailing limit price computed by the trailing strategy

Optional<String> trailingOffset

Trailing offset amount for trailing orders

Optional<TrailingOffsetType> trailingOffsetType

Trailing offset type for trailing orders

One of the following:
PRICE("PRICE")
BPS("BPS")
Optional<String> trailingStopPx

Current trailing stop price computed by the trailing strategy

Optional<String> trailingWatermarkPx

Trailing watermark price for trailing orders

Optional<LocalDateTime> trailingWatermarkTs

Trailing watermark timestamp for trailing orders

formatdate-time
Optional<String> underlyingInstrumentId

OEMS instrument ID of the option’s underlying instrument. Populated only for OPTIONS orders; null for non-options and for options whose underlier cannot be resolved from the instrument cache.

formatuuid

Close Positions

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.PositionClosePositionsParams;
import com.clear_street.api.models.v1.positions.PositionClosePositionsResponse;

public final class Main {
    private Main() {}

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

        PositionClosePositionsResponse response = client.v1().positions().closePositions(0L);
    }
}
{
  "data": [
    {
      "account_id": 19816,
      "average_fill_price": null,
      "created_at": "2025-10-03T14:01:15.000000000Z",
      "filled_quantity": "0",
      "id": "019c0b57-0850-7b0b-8a2c-5ee3fb5a5876",
      "instrument_id": "c3c4c5c6-d3d4-e3e4-f3f4-f5f6f7f8f9fa",
      "instrument_type": "COMMON_STOCK",
      "leaves_quantity": "25",
      "limit_price": null,
      "order_type": "MARKET",
      "quantity": "25",
      "side": "SELL",
      "status": "PENDING_NEW",
      "stop_price": null,
      "symbol": "GOOG",
      "time_in_force": "DAY",
      "updated_at": "2025-10-03T14:01:15.000000000Z",
      "venue": "XNMS"
    }
  ],
  "error": null,
  "metadata": {
    "request_id": "3f4a5b6c-7d8e-9f0a-1b2c-3d4e5f6a7b8c"
  }
}
{
  "error": {
    "code": 400,
    "message": "Failed to parse the request body as JSON: expected `:` at line 2 column 19"
  },
  "metadata": {
    "request_id": "93a7c482-b246-4e15-9618-bcbe0906b815"
  }
}
{
  "error": {
    "code": 403,
    "message": "The caller does not have permission to execute the specified operation"
  },
  "metadata": {
    "request_id": "5518f0c6-58ff-4b4a-81a5-701556d41206"
  }
}
Returns Examples
{
  "data": [
    {
      "account_id": 19816,
      "average_fill_price": null,
      "created_at": "2025-10-03T14:01:15.000000000Z",
      "filled_quantity": "0",
      "id": "019c0b57-0850-7b0b-8a2c-5ee3fb5a5876",
      "instrument_id": "c3c4c5c6-d3d4-e3e4-f3f4-f5f6f7f8f9fa",
      "instrument_type": "COMMON_STOCK",
      "leaves_quantity": "25",
      "limit_price": null,
      "order_type": "MARKET",
      "quantity": "25",
      "side": "SELL",
      "status": "PENDING_NEW",
      "stop_price": null,
      "symbol": "GOOG",
      "time_in_force": "DAY",
      "updated_at": "2025-10-03T14:01:15.000000000Z",
      "venue": "XNMS"
    }
  ],
  "error": null,
  "metadata": {
    "request_id": "3f4a5b6c-7d8e-9f0a-1b2c-3d4e5f6a7b8c"
  }
}
{
  "error": {
    "code": 400,
    "message": "Failed to parse the request body as JSON: expected `:` at line 2 column 19"
  },
  "metadata": {
    "request_id": "93a7c482-b246-4e15-9618-bcbe0906b815"
  }
}
{
  "error": {
    "code": 403,
    "message": "The caller does not have permission to execute the specified operation"
  },
  "metadata": {
    "request_id": "5518f0c6-58ff-4b4a-81a5-701556d41206"
  }
}