API Reference
DBot OfficialDBot DashboardPricing

多钱包快速买卖任务(WS)

用于批量查询快速买卖的订单状态,ids 的参数来自于快速买卖的响应结果

FreePlusProEnterprise积分消耗
0

URL

wss://api-bot-v1.dbotx.com/trade/ws/

说明

为保证WebSocket连接的可用性和稳定性,需要至少每1分钟(建议每30-55秒)进行一次心跳订阅,否则系统会自动断开超时链接

请求示例

{
  "id": 1761291309, // 调用id,响应结果返回相同ID
  "method": "getSwapOrders", // 调用批量查询快速买卖任务方法
  "params": {
    "ids": ["mh4arjjr00109a","mh4aucim00118e"] // 快速买卖任务ID
  }
}

响应数据

{
    "method": "rpcResponse", // rpc响应
    "id": 1761291309, // 调用id
    "result": {
        "err": false, // 是否发生错误
        "res": [
            {
                "id": "mh4aucim00118e", // 快速买卖任务ID
                "chain": "solana", // 链 (solana/ethereum/base/bsc/tron)
                "tradeType": "sell", // 交易类型,值为buy和sell
                "state": "done", // 订单状态,init:初始化,processing:进行中,done:已完成,fail:已失败,expired:已过期
                "txPriceUsd": 0.000020964896027843757, // 买入/卖出价格
                "swapHash": "4qXJC5tVimziwY7zxED8kbTpUNS9tepXF633up19RoUnjwvJskhEnFhhHsDX2LhMa7Jdyy6cnhxyYfhkzSAPBMgG", // 交易哈希
                "swapLink": "https://solscan.io/tx/4qXJC5tVimziwY7zxED8kbTpUNS9tepXF633up19RoUnjwvJskhEnFhhHsDX2LhMa7Jdyy6cnhxyYfhkzSAPBMgG",
                "errorCode": "", // 错误类型
                "errorMessage": "", // 错误信息
            },
            {
                "id": "mh4arjjr00109a", // 快速买卖任务ID
                "chain": "solana", // 链 (solana/ethereum/base/bsc/tron)
                "tradeType": "buy", // 交易类型,值为buy和sell
                "state": "done", // 订单状态,init:初始化,processing:进行中,done:已完成,fail:已失败,expired:已过期
                "txPriceUsd": 0.000020976535179060357, // 买入/卖出价格
                "swapHash": "5cL65PoEA5bn1fqkwjGqEPMJsZKcTyze36pUNVU3HvXkMtm1gBzzoW4RQnMMpc9iuAEBohcjNVKufQR2U9nVFDpf", // 交易哈希
                "swapLink": "https://solscan.io/tx/5cL65PoEA5bn1fqkwjGqEPMJsZKcTyze36pUNVU3HvXkMtm1gBzzoW4RQnMMpc9iuAEBohcjNVKufQR2U9nVFDpf",
                "errorCode": "", // 错误类型
                "errorMessage": "", // 错误信息
            }
        ]
    }
}

以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": "getSwapOrders",
         "params": {
           "ids": ["mh4arjjr00109a","mh4aucim00118e"]
         }
      })
    )

    setInterval(() => {
      ws.ping()
    }, 30000)
  })

  ws.on('message', res => {
    console.log('res:', res.toString('utf-8'))
  })
}

main()

以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": "getSwapOrders",
        "params": {
          "ids": ["mh4arjjr00109a","mh4aucim00118e"]
      }
  }

    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())

响应结果可视化参考