Options Trading
The Options API lets you trade US stock options through the same unified order endpoints as stocks. Options are differentiated by setting instrument_type: OPTION and providing option-specific parameters including the legs array with strike price, expiration, and option type.
For stock and ETF trading, see the dedicated Stock Trading page.
Supported Order Types
| Order Type | Description |
|---|---|
MARKET | Execute immediately at the best available price |
LIMIT | Execute at the specified price or better |
STOP_LOSS | Trigger a market order when the stop price is reached |
STOP_LOSS_LIMIT | Trigger a limit order when the stop price is reached |
Time in Force
| Value | Description |
|---|---|
DAY | Valid for the current trading day only |
GTC | Good till cancelled |
Supported Strategy
The Options API supports single-leg (SINGLE) option orders only. Set option_strategy to SINGLE in your order request.
Position Intent
For margin accounts, you must specify position_intent to indicate whether the order is opening or closing a position:
| Value | Description |
|---|---|
BUY_TO_OPEN | Open a new long position (buy calls or puts) |
SELL_TO_CLOSE | Close an existing long position (sell calls or puts you own) |
Cash accounts can leave position_intent blank.
Key Parameters
Order-Level Parameters
| Parameter | Required | Description |
|---|---|---|
account_id | Yes | Trading account identifier |
client_order_id | Yes | Unique client-defined order ID (max 32 chars, must be unique per account) |
combo_type | Yes | NORMAL for standard orders |
option_strategy | Yes | Strategy type (see table above) |
instrument_type | Yes | OPTION |
market | Yes | US |
order_type | Yes | MARKET, LIMIT, STOP_LOSS, or STOP_LOSS_LIMIT |
side | Yes | BUY or SELL |
quantity | Yes | Number of contracts |
entrust_type | Yes | QTY (only quantity-based orders are supported) |
time_in_force | Yes | DAY or GTC |
position_intent | Conditional | Required for margin accounts: BUY_TO_OPEN or SELL_TO_CLOSE |
limit_price | Conditional | Required for LIMIT and STOP_LOSS_LIMIT |
stop_price | Conditional | Required for STOP_LOSS and STOP_LOSS_LIMIT |
symbol | Yes | Underlying symbol (e.g., AAPL) |
Leg Parameters (legs[])
| Parameter | Required | Description |
|---|---|---|
side | Yes | BUY or SELL |
quantity | Yes | Number of contracts for this leg |
symbol | Yes | Underlying symbol (e.g., AAPL) |
strike_price | Yes | Strike price of the option |
option_expire_date | Yes | Expiration date in YYYY-MM-DD format |
instrument_type | Yes | OPTION (or EQUITY for stock legs in covered strategies) |
option_type | Yes | CALL or PUT |
market | Yes | US |
Request Examples
- Buy Call (Limit)
- Buy Put (Limit)
- Sell to Close (Limit)
- Stop Loss
- Stop Loss Limit
- Market Order
Buy 1 AAPL call option at a limit price of $11.25, strike price $220, expiring 2025-11-19.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "LIMIT",
"limit_price": "11.25",
"quantity": "1",
"option_strategy": "SINGLE",
"position_intent": "BUY_TO_OPEN",
"side": "BUY",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"legs": [
{
"side": "BUY",
"quantity": "1",
"symbol": "AAPL",
"strike_price": "220.00",
"option_expire_date": "2025-11-19",
"instrument_type": "OPTION",
"option_type": "CALL",
"market": "US"
}
]
}
]
}
Buy 2 TSLA put options at a limit price of $8.50, strike price $250, expiring 2025-12-17.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "LIMIT",
"limit_price": "8.50",
"quantity": "2",
"option_strategy": "SINGLE",
"position_intent": "BUY_TO_OPEN",
"side": "BUY",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"legs": [
{
"side": "BUY",
"quantity": "2",
"symbol": "TSLA",
"strike_price": "250.00",
"option_expire_date": "2025-12-17",
"instrument_type": "OPTION",
"option_type": "PUT",
"market": "US"
}
]
}
]
}
Sell 1 AAPL call option to close a position at a limit price of $5.00, strike price $230, expiring 2025-11-19.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "LIMIT",
"limit_price": "5.00",
"quantity": "1",
"option_strategy": "SINGLE",
"position_intent": "SELL_TO_CLOSE",
"side": "SELL",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"legs": [
{
"side": "SELL",
"quantity": "1",
"symbol": "AAPL",
"strike_price": "230.00",
"option_expire_date": "2025-11-19",
"instrument_type": "OPTION",
"option_type": "CALL",
"market": "US"
}
]
}
]
}
Sell 1 AAPL call option when the option price drops to $3.00 (triggers a market order).
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "STOP_LOSS",
"stop_price": "3.00",
"quantity": "1",
"option_strategy": "SINGLE",
"position_intent": "SELL_TO_CLOSE",
"side": "SELL",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"legs": [
{
"side": "SELL",
"quantity": "1",
"symbol": "AAPL",
"strike_price": "220.00",
"option_expire_date": "2025-11-19",
"instrument_type": "OPTION",
"option_type": "CALL",
"market": "US"
}
]
}
]
}
Sell 1 TSLA put option when the price drops to $4.00 (stop), then place a limit order at $3.80.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "STOP_LOSS_LIMIT",
"stop_price": "4.00",
"limit_price": "3.80",
"quantity": "1",
"option_strategy": "SINGLE",
"position_intent": "SELL_TO_CLOSE",
"side": "SELL",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"legs": [
{
"side": "SELL",
"quantity": "1",
"symbol": "TSLA",
"strike_price": "250.00",
"option_expire_date": "2025-12-17",
"instrument_type": "OPTION",
"option_type": "PUT",
"market": "US"
}
]
}
]
}
Buy 1 NVDA call option at market price, strike price $130, expiring 2025-11-19.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"order_type": "MARKET",
"quantity": "1",
"option_strategy": "SINGLE",
"position_intent": "BUY_TO_OPEN",
"side": "BUY",
"time_in_force": "DAY",
"entrust_type": "QTY",
"instrument_type": "OPTION",
"market": "US",
"symbol": "NVDA",
"legs": [
{
"side": "BUY",
"quantity": "1",
"symbol": "NVDA",
"strike_price": "130.00",
"option_expire_date": "2025-11-19",
"instrument_type": "OPTION",
"option_type": "CALL",
"market": "US"
}
]
}
]
}
Option Contract Symbol Format
Option symbols follow the OCC (Options Clearing Corporation) format:
AAPL260522C00300000
│ │ │ │
│ │ │ └── Strike price × 1000 (padded to 8 digits): $300.00
│ │ └── Option type: C = Call, P = Put
│ └── Expiration date: YYMMDD (2025-05-22)
└── Underlying symbol (up to 6 chars)
Use the Option Contracts endpoint to retrieve valid option symbols for a given underlying.
Option Market Data
The following market data endpoints are available for options:
| Endpoint | Description |
|---|---|
| Option Tick | Tick-by-tick trade records for a specified option contract |
| Option Snapshot | Real-time quote snapshot with price, volume, bid/ask, and Greeks |
| Option Historical Bars | OHLCV candlestick data for option contracts |
| Option Contracts | Query available option contracts by underlying symbol |
Access to option market data via the OpenAPI requires a paid market-data subscription. This subscription module is under active development — please stay tuned.
What's Next
- Stock Trading — Stock and ETF order management
- Trading API Overview — Full feature matrix
- Trading API FAQ — Common questions and troubleshooting