WebSocket API संदर्भ
व्हेल पोजीशन्स, फंडिंग रेट्स, लिक्विडेशन्स और AI कन्फर्मेशन स्कोर्स के लिए रियल-टाइम डेटा स्ट्रीमिंग। स्वचालित रीकनेक्शन, कुशल डेटा कम्प्रेशन और मल्टी-स्ट्रीम सदस्यता के साथ सब-सेकंड लेटेंसी।
अवलोकन
WebSocket API रियल-टाइम क्रिप्टोकरेंसी डेरिवेटिव्स डेटा के लिए कम लेटेंसी, द्विदिश संचार प्रदान करता है। हर 5-30 सेकंड में REST एंडपॉइंट्स को पोल करने के बजाय, WebSocket कनेक्शन मार्केट स्थितियों के बदलने पर तुरंत अपडेट देते हैं। ट्रेडिंग बॉट्स, अलर्ट सिस्टम्स और रियल-टाइम डैशबोर्ड्स के लिए आदर्श।
REST की तुलना में WebSocket के प्रमुख लाभ:
मार्केट-मूविंग इवेंट्स (लिक्विडेशन्स, व्हेल मूव्स) के लिए सब-सेकंड लेटेंसी
डेल्टा-एन्कोडेड अपडेट्स के साथ कुशल बैंडविड्थ उपयोग
सिंगल कनेक्शन पर एक साथ कई सदस्यताएँ
सर्वर-साइड फिल्टरिंग और एग्रीगेशन
स्वचालित हार्टबीट और रीकनेक्शन हैंडलिंग
आपकी कोटा के खिलाफ कम API अनुरोध गिनती
WebSocket कनेक्शन सभी API टियर्स के लिए उपलब्ध हैं। फ्री टियर उपयोगकर्ता फंडिंग-रेट्स और लिक्विडेशन्स स्ट्रीम्स की सदस्यता ले सकते हैं। ट्रेडर और प्रो टियर्स व्हेल पोजीशन्स, ओपन इंटरेस्ट और कन्फर्मेशन स्कोर्स अनलॉक करते हैं।
प्रमाणीकरण
WebSocket कनेक्शन REST एंडपॉइंट्स की तरह ही प्रमाणीकरण का उपयोग करते हैं। अपनी API कुंजी को क्वेरी पैरामीटर के रूप में पास करें या कनेक्ट होने के बाद पहले संदेश में भेजें।
कनेक्शन URL
बेस WebSocket URL: wss://ws.smartmoneyapi.com/stream
कनेक्शन URL में अपनी API कुंजी शामिल करें:
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789
कनेक्शन लाइफसाइकल
प्रारंभिक कनेक्शन
जब आप WebSocket एंडपॉइंट से कनेक्ट होते हैं, सर्वर आपके प्रमाणीकरण टोकन को वैलिडेट करता है और एक कनेक्शन स्वीकृति भेजता है।
{
"type": "connection_ack",
"connection_id": "conn_1a2b3c4d5e6f7g8h",
"server_version": "1.2.4",
"timestamp": "2026-03-21T14:35:22Z",
"api_tier": "pro",
"max_subscriptions": 50,
"max_symbols_per_sub": 100
}
हार्टबीट (पिंग/पोंग)
सर्वर हर 30 सेकंड में आवधिक हार्टबीट पिंग भेजता है। आपके क्लाइंट को कनेक्शन को जीवित रखने के लिए पोंग संदेश के साथ प्रतिक्रिया देनी चाहिए। यदि सर्वर को 10 सेकंड के भीतर पोंग प्रतिक्रिया प्राप्त नहीं होती है, तो कनेक्शन बंद कर दिया जाएगा।
const ws = new WebSocket("wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789");
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "ping") {
// पिंग का जवाब पोंग से दें
ws.send(JSON.stringify({
type: "pong",
id: msg.id
}));
}
};
ws.onopen = () => {
console.log("WebSocket से कनेक्ट किया गया");
};
सदस्यता
कनेक्ट होने के बाद, सदस्यता संदेशों का उपयोग करके डेटा स्ट्रीम्स की सदस्यता लें। प्रत्येक सदस्यता मार्केट डेटा के बदलने पर अपडेट उत्पन्न करती है।
सदस्यता संदेश प्रारूप
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"],
"params": {
"min_position_size": 10,
"exchanges": ["bybit", "binance"]
}
}
अनसब्सक्राइब संदेश प्रारूप
{
"type": "unsubscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT"]
}
व्हेल पोजीशन्स स्ट्रीम
सभी ट्रैक किए गए सिंबल्स और एक्सचेंजेस पर बड़ी व्हेल पोजीशन्स के लिए रियल-टाइम अपडेट्स। व्हेल द्वारा पोजीशन्स खोलने, बंद करने या संशोधित करने पर अपडेट भेजे जाते हैं। एंट्री प्राइस, करंट प्राइस, P&L, लेवरेज और लिक्विडेशन रिस्क शामिल हैं।
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
अपडेट संदेश
{
"type": "data",
"channel": "whale_positions",
"symbol": "BTCUSDT",
"data": {
"wallet_address": "0x1234...",
"exchange": "bybit",
"direction": "long",
"position_size": 25.3,
"entry_price": 41200.0,
"current_price": 43200.5,
"pnl": 50701.50,
"pnl_percent": 4.86,
"leverage": 8,
"liquidation_price": 33760.0,
"timestamp": "2026-03-21T14:35:45Z"
}
}
फंडिंग रेट्स स्ट्रीम
Bybit, Binance और Hyperliquid पर रियल-टाइम फंडिंग रेट अपडेट्स। हर 1 मिनट में या जब भी रेट्स में महत्वपूर्ण बदलाव होता है तो अपडेट भेजे जाते हैं। व्यक्तिगत एक्सचेंज रेट्स और एग्रीगेटेड मेट्रिक्स शामिल हैं।
{
"type": "subscribe",
"channel": "funding_rates",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
अपडेट संदेश
{
"type": "data",
"channel": "funding_rates",
"symbol": "BTCUSDT",
"data": {
"timestamp": "2026-03-21T14:00:00Z",
"bybit": {
"rate": 0.000120,
"next_rate": 0.000145
},
"binance": {
"rate": 0.000098,
"next_rate": 0.000115
},
"hyperliquid": {
"rate": 0.000140,
"next_rate": 0.000160
},
"aggregated": {
"mean": 0.000119,
"median": 0.000120,
"spread": 0.000062
}
}
}
लिक्विडेशन्स स्ट्रीम
लिवरेज्ड पोजीशन्स के फोर्स्ड क्लोजर दिखाने वाली रियल-टाइम लिक्विडेशन फीड। पोजीशन साइज, लिक्विडेशन प्राइस, दिशा (लॉन्ग/शॉर्ट) और एक्सचेंज शामिल हैं। लिक्विडेशन कैस्केड्स और हाई-इम्पैक्ट मार्केट मूव्स की पहचान करने के लिए उपयोगी।
{
"type": "subscribe",
"channel": "liquidations",
"params": {
"min_size_usd": 50000
}
}
अपडेट संदेश
{
"type": "data",
"channel": "liquidations",
"data": {
"exchange": "binance",
"symbol": "BTCUSDT",
"direction": "long",
"position_size": 12.5,
"liquidation_price": 41000.0,
"size_usd": 512500.0,
"timestamp": "2026-03-21T14:35:12Z"
}
}
ओपन इंटरेस्ट स्ट्रीम
प्रत्येक सिंबल पर सभी लिवरेज ट्रेडर्स के लिए एग्रीगेट ओपन इंटरेस्ट। OI बढ़ने (लिवरेज में अधिक पैसा आना) और घटने (पोजीशन्स बंद होना) को ट्रैक करें। प्राइस मूवमेंट से OI डाइवर्जेंस हिडन बुलिश/बेयरिश एक्जॉशन की पहचान करता है।
{
"type": "subscribe",
"channel": "open_interest",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
कन्फर्मेशन स्कोर्स स्ट्रीम
व्हेल पोजीशन्स, ऑन-चेन सिग्नल्स, फंडिंग रेट्स और सेंटीमेंट डेटा को मिलाकर रियल-टाइम AI कन्फर्मेशन स्कोर्स। अंडरलाइंग सिग्नल्स के बदलने पर स्कोर्स अपडेट होते हैं, जो ट्रेडिंग एल्गोरिदम के लिए लाइव एंट्री/एग्जिट सिग्नल प्रदान करते हैं।
{
"type": "subscribe",
"channel": "confirmation_scores",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
स्वचालित रीकनेक्शन लॉजिक
नेटवर्क समस्याएं या सर्वर रखरखाव डिस्कनेक्शन का कारण बन सकते हैं। एक्सपोनेंशियल बैकऑफ रीकनेक्शन लॉजिक को लागू करें ताकि सर्वर लोड का सम्मान करते हुए विफलताओं से स्वचालित रूप से उबरा जा सके।
अनुशंसित रीकनेक्शन रणनीति
class SmartMoneyWebSocket {
constructor(token, options = {}) {
this.token = token;
this.maxReconnectDelay = options.maxReconnectDelay || 30000;
this.reconnectDelay = 1000;
this.subscriptions = new Map();
this.connect();
}
connect() {
this.ws = new WebSocket(
`wss://ws.smartmoneyapi.com/stream?token=${this.token}`
);
this.ws.onopen = () => {
console.log("कनेक्ट किया गया");
this.reconnectDelay = 1000; // बैकऑफ रीसेट करें
this.resubscribe(); // पुन: कनेक्ट होने के बाद फिर से सब्सक्राइब करें
};
this.ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "ping") {
this.ws.send(JSON.stringify({ type: "pong", id: msg.id }));
}
this.onMessage(msg);
};
this.ws.onclose = () => this.reconnect();
this.ws.onerror = (err) => console.error("WebSocket त्रुटि:", err);
}
reconnect() {
console.log(`${this.reconnectDelay}ms में पुन: कनेक्ट हो रहा है`);
setTimeout(() => {
this.connect();
this.reconnectDelay = Math.min(
this.reconnectDelay * 1.5,
this.maxReconnectDelay
);
}, this.reconnectDelay);
}
subscribe(channel, symbols, params) {
const key = `${channel}:${symbols.join(",")}`;
this.subscriptions.set(key, { channel, symbols, params });
this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params }));
}
resubscribe() {
for (const { channel, symbols, params } of this.subscriptions.values()) {
this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params }));
}
}
onMessage(msg) {
if (msg.type === "data") {
console.log(`अपडेट: ${msg.channel}/${msg.symbol}`, msg.data);
}
}
}
const client = new SmartMoneyWebSocket("sk_live_abc123xyz789");
client.subscribe("whale_positions", ["BTCUSDT", "ETHUSDT"]);
client.subscribe("funding_rates", ["BTCUSDT"]);
client.subscribe("liquidations", [], { min_size_usd: 100000 });
कोड उदाहरण
Python WebSocket क्लाइंट
import asyncio
import json
import websockets
async def stream_whale_positions():
uri = "wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789"
async with websockets.connect(uri) as websocket:
# कनेक्शन स्वीकृति की प्रतीक्षा करें
ack = await websocket.recv()
print(f"कनेक्ट किया गया: {ack}")
# व्हेल पोजीशन्स की सदस्यता लें
await websocket.send(json.dumps({
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"]
}))
# अपडेट्स के लिए सुनें
while True:
try:
msg = await websocket.recv()
data = json.loads(msg)
if data["type"] == "ping":
# पिंग का जवाब दें
await websocket.send(json.dumps({
"type": "pong",
"id": data["id"]
}))
elif data["type"] == "data":
print(f"नई पोजीशन: {data['data']}")
except websockets.exceptions.ConnectionClosed:
print("कनेक्शन बंद, पुन: कनेक्ट हो रहा है...")
await asyncio.sleep(1)
asyncio.run(stream_whale_positions())
सब्सक्राइब पर फिल्टर करें: अपने एप्लिकेशन में फिल्टर करने के बजाय सर्वर-साइड डेटा फिल्टर करने के लिए params ऑब्जेक्ट का उपयोग करें (min_position_size, min_size_usd)।
बैच सदस्यताएँ: प्रति सिंबल एक सदस्यता के बजाय एक ही संदेश में कई सिंबल्स की सदस्यता लें।
अनसब्सक्राइब अनुपयोगी: जब आपको किसी स्ट्रीम की आवश्यकता न हो, तो बैंडविड्थ और संदेश वॉल्यूम बचाने के लिए अनसब्सक्राइब करें।
gzip कम्प्रेशन का उपयोग करें: बैंडविड्थ बचत के लिए अपने WebSocket क्लाइंट में मैसेज कम्प्रेशन सक्षम करें (20-40% कमी)।
कनेक्शन स्वास्थ्य की निगरानी करें: नेटवर्क समस्याओं का निदान करने के लिए पिंग/पोंग लेटेंसी और स्वचालित रीकनेक्शन्स को ट्रैक करें।
डिस्कनेक्शन के दौरान संदेश बफर करें: जब कनेक्शन ड्रॉप होता है, तो स्ट्रैटेजी सिग्नल्स को कतारबद्ध करें और पुन: कनेक्ट होने पर उन्हें निष्पादित करें।
अभी स्ट्रीमिंग शुरू करें
अपनी API कुंजी प्राप्त करें और रियल-टाइम ट्रेडिंग सिस्टम बनाना शुरू करें। WebSocket स्ट्रीमिंग सभी टियर पर उपलब्ध है।
API कुंजी प्राप्त करें
रियल-टाइम ट्रेडिंग सिस्टम बनाएं
व्हेल पोजीशन, फंडिंग रेट्स और AI कन्फर्मेशन स्कोर को सब-सेकंड लेटेंसी के साथ स्ट्रीम करें।
प्लान देखें