Submit Order
This API is used to submit order for HK and US stocks, warrant and option.
SDK Links
Request
| HTTP Method | POST |
| HTTP URL | /v1/trade/order |
Parameters
Content-Type: application/json; charset=utf-8
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | YES | Stock symbol, use ticker.region format, example: AAPL.US |
| order_type | string | YES | Order Type |
| submitted_price | string | NO | Submitted price, example: 388.5LO / ELO / ALO / ODD / LIT Order Required |
| submitted_quantity | string | YES | Submitted quantity, example: 100 |
| trigger_price | string | NO | Trigger price, example: 388.5LIT / MIT Order Required |
| limit_offset | string | NO | Limit offset amountTSLPAMT / TSLPPCT Order Required whenlimit_depth_level is set to 0 |
| trailing_amount | string | NO | Trailing amountTSLPAMT Order Required |
| trailing_percent | string | NO | Trailing percentTSLPPCT Order Required |
| expire_date | string | NO | Long term order expire date, format YYYY-MM-DD, example: 2022-12-05Required when time_in_force is GTD |
| side | string | YES | Order Side Enum Value: BuySell |
| outside_rth | string | NO | Enable or disable outside regular trading hours Enum Value: RTH_ONLY - regular trading hour onlyANY_TIME - any timeOVERNIGHT - Overnight |
| time_in_force | string | YES | Time in force Type Enum Value: Day - Day OrderGTC - Good Til Canceled OrderGTD - Good Til Date Order |
| remark | string | NO | remark (Maximum 255 characters) |
| limit_depth_level | int32 | NO | Specifies 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_price | string | NO | Monitoring price. Monitoring starts only after reaching this price, updating the reference price. Valid for TSLPAMT / TSLPPCT orders. |
| trigger_count | int32 | NO | Number 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. |
| client_request_id | string | NO | Idempotent request ID for preventing duplicate order submissions. The server caches this request ID for 10 minutes. If a request with the same ID is received within this period, it returns the same response without creating a duplicate order. Must be a unique identifier (e.g., UUID). |
Idempotency
To ensure orders are not duplicated due to network retries or client failures, you can use the client_request_id parameter:
- Purpose: Prevents duplicate order creation when the same request is retried
- Cache Duration: 10 minutes (server-side)
- Format: Any unique string per request (e.g., UUID, or a client-generated identifier)
- Behavior: If the same
client_request_idis received within 10 minutes, the server returns the cached response from the original request without creating a new order
Idempotency Example
First request: client_request_id="abc123-uuid-request" → Creates order with ID 12345
Retry (same ID within 10 min): client_request_id="abc123-uuid-request" → Returns existing order ID 12345 (no duplicate)
New request: client_request_id="xyz789-uuid-request" → Creates new order with different IDWhen Omitting client_request_id
If you do not provide client_request_id (or pass an empty value), the request will still succeed and create an order normally. However, idempotency protection will be skipped, meaning:
- Each request (even identical ones) will create a separate order
- Network retries or accidental duplicate requests may result in duplicate orders
- No server-side caching of the request will be performed
It is strongly recommended to always provide a unique client_request_id for critical order submissions to prevent unintended duplicates.
Request Example
Response
Response Headers
- Content-Type: application/json
Response Example
json
{
"code": 0,
"message": "success",
"data": {
"order_id": 683615454870679600
}
}Response Status
| Status | Description | Schema |
|---|---|---|
| 200 | The submission was successful and the order was commissioned. | None |
| 400 | The submit was rejected with an incorrect request parameter. | None |