Skip to Content

Submit Order

This API is used to submit order for HK and US stocks, warrant and option.

Request

HTTP MethodPOST
HTTP URL/v1/trade/order

Parameters

Content-Type: application/json; charset=utf-8

NameTypeRequiredDescription
symbolstringYESStock symbol, use ticker.region format, example: AAPL.US
order_typestringYESOrder Type
submitted_pricestringNOSubmitted price, example: 388.5

LO / ELO / ALO / ODD / LIT Order Required
submitted_quantitystringYESSubmitted quantity, example: 100
trigger_pricestringNOTrigger price, example: 388.5

LIT / MIT Order Required
limit_offsetstringNOLimit offset amount

TSLPAMT / TSLPPCT Order Required whenlimit_depth_level is set to 0
trailing_amountstringNOTrailing amount

TSLPAMT Order Required
trailing_percentstringNOTrailing percent

TSLPPCT Order Required
expire_datestringNOLong term order expire date, format YYYY-MM-DD, example: 2022-12-05

Required when time_in_force is GTD
sidestringYESOrder Side

Enum Value:
Buy
Sell
outside_rthstringNOEnable or disable outside regular trading hours

Enum Value:
RTH_ONLY - regular trading hour only
ANY_TIME - any time
OVERNIGHT - Overnight
time_in_forcestringYESTime in force Type

Enum Value:
Day - Day Order
GTC - Good Til Canceled Order
GTD - Good Til Date Order
remarkstringNOremark (Maximum 255 characters)
limit_depth_levelint32NOSpecifies the bid/ask depth level. Value range is -5 ~ 0 ~ 5.
Negative numbers indicate bid levels (e.g., -1 means best bid level 1),
positive numbers indicate ask levels (e.g., 1 means best ask level 1).
When set to 0, the limit_offset parameter takes effect.
Valid for TSLPAMT / TSLPPCT orders.
monitor_pricestringNOMonitoring price.
Monitoring starts only after reaching this price, updating the reference price.
Valid for TSLPAMT / TSLPPCT orders.
trigger_countint32NONumber of triggers. Value range is 0 ~ 3.
Specifies that within 1 minute, the order will only be placed after being triggered multiple times.
Valid for LIT / MIT / TSLPAMT / TSLPPCT orders.

Request Example

python
from decimal import Decimal
from longport.openapi import TradeContext, Config, OrderType, OrderSide, TimeInForceType

# Load configuration from environment variables
config = Config.from_env()

# Create a context for trade APIs
ctx = TradeContext(config)

# Submit order
resp = ctx.submit_order("700.HK", OrderType.LO, OrderSide.Buy, Decimal(500), TimeInForceType.Day, submitted_price=Decimal(50), remark="Hello from Python SDK")
print(resp)

Response

Response Headers

  • Content-Type: application/json

Response Example

json
{
  "code": 0,
  "message": "success",
  "data": {
    "order_id": 683615454870679600
  }
}

Response Status

StatusDescriptionSchema
200The submission was successful and the order was commissioned.None
400The submit was rejected with an incorrect request parameter.None