Skip to content
Get started

Close Position

$ clear-street v1:positions close-position
DELETE/v1/accounts/{account_id}/positions/{instrument_id}

Delete a position within an account for an instrument.

Retrieves orders generated to close the position.

ParametersExpand Collapse
--account-id: number

Path param: Account identifier

--instrument-id: string

Path param: OEMS instrument UUID

--cancel-orders: optional boolean

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

ReturnsExpand Collapse
V1PositionClosePositionResponse: BaseResponse { metadata, error }
data: array of Order { id, account_id, client_order_id, 29 more }
id: string

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

account_id: number

Account placing the order

client_order_id: string

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

created_at: string

Timestamp when order was created (UTC)

filled_quantity: string

Cumulative filled quantity

instrument_id: string

OEMS instrument UUID for the traded instrument.

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

Type of security

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

Remaining unfilled quantity

order_type: "MARKET" or "LIMIT" or "STOP" or 4 more

Type of order (MARKET, LIMIT, etc.)

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
"OTHER"
quantity: string

Total order quantity

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the order (BUY, SELL, SELL_SHORT)

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
status: "PENDING_NEW" or "NEW" or "PARTIALLY_FILLED" or 12 more

Current status of the order

"PENDING_NEW"
"NEW"
"PARTIALLY_FILLED"
"FILLED"
"CANCELED"
"REJECTED"
"EXPIRED"
"PENDING_CANCEL"
"PENDING_REPLACE"
"REPLACED"
"DONE_FOR_DAY"
"STOPPED"
"SUSPENDED"
"CALCULATED"
"OTHER"
symbol: string

Trading symbol

time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 8 more

Time in force instruction

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
"OTHER"
updated_at: string

Timestamp of the most recent update (UTC)

venue: string

MIC code of the venue where the order is routed

average_fill_price: optional string

Average fill price across all executions

details: optional array of string

Contains execution, rejection or cancellation details, if any

expires_at: optional string

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

extended_hours: optional boolean

Whether the order is eligible for extended-hours trading.

limit_offset: optional string

Limit offset for trailing stop-limit orders (signed)

limit_price: optional string

Limit price (for LIMIT and STOP_LIMIT orders)

queue_state: optional "AWAITING_RELEASE" or "RELEASED"

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

"AWAITING_RELEASE"
"RELEASED"
releases_at: optional string

Scheduled release time for orders awaiting release.

stop_price: optional string

Stop price (for STOP and STOP_LIMIT orders)

trailing_limit_px: optional string

Current trailing limit price computed by the trailing strategy

trailing_offset: optional string

Trailing offset amount for trailing orders

trailing_offset_type: optional "PRICE" or "BPS"

Trailing offset type for trailing orders

"PRICE"
"BPS"
trailing_stop_px: optional string

Current trailing stop price computed by the trailing strategy

trailing_watermark_px: optional string

Trailing watermark price for trailing orders

trailing_watermark_ts: optional string

Trailing watermark timestamp for trailing orders

underlying_instrument_id: optional string

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.

Close Position

clear-street v1:positions close-position \
  --api-key 'My API Key' \
  --account-id 0 \
  --instrument-id 182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e
{
  "data": [
    {
      "account_id": 19816,
      "average_fill_price": null,
      "created_at": "2025-10-03T14:01:15.000000000Z",
      "filled_quantity": "0",
      "id": "019c0b56-2119-7482-a80f-5a2a316524d9",
      "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": "019c0b56-2119-7482-a80f-5a2a316524d9",
      "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"
  }
}