Create new order
Place a new market or limit order on a chosen trading pair.
Add "trade_currency": "INR" to draw margin from the INR futures wallet; omit it (or use "USDT") for USDT. order_price, stoploss_price, and takeprofit_price are USDT price levels; quantity is in the base asset; the debited margin (amount) is in the trade currency.
Request
# USDT (default)
curl -X POST "https://trade.mudrex.com/fapi/v1/futures/{asset_id}/order" \
-H "Content-Type: application/json" \
-H "X-Authentication: your-secret-key" \
-d '{
"leverage": 50,
"quantity": 0.01,
"order_price": 12445627,
"order_type": "LONG",
"trigger_type": "MARKET",
"is_takeprofit": true,
"is_stoploss": true,
"stoploss_price": 3800,
"takeprofit_price": 5000,
"reduce_only": false
}'# INR — MARKET
curl -X POST "https://trade.mudrex.com/fapi/v1/futures/SOMIUSDT/order?is_symbol" \
-H "Content-Type: application/json" \
-H "X-Authentication: your-secret-key" \
-d '{
"leverage": "5",
"quantity": "43.8",
"order_price": "0.11441",
"order_type": "LONG",
"trigger_type": "MARKET",
"is_takeprofit": false,
"is_stoploss": false,
"reduce_only": false,
"trade_currency": "INR"
}'# INR — LIMIT
curl -X POST "https://trade.mudrex.com/fapi/v1/futures/SOMIUSDT/order?is_symbol" \
-H "Content-Type: application/json" \
-H "X-Authentication: your-secret-key" \
-d '{
"leverage": "5",
"quantity": "44.0",
"order_price": "0.11400",
"order_type": "LONG",
"trigger_type": "LIMIT",
"is_takeprofit": false,
"is_stoploss": false,
"reduce_only": false,
"trade_currency": "INR"
}'Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_id | string | Yes | Asset UUID (path) or trading symbol if is_symbol is present. |
is_symbol | string | No | Query parameter. If present, asset_id is treated as a trading symbol. |
leverage | number | Yes | Leverage value (within the asset's permissible range; uses the (asset, currency) leverage). |
quantity | number | Yes | Order quantity in the base asset (multiple of the asset's quantity step). |
order_price | number | Yes | Order price in USDT (within the asset's min & max for LONG/SHORT). |
order_type | string | Yes | LONG or SHORT. If reduce_only is true, must be opposite the existing position. |
trigger_type | string | Yes | MARKET or LIMIT. |
is_takeprofit | boolean | No | Whether to set a take profit order (default: false). |
is_stoploss | boolean | No | Whether to set a stop loss order (default: false). |
stoploss_price | number | Conditional | Required if is_stoploss is true. USDT price. |
takeprofit_price | number | Conditional | Required if is_takeprofit is true. USDT price. |
reduce_only | boolean | No | If true, order can only decrease or close an existing position (default: false). |
trade_currency | string | No | USDT or INR (body field). Defaults to USDT. Selects the wallet the margin is debited from. |
Response
Status: 202 Accepted
USDT:
{
"success": true,
"data": {
"leverage": "80.9",
"amount": "222.8",
"quantity": "0.05",
"price": "4456",
"order_id": "0199c39f-e866-7d6b-947e-ed2f09c90b8e",
"status": "CREATED",
"message": "OK"
}
}INR (MARKET example above):
{
"success": true,
"data": {
"leverage": "5",
"amount": "5.011596",
"quantity": "43.8",
"price": "0.11442",
"order_id": "019ecc52-2f97-7e34-b3cc-22364e107975",
"status": "CREATED",
"message": "OK"
}
}Response fields
| Field | Description |
|---|---|
order_id | UUID of the created order. Used for CRUD operations on the order/position (SL/TP, square off, cancel). |
leverage | Leverage used for the order. |
amount | Margin used for the order, in the order's currency (INR for INR orders). |
quantity | Order quantity (base asset). |
price | Order price (USDT). |
status | Order status (e.g. CREATED). |
message | Status message. |
Errors
Common errors
Standard 400 Bad Request errors apply unchanged — Params error, invalid trigger type, invalid order type, order price out of permissible range, quantity not a multiple of the quantity step, leverage out of permissible range.
Invalid trade currency
{
"success": false,
"errors": [
{ "code": 400, "text": "Invalid trade currency" }
]
}Status: 400 Bad Request
Notes
- Order Price: Must be between the asset's min & max price for
LONG/SHORTorders (USDT). - LIMIT orders / minimum notional: A
LIMITorder must meet the asset'smin_notional_value(USDT) evaluated at the limit price. Orders below the minimum notional are rejected. - Reduce-Only Orders: If
reduce_onlyistrueand a position is open, the order type must be opposite the existing position. - Stop Loss/Take Profit: If
is_takeprofitoris_stoplossistrue, you must define the corresponding price. - Insufficient margin: Insufficient INR (or USDT) margin returns the standard
400insufficient-balance error. - Symbol-First: Add
?is_symbolto use a trading symbol instead of asset UUID; its presence is enough.
