Place Option Order

POST/accounts/{accountId}/optionOrders

Place a new option order for the specified account. Call Preview Option Order first to pre-validate and show the results to the user, and then use confirmId in this request. Option symbol is expected in the following format: [Underlying symbol][Expiration date YYYYMMDD][C or P][Strike price]

Path Parameters

accountIdstringrequired

The account identifier.

Body Parameters

contractIdstringrequired

Option contract symbol in the following format: Example: AAPL20260116C150 (AAPL, expiring 2026-01-16, call, strike $150).

sidestringrequired

Order direction.

openClosestringrequired

Whether the order opens a new position or closes an existing one.

typestringrequired

Order type.

categorystringrequired

Asset class. Use option.

qtystringrequired

Number of contracts.

durationTypestringrequired

Order time-in-force.

limitPricestringoptional

Limit price. Required for limit order type.

stopPricestringoptional

Stop trigger price. Required for stop order type.

confirmIdstringoptional

The confirmId returned from a prior preview request.

Request Example

Place Option Order
JSON
{
  "contractId": "AAPL20260116C150",
  "side": "buy",
  "openClose": "open",
  "type": "limit",
  "qty": "1",
  "limitPrice": "5.00",
  "category": "option",
  "durationType": "day",
  "confirmId": "0000001"
}

Response

200application/json

Order accepted.

sstring

Status indicator. ok on success.

dobject
d.orderIdstring

The identifier of the newly created order.

Response

401application/json

Unauthorized — missing or invalid authentication.

sstring

Error code string, e.g. invalid_grant.

errmsgstring

Human-readable error message.

Response

errorapplication/json

Error response.

sstring

Error code string, e.g. invalid_grant.

errmsgstring

Human-readable error message.

Response Example

{
  "s": "ok",
  "d": {
    "orderId": "112358"
  }
}