Stock Trading
The Stock Orders API supports placing, modifying, and cancelling orders for US stocks and ETFs. The unified order interface supports standard orders, combo orders (OTO/OCO/OTOCO), take-profit/stop-loss, trailing stops, algorithmic orders, and fractional share trading.
For options trading, see the dedicated Options page. For the full list of supported order types and features by product, see the Feature Matrix in the Trading API Overview.
Order Lifecycle
Every order follows this lifecycle:
- Preview — Estimate costs and fees before committing
- Place — Submit the order
- Replace — Modify price or quantity while the order is open
- Cancel — Cancel a pending order
- Query — Check order status, history, or details at any time
Key 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 | Order combination type: NORMAL, MASTER, STOP_PROFIT, STOP_LOSS, OTO, OCO, OTOCO |
symbol | Yes | Trading symbol (e.g., AAPL, TSLA) |
instrument_type | Yes | EQUITY for stock orders |
market | Yes | US |
order_type | Yes | Order type — see table below |
side | Yes | BUY, SELL, or SHORT |
quantity | Yes | Number of shares. Supports decimals for fractional orders (e.g., "0.5") |
total_cash_amount | Conditional | Total dollar amount. Required when entrust_type is AMOUNT. Amount must be less than the price of 1 share |
entrust_type | Yes | QTY (by quantity, supports fractional decimals) or AMOUNT (by cash amount, for buying less than 1 share) |
time_in_force | Yes | DAY or GTC |
limit_price | Conditional | Required for LIMIT, STOP_LOSS_LIMIT, LIMIT_ON_OPEN |
stop_price | Conditional | Required for STOP_LOSS, STOP_LOSS_LIMIT |
support_trading_session | Yes | CORE, ALL, or NIGHT |
trailing_type | Conditional | Required for TRAILING_STOP_LOSS. AMOUNT or PERCENTAGE |
trailing_stop_step | Conditional | Required for TRAILING_STOP_LOSS. Trail amount or percentage (e.g., 0.01 = 1%) |
client_combo_order_id | Conditional | Required when combo_type is not NORMAL |
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 |
TRAILING_STOP_LOSS | Stop price trails the market price by a set amount or percentage. Only supports DAY time in force |
MARKET_ON_OPEN | Execute at the opening price (institutional only) |
MARKET_ON_CLOSE | Execute at the closing price (institutional only) |
LIMIT_ON_OPEN | Limit order at market open (institutional only) |
Time in Force
| Value | Description |
|---|---|
DAY | Valid for the current trading day only |
GTC | Good till cancelled — remains active until filled or manually cancelled (typically up to 60 days) |
Trading Sessions
| Value | Description |
|---|---|
CORE | Regular market hours only (9:30 AM – 4:00 PM ET) |
ALL | Extended hours including pre-market and after-hours |
NIGHT | Night trading session only |
Combo Orders
Combo orders let you link multiple orders together with conditional logic:
| Combo Type | Description |
|---|---|
NORMAL | Standard single order |
MASTER | Primary order with attached take-profit and/or stop-loss |
STOP_PROFIT | Take-profit leg attached to a MASTER order |
STOP_LOSS | Stop-loss leg attached to a MASTER order |
OTO | One-Triggers-Other — secondary order triggers after primary fills |
OCO | One-Cancels-Other — two linked orders, when one fills the other is cancelled |
OTOCO | One-Triggers-OCO — primary order triggers two linked OCO orders upon fill |
Combo orders require a client_combo_order_id in addition to individual client_order_id for each leg. Each client_order_id must be unique.
Algorithmic Orders
Algorithmic orders execute large orders over time to minimize market impact. Only MARKET and LIMIT order types are supported. Algo orders only run during regular trading hours.
| Parameter | Required | Description |
|---|---|---|
algo_type | Yes | TWAP, VWAP, or POV |
algo_start_time | Yes | Start time in HH:mm:ss format (US Eastern Time). Must be later than current time |
algo_end_time | Yes | End time in HH:mm:ss format (US Eastern Time) |
max_target_percent | TWAP/VWAP | Maximum participation rate (1–20). Defines execution aggressiveness |
target_vol_percent | POV | Target volume participation percentage (1–20) |
| Algo Type | Description |
|---|---|
TWAP | Time Weighted Average Price — distributes execution evenly over time |
VWAP | Volume Weighted Average Price — distributes execution proportional to historical volume |
POV | Percentage of Volume — participates at a target percentage of real-time market volume |
Request Examples
- Limit
- Market
- Stop Loss
- Stop Loss Limit
- Trailing Stop
- Fractional Shares
- Extended Hours
- Take-Profit / Stop-Loss
- Algo (TWAP)
Buy 10 shares of AAPL at a limit price of $180, valid for the current trading day during regular hours.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "LIMIT",
"limit_price": "180.00",
"quantity": "10",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Buy 5 shares of TSLA at market price.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "TSLA",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "MARKET",
"quantity": "5",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Sell 20 shares of NVDA when the price drops to $100 (triggers a market order).
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "NVDA",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "STOP_LOSS",
"stop_price": "100.00",
"quantity": "20",
"side": "SELL",
"time_in_force": "GTC",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Sell 10 shares of AMZN when the price drops to $180 (stop), then place a limit order at $178.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AMZN",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "STOP_LOSS_LIMIT",
"stop_price": "180.00",
"limit_price": "178.00",
"quantity": "10",
"side": "SELL",
"time_in_force": "GTC",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Sell 15 shares of AAPL with a trailing stop of $5. The stop price will trail the market price downward by $5.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "TRAILING_STOP_LOSS",
"trailing_type": "AMOUNT",
"trailing_stop_step": "5",
"quantity": "15",
"side": "SELL",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Buy 0.5 shares of AAPL (fractional share order). Only MARKET orders are supported for fractional trading. The quantity must be between 0 (exclusive) and 1 (inclusive), and the order value must be at least $5.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "MARKET",
"quantity": "0.5",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Buy 10 shares of AAPL with a limit order, valid across all trading sessions including pre-market and after-hours.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "LIMIT",
"limit_price": "178.00",
"quantity": "10",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "ALL",
"entrust_type": "QTY"
}
]
}
Primary order with take-profit and stop-loss legs.
{
"account_id": "<your_account_id>",
"client_combo_order_id": "<unique_combo_id>",
"new_orders": [
{
"client_order_id": "<unique_id_1>",
"combo_type": "MASTER",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "LIMIT",
"limit_price": "180",
"quantity": "1",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
},
{
"client_order_id": "<unique_id_2>",
"combo_type": "STOP_PROFIT",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "LIMIT",
"limit_price": "195",
"quantity": "1",
"side": "SELL",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
},
{
"client_order_id": "<unique_id_3>",
"combo_type": "STOP_LOSS",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "STOP_LOSS",
"stop_price": "170",
"quantity": "1",
"side": "SELL",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY"
}
]
}
Buy 1000 shares of AAPL using TWAP algorithm, distributed between 10:00 AM and 2:00 PM ET, with max 10% volume participation.
{
"account_id": "<your_account_id>",
"new_orders": [
{
"client_order_id": "<unique_id>",
"combo_type": "NORMAL",
"symbol": "AAPL",
"instrument_type": "EQUITY",
"market": "US",
"order_type": "LIMIT",
"limit_price": "180.00",
"quantity": "1000",
"side": "BUY",
"time_in_force": "DAY",
"support_trading_session": "CORE",
"entrust_type": "QTY",
"algo_type": "TWAP",
"algo_start_time": "10:00:00",
"algo_end_time": "14:00:00",
"max_target_percent": "10"
}
]
}
What's Next
- Options — Options trading
- Futures — Futures contract trading
- Crypto — Crypto trading
- Event Contracts — Binary outcome event trading
- Trading API FAQ — Common questions and troubleshooting