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") {
// Respond to ping with pong
ws.send(JSON.stringify({
type: "pong",
id: msg.id
}));
}
};
ws.onopen = () => {
console.log("Connected to 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("Connected");
this.reconnectDelay = 1000; // Reset backoff
this.resubscribe(); // Re-subscribe after reconnect
};
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 error:", err);
}
reconnect() {
console.log(`Reconnecting in ${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(`Update: ${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:
# Wait for connection ack
ack = await websocket.recv()
print(f"Connected: {ack}")
# Subscribe to whale positions
await websocket.send(json.dumps({
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"]
}))
# Listen for updates
while True:
try:
msg = await websocket.recv()
data = json.loads(msg)
if data["type"] == "ping":
# Respond to ping
await websocket.send(json.dumps({
"type": "pong",
"id": data["id"]
}))
elif data["type"] == "data":
print(f"New position: {data['data']}")
except websockets.exceptions.ConnectionClosed:
print("Connection closed, reconnecting...")
await asyncio.sleep(1)
asyncio.run(stream_whale_positions())
سبسکرائب پر فلٹر کریں: اپلیکیشن میں فلٹر کرنے کے بجائے سرور سائیڈ ڈیٹا کو فلٹر کرنے کے لیے پیرامز آبجیکٹ کا استعمال کریں (min_position_size, min_size_usd)۔
بیچ سبسکرپشنز: ایک علامت فی سبسکرپشن کے بجائے ایک ہی میسج میں متعدد علامات کو سبسکرائب کریں۔
غیر استعمال شدہ کو ان سبسکرائب کریں: جب آپ کو کسی سٹریم کی ضرورت نہ ہو، تو بینڈوتھ بچانے اور میسج والیوم کو کم کرنے کے لیے ان سبسکرائب کریں۔
gzip کمپریشن استعمال کریں: بینڈوتھ کی بچت کے لیے اپنے WebSocket کلائنٹ میں میسج کمپریشن کو فعال کریں (20-40% کمی)۔
کنکشن کی صحت کی نگرانی کریں: نیٹ ورک کے مسائل کی تشخیص کے لیے پنگ/پونگ لیٹنسی اور خودکار ری کنکشنز کو ٹریک کریں۔
ڈسکنکشن کے دوران میسجز کو بفر کریں: جب کنکشن ڈراپ ہوتا ہے، تو اسٹریٹیجی سگنلز کو قطار میں لگائیں اور انہیں دوبارہ کنکٹ ہونے پر عمل میں لائیں۔
ابھی سٹریمنگ شروع کریں
اپنا API کلید حاصل کریں اور ریئل ٹائم ٹریڈنگ سسٹمز بنانا شروع کریں۔ WebSocket سٹریمنگ تمام ٹیئرز پر دستیاب ہے۔
API کلید حاصل کریں
ریئل ٹائم ٹریڈنگ سسٹمز بنائیں
وہیل پوزیشنز، فنڈنگ ریٹس، اور AI تصدیقی اسکورز کو سیکنڈ سے کم تاخیر کے ساتھ سٹریم کریں۔
پلانز دیکھیں