Creates an order to buy or sell a specific trading pair.
- Singapore (sg): https://sg-api.upbit.com
- Indonesia (id): https://id-api.upbit.com
- Thailand (th): https://th-api.upbit.com
Order Type
The available order types are as follows.
Limit Order
A limit order is a type of order that is executed only when the buy/sell price set by the user or a more favorable price is reached. It allows control over the upper and lower limits of the execution price; however, execution is not guaranteed as the market price may not reach the specified limit price.
Parameter | Required | Description |
---|---|---|
market | Required | Trading pair code. Enter in the format SGD-BTC . |
side | Required | Enter bid for buy orders, ask for sell orders. |
ord_type | Required | limit |
volume | Required | Order quantity. For example, entering 0.1 means buying/selling 0.1 units of the asset at the limit price. |
price | Required | Order price based on the quote currency. For example, when buying/selling 1 BTC at 1000,000 SGD per BTC in the SGD-BTC market, enter 1000000. |
time_in_force | Optional | ioc , fok , post_only . The post_only option cannot be used together with the smp_type option. |
smp_type | Optional | Self-Match Prevention option. cancel_maker , cancel_taker , reduce . |
identifier | Optional | User-defined order ID that can be used for querying or deleting orders. |
Market Orders
Market orders are order types that are executed immediately at the most favorable current market price. While rapid execution is guaranteed, the execution price may vary depending on market conditions.
volume
parameter (either set its value to null or omit the key entirely). For detailed explanations of each parameter, see the Request Body section below.
Parameter | Required | Description |
---|---|---|
market | Required | Pair code. Enter in the format {Fiat}-BTC . |
side | Required | bid |
ord_type | Required | price |
price | Required | Total order amount based on the quote currency. For example, entering 1000000 in the SGD-BTC pair will buy BTC worth 1 million SGD at market price. |
smp_type | Optional | Self-Match Prevention option. cancel_maker , cancel_taker , reduce |
identifier | Optional | Custom order ID for query or cancellation. |
price
parameter (either set its value to null or omit the key entirely). For detailed explanations of each parameter, see the Request Body section below.
Parameter | Required | Description |
---|---|---|
market | Required | Pair code. Enter in the format {Fiat}-BTC . |
side | Required | ask |
ord_type | Required | market |
volume | Required | Sell order quantity. For example, entering 0.1 in the SGD-BTC pair will sell 0.1 BTC at market price. |
smp_type | Optional | Self-Match Prevention option. cancel_maker , cancel_taker , reduce |
identifier | Optional | Custom order ID for query or cancellation. |
Best Limit Orders
Best Limit orders are a type of order that uses the most favorable opposing price currently available in the market. While complete execution is not always guaranteed, this order type is useful when you want to quickly enter the order book at the best possible price.
volume
parameter is not provided (either set to null or omitted). For detailed explanations of each parameter, please refer to the Request Body section below.
Parameter | Required | Description |
---|---|---|
market | Required | Trading pair code. Enter in the format SGD-BTC . |
side | Required | bid |
ord_type | Required | best |
price | Required | Specifies the total order amount based on the quote asset. A buy order is created for the quantity equivalent to the specified amount at the best ask price. For example, in the SGD-BTC pair, specifying 1000000 creates a buy order for BTC worth 1,000,000 SGD at the best ask price. |
time_in_force | Required | ioc , fok |
smp_type | Optional | Self-Match Prevention option. cancel_maker , cancel_taker , reduce |
identifier | Optional | User-defined order ID for query or deletion. |
price
parameter is not provided (either set to null or omitted). For detailed explanations of each parameter, please refer to the Request Body section below.
Parameter | Required | Description |
---|---|---|
market | Required | Pair code. Enter in the format SGD-BTC . |
side | Required | ask |
ord_type | Required | best |
volume | Required | Sell order quantity. For example, entering 0.1 in the SGD-BTC pair creates an order to sell 0.1 BTC at the best ask price. |
time_in_force | Required | ioc , fok |
smp_type | Optional | Self-Match Prevention option. cancel_maker , cancel_taker , reduce |
identifier | Optional | User-defined order ID for query or deletion. |
Order Execution Conditions (time_in_force)
As an order option, this specifies how the order is handled depending on the execution situation at the time of order creation.
Option | Parameter Value | Description |
---|---|---|
IOC (Immediate or Cancel) | ioc |
Partially executes only the quantity immediately executable under limit order conditions, canceling the remaining quantity. This option is available for Limit and Best Limit orders. |
FOK (Fill or Kill) | fok |
Executes the order only if the entire order quantity can be filled under limit order conditions; otherwise, cancels the entire order. This option is available for Limit and Best Limit orders. |
Post Only | post_only |
Cancels the order without execution if any portion or the entire order can be immediately filled under limit order conditions. The order is created only if it can become a maker order, preventing execution as a taker order. This option is available only for Limit orders (ord_type=limit) and cannot be used with the Self-Match Prevention (SMP) option. |
Self-Matching Prevention (SMP) Option
smp_type
can be configured to enable the desired mode for preventing self-matching of orders. For more details about SMP, please refer Self-Match Prevention page.
prevented_volume
and prevented_locked
.Option | Parameter Value | Description |
---|---|---|
Cancel Maker Order | cancel_maker |
Cancels the maker order. In other words, when self-matching conditions are met upon new order creation, the previously created order is canceled to prevent matching. |
Cancel Taker Order | cancel_taker |
Cancels the taker order. That is, when self-matching conditions are met upon new order creation, the newly created order is canceled to prevent matching. |
Adjust Order Quantity | reduce |
When self-matching conditions are met upon new order creation, the order quantities of the existing and new orders are reduced to prevent matching. If the remaining quantity reaches zero, the order is canceled. |
Asset Lock During Pending Order Execution
When an order is created, the quote asset for buy orders or the base asset for sell orders involved in the order is immediately put into a locked state, making it unavailable for other uses. This mechanism ensures that the user’s balance remains valid at the time of order execution. You can check the locked asset status by calling the Get Account Balance API. The asset lock is maintained until one of the following conditions is met:
- The order is fully executed
- The order is canceled by the user
time_in_force
The order expires according to the time_in_force condition
Example
: When creating a limit buy order in the SGD-BTC market, the specified SGD amount remains locked until the order is executed.
Order Price Unit and Minimum Order Amount
The order price unit and minimum order amount available for use when placing an order vary depending on the market (quote asset) and the base asset price. Please refer to the guide below for market-specific price policies.
Identifier
This is a unique identifier assigned by the user’s client application to identify the order, separate from the UUID used internally by the Upbit system to uniquely identify the order. It is useful when you wish to manage (query and cancel) orders based on a user-defined unique order ID scheme. Each order must be assigned a value that is unique across all orders within the user’s account, and once an identifier value has been used, it cannot be reused regardless of whether the order was created or executed.
Version | Date | Changes |
---|---|---|
v1.2.1 | 2025-07-02 |
Addition of Self-Match Prevention (SMP) feature
|
v1.2.1 | 2025-07-02 |
Addition of Post Only order condition
|
v1.1.9 | 2024-12-04 |
Addition of identifier field
|
v1.1.1 | 2024-04-22 |
Addition of ord_type: best, Addition of time_in_force parameter(All Markets) |
v1.1.1 | 2024-04-04 |
Addition of ord_type: best, Addition of time_in_force parameter(BTC Market Upbit Indonesia and Thailand) |
v1.1.1 | 2024-02-26 |
Addition of ord_type: best, Addition of time_in_force parameter(THB, IDR Market Upbit Indonesia and Thailand) |
v1.1.1 | 2023-10-27 |
Addition of ord_type: best, Addition of time_in_force parameter(Upbit Singapore only) |
If you encounter an out_of_scope error, please verify permission settings in the API Key Management page.