Skip to main content

Create Order

Place a new spot order on the exchange.

HTTP

MethodPOST
Endpoint/trade/api/v2/order
Rate limit100 requests per 10 seconds

Request Parameters

ParameterTypeMandatoryDescription
sidestringYesbuy or sell (case-insensitive).
symbolstringYesBASE/QUOTE, e.g. BTC/USDT, BTC/INR.
typestringYesOrder type. Currently only LIMIT is supported.
pricenumberYesLimit price.
quantitynumberYesBase asset quantity to buy or sell.
exchangestringYesSee Exchange Identifiers.
client_order_idstringNoYour idempotency key. Send a UUID you generate; if a network blip forces a retry, send the same value and we'll de-duplicate instead of placing twice. Echoed back in order responses and the order-updates socket.
expiry_periodintegerNoOrder TTL in seconds. Default 90. Longer TTLs reduce false-cancel rates if a fast quote moves away briefly; shorter TTLs let you react sooner.

Use Trade Info to fetch the min/max order size and the right precision for price and quantity before submitting. For retry-safe placement, see the idempotency pattern.

Example

import requests

body = {
"side": "sell",
"symbol": "BTC/USDT",
"type": "limit",
"price": 26000,
"quantity": 0.0009,
"exchange": "c2c1",
}
headers, path = sign_request("POST", "/trade/api/v2/order")
response = requests.post(BASE_URL + path, headers=headers, json=body)
print(response.json())

Response

{
"data": {
"order_id": "927db2d9-643c-47a3-9c0f-78741ac95cf5",
"symbol": "BTC/USDT",
"price": 26000,
"average_price": 0,
"orig_qty": 0.0009,
"executed_qty": 0,
"status": "OPEN",
"side": "SELL",
"exchange": "c2c1",
"order_source": "API_TRADING",
"created_time": 1689661638000,
"updated_time": 1689661639000
}
}

Response Parameters

FieldTypeDescription
order_idstringCoinSwitch order ID (UUID).
symbolstringSymbol echoed back.
pricenumberLimit price you placed.
average_pricenumberAverage fill price. 0 until any fill occurs.
orig_qtynumberOriginal base quantity placed.
executed_qtynumberBase quantity filled so far.
statusstringOne of the values in Order Lifecycle.
sidestringBUY or SELL (uppercase in response).
exchangestringExchange the order was routed to.
order_sourcestringAlways API_TRADING for orders placed via this API.
created_timeintegerOrder creation time (Unix milliseconds).
updated_timeintegerLast update time (Unix milliseconds).

Errors

HTTPBodyCause
422{"message":"Input price must be of type number"}Validation failed. Check parameter types.
400{"message":"Amount is more than available balance"}Insufficient balance for the order's notional value.
401{"message":"Invalid Access"}Bad signature, expired epoch, or wrong API key. See Authentication.