Options Trading
The Options API lets you trade US single-leg options and multi-leg option strategies from your JP account through the same unified order endpoints. Options are differentiated by setting instrument_type: OPTION and providing option-specific parameters including the legs array with strike price, expiration, and option type. A single-leg order has one item in legs; a multi-leg strategy order lists every leg of the strategy in legs.
For stock trading, see the dedicated Stock Trading page.
Supported Order Types
| Order Type | Description |
|---|---|
MARKET | Execute at the current market 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 |
Trading Session
| Value | Description |
|---|---|
CORE | Core trading session only |
Supported Strategies
| Strategy | Description |
|---|---|
SINGLE | Single-leg option order |
COVERED_STOCK | Buy/sell stock + sell/buy call (covered call or buy-write) |
VERTICAL | Two options of the same type and expiration with different strikes |
STRADDLE | Buy/sell a call and put at the same strike and expiration |
STRANGLE | Buy/sell a call and put at different strikes, same expiration |
CALENDAR | Two options of the same type and strike with different expirations |
DIAGONAL | Two options of the same type with different strikes and expirations |
BUTTERFLY | Three-strike strategy combining a bull and bear spread |
CONDOR | Four-strike strategy with two middle strikes |
IRON_BUTTERFLY | Sell a straddle and buy a strangle for protection |
IRON_CONDOR | Sell a strangle and buy a wider strangle for protection |
COLLAR_WITH_STOCK | Own stock + buy put + sell call |
option_strategy is provided for reference only and is not used for order validation. The system determines the actual strategy from the composition of legs.
Key Parameters
Order-Level Parameters (new_orders[])
| Parameter | Required | Description |
|---|---|---|
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 Supported Strategies). SINGLE for single-leg orders |
instrument_type | Yes | OPTION |
market | Yes | US |
symbol | Yes | Underlying symbol (e.g., AAPL) |
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 |
support_trading_session | No | CORE (default) |
limit_price | Conditional | Required for LIMIT and STOP_LOSS_LIMIT |
stop_price | Conditional | Required for STOP_LOSS and STOP_LOSS_LIMIT |
account_tax_type | Yes | Tax account type: GENERAL |
margin_type | No | Margin account only: ONE_DAY or INDEFINITE |
position_intent | No | Margin account only: BUY_TO_OPEN, BUY_TO_CLOSE, SELL_TO_OPEN, or SELL_TO_CLOSE |
close_contracts | No | Array of contract details for closing specific positions (max 10) |
leg_in_or_out | No | LEG_IN — add this leg to an existing position; LEG_OUT — close this leg from an existing multi-leg strategy position |
position_id | Conditional | Position identifier of the target leg. Obtained from Account Positions. Required when leg_in_or_out is specified |
legs | Yes | Option leg details (see below). One item for SINGLE; every leg of the strategy for multi-leg orders |
Leg Parameters (legs[])
| Parameter | Required | Description |
|---|---|---|
instrument_type | Yes | OPTION |
market | Yes | US |
symbol | Yes | Underlying symbol (e.g., AAPL) |
side | Yes | BUY or SELL |
strike_price | Yes | Strike price of the option |
option_expire_date | Yes | Expiration date in YYYY-MM-DD format |
option_type | Yes | CALL or PUT |
quantity | Yes | Number of contracts for this leg |
Request Examples — Single-Leg
- Buy Call (Limit)
- Buy Put (Limit)
- Sell Call (Limit)
- Sell Put (Limit)
- Market Order
- Stop Loss
- Stop Loss Limit
Buy 1 AAPL call option at a limit price of $11.00, strike price $220, expiring 2026-06-19. Using a general tax account.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "LIMIT",
"limit_price": "11.0",
"side": "BUY",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "BUY",
"strike_price": "220.0",
"option_expire_date": "2026-06-19",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
Buy 2 TSLA put options at a limit price of $8.50, strike price $255, expiring 2026-07-17. Using a specific tax account.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"order_type": "LIMIT",
"limit_price": "8.5",
"side": "BUY",
"quantity": "2",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"side": "BUY",
"strike_price": "255.0",
"option_expire_date": "2026-07-17",
"option_type": "PUT",
"quantity": "2"
}
]
}
]
}
Sell 1 AAPL call option at a limit price of $5.00, strike price $230, expiring 2026-06-19.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "LIMIT",
"limit_price": "5.0",
"side": "SELL",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "SELL",
"strike_price": "230.0",
"option_expire_date": "2026-06-19",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
Sell 1 NVDA put option at a limit price of $6.00, strike price $100, expiring 2026-07-17.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "NVDA",
"order_type": "LIMIT",
"limit_price": "6.0",
"side": "SELL",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "NVDA",
"side": "SELL",
"strike_price": "100.0",
"option_expire_date": "2026-07-17",
"option_type": "PUT",
"quantity": "1"
}
]
}
]
}
Buy 1 AAPL call option at market price.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "MARKET",
"side": "BUY",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "BUY",
"strike_price": "220.0",
"option_expire_date": "2026-06-19",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
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",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "STOP_LOSS",
"stop_price": "3.0",
"side": "SELL",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "SELL",
"strike_price": "220.0",
"option_expire_date": "2026-06-19",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
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",
"option_strategy": "SINGLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"order_type": "STOP_LOSS_LIMIT",
"stop_price": "4.0",
"limit_price": "3.8",
"side": "SELL",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"side": "SELL",
"strike_price": "255.0",
"option_expire_date": "2026-07-17",
"option_type": "PUT",
"quantity": "1"
}
]
}
]
}
Request Examples — Multi-Leg
For multi-leg orders, quantity, side, and limit_price at the order level apply to the strategy as a whole, while each item in legs describes one option contract of the strategy.
- Vertical Spread
- Straddle
- Iron Condor
Bull call spread on AAPL: buy a $220 call and sell a $230 call with the same expiration, at a net debit limit price of $2.50.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "VERTICAL",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "LIMIT",
"limit_price": "2.5",
"side": "BUY",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "BUY",
"strike_price": "220.0",
"option_expire_date": "2026-11-20",
"option_type": "CALL",
"quantity": "1"
},
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "SELL",
"strike_price": "230.0",
"option_expire_date": "2026-11-20",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
Long straddle on TSLA: buy a $250 call and a $250 put with the same expiration.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "STRADDLE",
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"order_type": "LIMIT",
"limit_price": "30.0",
"side": "BUY",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"side": "BUY",
"strike_price": "250.0",
"option_expire_date": "2026-11-20",
"option_type": "CALL",
"quantity": "1"
},
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "TSLA",
"side": "BUY",
"strike_price": "250.0",
"option_expire_date": "2026-11-20",
"option_type": "PUT",
"quantity": "1"
}
]
}
]
}
Iron condor on AAPL: sell a $210/$200 put spread and a $240/$250 call spread with the same expiration, at a net credit limit price of $2.00.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"option_strategy": "IRON_CONDOR",
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"order_type": "LIMIT",
"limit_price": "2.0",
"side": "SELL",
"quantity": "1",
"entrust_type": "QTY",
"time_in_force": "DAY",
"account_tax_type": "GENERAL",
"legs": [
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "BUY",
"strike_price": "200.0",
"option_expire_date": "2026-11-20",
"option_type": "PUT",
"quantity": "1"
},
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "SELL",
"strike_price": "210.0",
"option_expire_date": "2026-11-20",
"option_type": "PUT",
"quantity": "1"
},
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "SELL",
"strike_price": "240.0",
"option_expire_date": "2026-11-20",
"option_type": "CALL",
"quantity": "1"
},
{
"instrument_type": "OPTION",
"market": "US",
"symbol": "AAPL",
"side": "BUY",
"strike_price": "250.0",
"option_expire_date": "2026-11-20",
"option_type": "CALL",
"quantity": "1"
}
]
}
]
}
Use Preview Order with the same request body to check the estimated cost of a multi-leg order before placing it.
Leg In / Leg Out
You can adjust an existing position one leg at a time instead of placing a full strategy order:
LEG_IN— Add a leg to an existing position (e.g., sell a call against an existing long call to form a spread).LEG_OUT— Close one leg of an existing multi-leg strategy position while keeping the other legs open.
Workflow:
- Call Account Positions and find the target position. Multi-leg positions are returned with
option_strategyand alegsarray. - Take the
position_idof the target position. - Place the order with
leg_in_or_outset toLEG_INorLEG_OUT,position_idset to the value from step 2, and the leg to add or close inlegs.
position_id is required whenever leg_in_or_out is specified.
Modifying Multi-Leg Orders
Use Replace Order to change the price or quantity of an open multi-leg order. For multi-leg orders, legs is required and must contain every leg of the order, identified by the leg id returned in the order query APIs (Order Detail / Open Orders).
{
"account_id": "<your_account_id>",
"modify_orders": [
{
"client_order_id": "<original_client_order_id>",
"limit_price": "2.3",
"quantity": "2",
"legs": [
{ "id": "<leg_id_1>", "quantity": "2" },
{ "id": "<leg_id_2>", "quantity": "2" }
]
}
]
}
A replace request cannot change the strategy structure. To add or remove legs, or to change the strike price, expiration date, or side of a leg, cancel the order and place a new one.
What's Next
- Accounts — Query positions and obtain
position_idfor Leg In / Leg Out - Stock Trading — Stock and ETF order management (JP supports US stock trading)
- Trading API FAQ — Common questions and troubleshooting