Used to edit a limit order task
| Free | Plus | Pro | Enterprise | Credit Usage |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | 0 |
URL
wss://api-bot-v1.dbotx.com/trade/ws
Notes
To ensure the availability and stability of the WebSocket connection, a heartbeat subscription must be sent at least once every minute (recommended every 30–55 seconds), otherwise the system will automatically disconnect the timeout link
Request Example
{
"id": 1761291309, // Call ID, the response returns the same ID as the request
"method": "updateLimitOrder", // Method to edit limit order
"params": {
"id": "mh378onq043aeu", // Limit order id
"enabled": true, // "true"means enabling limit order
"groupId": "m53gevri043ird", // Group id
"triggerPriceUsd": "3.5", // Price (USD) that triggers buy / sell
"triggerDirection": "up", // "down" means buy/sell below the trigger price, "up" means buy/sell above the trigger price
"customFeeAndTip": false, // "true" means both the priority fee (priorityFee) and the bribery tip (jitoTip) fields are valid, and the system will execute the transaction based on the provided values (null indicates automatic priority fee / bribery tip). "false" means that in turbo mode, only the priority fee (priorityFee) is valid, while in anti-MEV, only the bribery tip (jitoTip) is valid, and the system will allocate them automatically
"priorityFee": "0.00005", // Priority Fee (SOL), valid for Solana, empty string means use auto priority fee
"currencyAmountUI": 1, // When trade type is buy, fill in the buy amount (ETH/SOL/BNB/TRX), when tradeType is sell, fill in the sell ratio (0-1
"gasFeeDelta": 5, // Extra added gas (Gwei), valid for EVM
"maxFeePerGas": 100, // When the base gas exceeds this value, no transaction will execute (Gwei), valid for EVM chains
"jitoEnabled": true, // "true" means enable anti-MEV mode (Solana & Ethereum & Bsc)
"jitoTip": 0.0021, // Bribery tip used by Anti-MEV (Solana), required when “jitoEnabled” or “customFeeAndTip” is true (null indicates automatic priority fee / bribery tip)
"expireDelta": 360000000, // Task duration, max 432000000 (milliseconds)
"expireExecute": false, // "true"means that when a task expires and is not triggered, the token will be bought or sold at the real-time price at that time
"useMidPrice": false, // "true" enables Anti-Spike mode using the 1-second mid-price as trigger price (not 100% guaranteed)
"maxSlippage": 0.1, // MAX slippage tolerance (0.00-1.00), when buying, it represents the difference between the actual price and the expected price. When selling, it represents the difference between the expected price and the actual price, the difference multiplier = 1/(1-slippage), 0.5 means a maximum of 2 times the accepted spread, 1 means unlimited spreads
"concurrentNodes": 2, // Number of concurrent nodes (1-3)
"retries": 1 // Number of retries after failure (0-10)
}
}Response Data
{
"method": "rpcResponse", // RPC response
"id": 1761291309, // Call ID
"result": {
"err": false // Request result status; false means succeeded, true means failed
}
}Example in NodeJS
const WebSocket = require('ws')
function main() {
const ws = new WebSocket('wss://api-data-v1.dbotx.com/trade/ws/', {
headers: {
'x-api-key': 'YOUR_API_KEY',
},
})
ws.on('open', () => {
ws.send(
JSON.stringify({
"id": 1761291309,
"method": "updateLimitOrder",
"params": {
"id": "mh378onq043aeu",
"enabled": true,
"groupId": "m53gevri043ird",
"triggerPriceUsd": "3.5",
"triggerDirection": "up",
"customFeeAndTip": false,
"priorityFee": "0.00005",
"currencyAmountUI": 1,
"gasFeeDelta": 5,
"maxFeePerGas": 100,
"jitoEnabled": true,
"jitoTip": 0.0021,
"expireDelta": 360000000,
"expireExecute": false,
"useMidPrice": false,
"maxSlippage": 0.1,
"concurrentNodes": 2,
"retries": 1
}
})
)
setInterval(() => {
ws.ping()
}, 30000)
})
ws.on('message', res => {
console.log('res:', res.toString('utf-8'));
})
}
main()Example in Python
import asyncio
import websockets
import json
async def main():
uri = "wss://api-data-v1.dbotx.com/trade/ws/"
headers = {"x-api-key": "YOUR_API_KEY"}
msg = {
"id": 1761291309,
"method": "updateLimitOrder",
"params": {
"id": "mh378onq043aeu",
"enabled": true,
"groupId": "m53gevri043ird",
"triggerPriceUsd": "3.5",
"triggerDirection": "up",
"customFeeAndTip": false,
"priorityFee": "0.00005",
"currencyAmountUI": 1,
"gasFeeDelta": 5,
"maxFeePerGas": 100,
"jitoEnabled": true,
"jitoTip": 0.0021,
"expireDelta": 360000000,
"expireExecute": false,
"useMidPrice": false,
"maxSlippage": 0.1,
"concurrentNodes": 2,
"retries": 1
}
}
async with websockets.connect(uri, additional_headers=headers) as ws:
await ws.send(json.dumps(msg))
async def keep_alive():
while True:
await ws.ping()
await asyncio.sleep(30)
async def listen_for_messages():
async for message in ws:
print(message)
await asyncio.gather(keep_alive(), listen_for_messages())
if __name__ == "__main__":
asyncio.run(main())Request Parameters visualization reference

