Subscribe Pair Updates (WS)

Subscribe Pair Updates: Credit Usage 0

Used to subscribe to price changes and related data of a specified pool / pair

URL

Header: X-API-KEY

(Please do not disclose your API Key to anyone. If you are at risk of losing it, please refresh it.)

Notes

  1. X-API-KEY can be obtained in your "Dashboard", go to check: Dashboard

  2. 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

  3. Example in NodeJS:

const WebSocket = require('ws')
function main() {
  const ws = new WebSocket('wss://api-data-v1.dbotx.com/data/ws/', {
    headers: {
      'x-api-key': 'YOUR_API_KEY',
    },
  })
  ws.on('open', () => {
    ws.send(
      JSON.stringify({
        method: 'subscribe',
        type: 'tokenInfo',
        args: {
          pair: '4N389xaQ2jRWDxpXmzwUCEnCQHDcDfprCsTqEd2taPoU',
          token: 'FMaopciCph2TyyQfo4V7sNJhVmadujCcDupefiCdpump',
        },
      })
    )
    setInterval(() => {
      ws.ping()
    }, 30000)
  })
  ws.on('message', res => {
    console.log('res:', res.toString('utf-8'))
  })
}
main()
  1. Example in Python:

import asyncio
import websockets
import json

async def main():
    uri = "wss://api-data-v1.dbotx.com/data/ws/"
    headers = {"x-api-key": "YOUR_API_KEY"}
    msg = {
      method: 'subscribe',
      type: 'tokenInfo',
      args: {
        pair: '4N389xaQ2jRWDxpXmzwUCEnCQHDcDfprCsTqEd2taPoU',
        token: 'FMaopciCph2TyyQfo4V7sNJhVmadujCcDupefiCdpump',
      },
    },

    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 Example

{
	"method": "subscribe",
	"type": "pairInfo",
	"args": {
		"pair": "4N389xaQ2jRWDxpXmzwUCEnCQHDcDfprCsTqEd2taPoU",
		"token": "FMaopciCph2TyyQfo4V7sNJhVmadujCcDupefiCdpump"
	}
}

Request Response

{
	"status": "ack",
	"method": "subscribeResponse",
	"result": {
		"type": "pairInfo",
		"t": 1751008703051,
		"subscribed": [
			"pairInfo"
		],
		"message": "Connected and subscribed"
	}
}

Request Parameters

  • method: Action performed: "subscribe" for subscription, "unsubscribe" for unsubscription

  • type: Subscription type: "tx" for real-time transactions, "pairsInfo" for multi-pair data updates, "newPairInfo" for newly created pools / pairs, "pairInfo" for single pair data update

  • pair: Subscribed pair address

  • token: Subscribed token address (optional); if provided, the number of holders of the token will be returned

Last updated