Market-Specific Rules
Each exchange Stove supports may have its own trading rules on top of the standard order flow. This page documents rules that are specific to a particular market — check the section for the exchange you're trading before submitting orders.
Hong Kong Stock Exchange (HKEX)
Lot Size
HKEX-listed stocks trade in board lots, not individual shares — orders must be submitted in a quantity that's a multiple of the ticker's lot size. Lot size varies by ticker; query it via the lot_size field on Basic Information or Token Address:
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=hkex" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Timestamp: 1746774142000" \
-H "X-API-Signature: GENERATED_SIGNATURE"Check lot_size in the response before constructing your order quantity.
How the restriction is enforced differs between the two trading APIs:
Instant Swap API
This flow is quote-based and supports two input modes:
StablecoinIn (buy orders only; the user inputs a stablecoin payment amount):
The lot-size check happens at the quote step. The calculated stock quantity is rounded down to the nearest full-lot multiple. If the requested amount, including applicable fees, cannot cover at least one full lot, no quote can be obtained.
If the amount converts to a lot multiple plus a partial remainder (for example, the equivalent of 2.5 lots), only the whole-lot quantity is included in the quote and swap order. The unused portion is not charged or executed. The actual stablecoin amount used is returned in
amount_in_used.StockTokenIn (the user inputs an exact stock quantity; used for all sell orders and buy orders where
amount_typeisstocktoken):The quantity must already be a multiple of the lot size. Otherwise, the quote request is rejected with an error and no auto-adjustment is performed.
Precise Execution API
This flow isn't quote-based — the user specifies the order quantity directly. If the quantity isn't a multiple of the lot size, the order is rejected outright and cannot be submitted — consistent with standard brokerage behavior. Create Order does not auto-adjust the quantity, so validate it against lot_size before submitting.
Example: for a ticker with lot_size: 100 — 100, 200, 300 are valid quantities under both APIs. Under Precise Execution API, an order for 150 shares is rejected outright. Under Instant Swap API, a swap sized to the equivalent of 250 shares only quotes and settles 200 shares (2 full lots); the remaining 50-share equivalent is not processed.
Tick Size (Minimum Price Spread)
HKEX also restricts the price increment an order can be placed at — this is called the tick size (minimum spread). Which tick size applies depends on the ticker's price: as a stock's price moves into a different price band, the minimum price increment changes too. An order priced at an increment smaller than the applicable tick size will be rejected.
Getting a ticker's tick size takes two steps:
- Query Basic Information (or Token Address) for the ticker — the
spread_table_codefield in the response identifies which price-band table applies to this ticker. - Query Spread Tables for the market, and find the table whose
codematches thespread_table_codefrom step 1. Itsprice_bandsarray gives you the price ranges (from/to) and theminimum_spreadfor each range — look up the band that contains your order price to get the applicable tick size.
# Step 1: get spread_table_code for the ticker
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=hkex" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Timestamp: 1746774142000" \
-H "X-API-Signature: GENERATED_SIGNATURE"
# Step 2: look up the price-band table for that market
curl -X GET "{API_BASE_URL}/market/v1/hkex/spread-tables" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Timestamp: 1746774142000" \
-H "X-API-Signature: GENERATED_SIGNATURE"Match spread_table_code (from step 1) against code (in step 2's response) to find the right table, then match your order price against price_bands to get minimum_spread.
South Korea Stock Exchange (KRX)
Lot Size
No special restriction. The minimum trading unit is 1 share — fractional shares are not supported.
Tick Size (Minimum Price Spread)
Like HKEX, KRX enforces a minimum price increment (tick size) that varies by price band — the higher the stock price, the larger the tick size. An order priced at an increment smaller than the applicable tick size will be rejected.
Getting a ticker's tick size takes the same two steps as HKEX:
- Query Basic Information (or Token Address) for the ticker — the
spread_table_codefield in the response identifies which price-band table applies to this ticker. - Query Spread Tables for the market, and find the table whose
codematches thespread_table_codefrom step 1. Itsprice_bandsarray gives you the price ranges (from/to) and theminimum_spreadfor each range.
# Step 1: get spread_table_code for the ticker
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=krex" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Timestamp: 1746774142000" \
-H "X-API-Signature: GENERATED_SIGNATURE"
# Step 2: look up the price-band table for that market
curl -X GET "{API_BASE_URL}/market/v1/krex/spread-tables" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Timestamp: 1746774142000" \
-H "X-API-Signature: GENERATED_SIGNATURE"Match spread_table_code (from step 1) against code (in step 2's response) to find the right table, then match your order price against price_bands to get minimum_spread. Reference — the expected KRX price bands:
| Stock Price (KRW) | Tick Size (KRW) | Minimum Spread Ratio |
|---|---|---|
| Below 2,000 | 1 | 0.05% or more |
| 2,000 ~ below 5,000 | 5 | 0.10% ~ 0.25% |
| 5,000 ~ below 20,000 | 10 | 0.05% ~ 0.20% |
| 20,000 ~ below 50,000 | 50 | 0.10% ~ 0.25% |
| 50,000 ~ below 200,000 | 100 | 0.05% ~ 0.20% |
| 200,000 ~ below 500,000 | 500 | 0.10% ~ 0.25% |
| 500,000 or higher | 1,000 | Below 0.2% |