WebSocket API রেফারেন্স
হোয়েল পজিশনস, ফান্ডিং রেটস, লিকুইডেশনস এবং AI কনফার্মেশন স্কোরের জন্য রিয়েল-টাইম ডেটা স্ট্রিমিং। সাব-সেকেন্ড লেটেন্সি সহ অটোমেটিক রিকানেকশন, এফিসিয়েন্ট ডেটা কম্প্রেশন এবং মাল্টি-স্ট্রিম সাবস্ক্রিপশন।
ওভারভিউ
WebSocket API রিয়েল-টাইম ক্রিপ্টোকারেন্সি ডেরিভেটিভস ডেটার জন্য লো-লেটেন্সি, বাইডাইরেকশনাল কমিউনিকেশন প্রদান করে। প্রতি ৫-৩০ সেকেন্ডে 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
}
হার্টবিট (পিং/পং)
সার্ভার প্রতি ৩০ সেকেন্ডে পিরিয়ডিক হার্টবিট পিং পাঠায়। আপনার ক্লায়েন্টকে কানেকশন জীবিত রাখার জন্য পং মেসেজ দিয়ে রেস্পন্ড করতে হবে। সার্ভার যদি ১০ সেকেন্ডের মধ্যে পং রেস্পন্স না পায়, কানেকশন ক্লোজ করে দেয়া হবে।
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 জুড়ে রিয়েল-টাইম ফান্ডিং রেট আপডেট। প্রতি ১ মিনিটে বা রেট উল্লেখযোগ্যভাবে পরিবর্তন হলে আপডেট হয়। পৃথক এক্সচেঞ্জ রেট এবং অ্যাগ্রিগেটেড মেট্রিক্স অন্তর্ভুক্ত।
{
"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; // ব্যাকঅফ রিসেট
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 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:
# কানেকশন অ্যাকের জন্য অপেক্ষা করুন
ack = await websocket.recv()
print(f"Connected: {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 ক্লায়েন্টে মেসেজ কম্প্রেশন সক্ষম করুন (২০-৪০% রিডাকশন)।
কানেকশন হেলথ মনিটর করুন: নেটওয়ার্ক ইস্যু ডায়াগনোস করার জন্য পিং/পং লেটেন্সি এবং অটোমেটিক রিকানেকশন ট্র্যাক করুন।
ডিসকানেকশনের সময় মেসেজ বাফার করুন: কানেকশন ড্রপ হলে, স্ট্র্যাটেজি সিগন্যাল কিউ আপ করুন এবং রিকানেক্ট হলে সেগুলো এক্সিকিউট করুন।
এখনই স্ট্রিমিং শুরু করুন
আপনার API কী পান এবং রিয়েল-টাইম ট্রেডিং সিস্টেম তৈরি শুরু করুন। WebSocket স্ট্রিমিং সব স্তরে উপলব্ধ।
API কী পান
রিয়েল-টাইম ট্রেডিং সিস্টেম তৈরি করুন
হোয়েল পজিশন, ফান্ডিং রেট এবং AI কনফার্মেশন স্কোর সাব-সেকেন্ড লেটেন্সি সহ স্ট্রিম করুন।
প্ল্যান দেখুন