Batch Modify Orders
Description
Batch modify multiple orders. Maximum 5 orders per request.
caution
This endpoint is currently available on Testnet only and returns 405 on the production API.
HTTP Request
PUT /fapi/v1/batchOrders (HMAC SHA256)
Weight
5
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| batchOrders | JSON LIST | YES | Order list, containing up to 5 order parameters |
| timestamp | LONG | YES | Timestamp |
Each order object contains parameters as described in the Modify Order interface.
Response Example
[
{
"orderId": 2254222045,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "testOrderBatchModify1",
"price": "60500",
"origQty": "0.1",
"updateTime": 1623910239123
},
{
"code": -2011,
"msg": "Unknown order sent."
}
]
The response is a list where each element corresponds to an order in the request.
Either orderId or origClientOrderId must be sent for each order.
Code Examples
cURL
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
BATCH='[{"symbol":"BTCUSDT","orderId":2254222045,"side":"BUY","quantity":"0.02","price":"61000"},{"symbol":"BTCUSDT","orderId":2254222046,"side":"SELL","quantity":"0.02","price":"79000"}]'
QUERY_STRING="batchOrders=${BATCH}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY_STRING}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')
curl -s -X PUT \
-H "X-MBX-APIKEY: ${API_KEY}" \
"https://api-sepolia.ztdx.io/fapi/v1/batchOrders?${QUERY_STRING}&signature=${SIGNATURE}"
Python
import time, hmac, hashlib, requests, json
from urllib.parse import quote
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.ztdx.io"
def sign(msg: str) -> str:
return hmac.new(API_SECRET.encode(), msg.encode(), hashlib.sha256).hexdigest()
# Modify two existing orders in a batch
batch_orders = [
{"symbol": "BTCUSDT", "orderId": "order_id_1", "side": "BUY", "quantity": "0.02", "price": "61000"},
{"symbol": "BTCUSDT", "orderId": "order_id_2", "side": "SELL", "quantity": "0.02", "price": "79000"},
]
ts = int(time.time() * 1000)
batch_str = json.dumps(batch_orders, separators=(',', ':'))
encoded = quote(batch_str)
qs = f"batchOrders={encoded}×tamp={ts}"
sig = sign(qs)
resp = requests.put(
f"{BASE_URL}/fapi/v1/batchOrders?{qs}&signature={sig}",
headers={"X-MBX-APIKEY": API_KEY},
)
print(resp.json())