Examples

Browser JavaScript Example

// Browser WebSocket automatically sets Origin and User-Agent headers
const ws = new WebSocket('wss://api.monday.trade/v4/public/ws');

ws.onopen = () => {
  console.log('WebSocket connected');
  
  // Subscribe to K-line data
  ws.send(JSON.stringify({
    id: 1,
    method: 'SUBSCRIBE',
    params: {
      chainId: 143,
      instrument: '0x73ada1ea346cc3908f41cf67a040f0acd7808be0',
      expiry: 4294967295,
      interval: '1m',
      type: 'kline'
    }
  }));
  
  // Subscribe to order book
  ws.send(JSON.stringify({
    id: 2,
    method: 'SUBSCRIBE',
    params: {
      chainId: 143,
      instrument: '0x73ada1ea346cc3908f41cf67a040f0acd7808be0',
      expiry: 4294967295,
      type: 'orderBook'
    }
  }));
};

ws.onmessage = (event) => {
  const message = JSON.parse(event.data);
  
  if (message.id) {
    // Subscription response
    console.log('Subscription response:', message);
  } else if (message.stream) {
    // Data stream message
    console.log('Stream update:', message.stream, message.data);
    
    switch (message.stream) {
      case 'kline':
        // Handle K-line data
        break;
      case 'orderBook':
        // Handle order book data
        break;
      case 'instrument':
        // Handle instrument information
        break;
      case 'portfolio':
        // Handle portfolio notifications
        break;
      case 'blockNumChanged':
        // Handle block number changes
        break;
      case 'marketListChanged':
        // Handle market list changes
        break;
    }
  } else if (event.data === 'pong') {
    // Heartbeat response
    console.log('Heartbeat received');
  }
};

ws.onerror = (error) => {
  console.error('WebSocket error:', error);
};

ws.onclose = () => {
  console.log('WebSocket closed');
  // Implement reconnection logic here
};

// Send heartbeat
setInterval(() => {
  if (ws.readyState === WebSocket.OPEN) {
    ws.send('ping');
  }
}, 30000);

Node.js TypeScript Example

Python Example with Reconnection

Changelog

  • Support for K-line, order book, instrument information, portfolio, and common event subscriptions

  • Heartbeat mechanism support

  • Multi-chain subscription support

Last updated