Referință API WebSocket

Streaming de date în timp real pentru poziții whale, rate de finanțare, lichidări și scoruri de confirmare AI. Latență sub secundă cu reconectare automată, compresie eficientă a datelor și abonamente multi-flux.

Prezentare generală

API-ul WebSocket oferă comunicare bidirecțională cu latență redusă pentru datele în timp real ale derivatelor cripto. În loc să interoghezi endpoint-urile REST la fiecare 5-30 de secunde, conexiunile WebSocket livrează actualizări instantaneu când condițiile pieței se schimbă. Perfect pentru roboții de tranzacționare, sisteme de alertă și panouri în timp real.

Avantaje cheie ale WebSocket față de REST:

Latență sub secundă pentru evenimente care mișcă piața (lichidări, mișcări whale)
Utilizare eficientă a benzii de frecvență cu actualizări codificate delta
Abonamente multiple simultane pe o singură conexiune
Filtrare și agregare pe partea serverului
Gestionare automată a bătăilor inimii și reconectării
Număr mai mic de cereri API în cadrul cotei tale
Conexiunile WebSocket sunt disponibile pentru toate nivelurile API. Utilizatorii de nivel gratuit se pot abona la fluxurile de rate de finanțare și lichidări. Nivelurile Trader și Pro deblochează poziții whale, interes deschis și scoruri de confirmare.

Autentificare

Conexiunile WebSocket folosesc aceeași autentificare ca și endpoint-urile REST. Trimite cheia ta API ca parametru de interogare sau trimite-o în primul mesaj după conectare.

URL de Conexiune

URL WebSocket de bază: wss://ws.smartmoneyapi.com/stream

Include cheia ta API în URL-ul de conexiune:

URL
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789

Ciclul de Viață al Conexiunii

Conexiunea Inițială

Când te conectezi la endpoint-ul WebSocket, serverul validează token-ul de autentificare și trimite o confirmare de conexiune.

Răspunsul Serverului (JSON)
{ "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 }

Bătăi de Inimă (Ping/Pong)

Serverul trimite ping-uri periodice la fiecare 30 de secunde. Clientul tău trebuie să răspundă cu un mesaj pong pentru a menține conexiunea activă. Dacă serverul nu primește un răspuns pong în 10 secunde, conexiunea va fi închisă.

JavaScript
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") { // Răspunde la ping cu pong ws.send(JSON.stringify({ type: "pong", id: msg.id })); } }; ws.onopen = () => { console.log("Conectat la WebSocket"); };

Abonamente

După conectare, abonează-te la fluxuri de date folosind mesaje de abonare. Fiecare abonament generează actualizări ori de câte ori datele pieței se schimbă.

Formatul Mesajului de Abonare

JSON
{ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT"], "params": { "min_position_size": 10, "exchanges": ["bybit", "binance"] } }

Formatul Mesajului de Dezabonare

JSON
{ "type": "unsubscribe", "channel": "whale_positions", "symbols": ["BTCUSDT"] }

Fluxul Pozițiilor Whale

Actualizări în timp real pentru poziții mari whale pe toate simbolurile și schimburile urmărite. Actualizările sunt trimise când whale-uri deschid, închid sau modifică poziții. Include prețul de intrare, prețul curent, P&L, levier și riscul de lichidare.

JSON — Abonare
{ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"] }

Mesaj de Actualizare

JSON — Actualizare
{ "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" } }

Fluxul Rate de Finanțare

Actualizări în timp real ale ratelor de finanțare pe Bybit, Binance și Hyperliquid. Actualizări la fiecare 1 minut sau când ratele se schimbă semnificativ. Include rate individuale pe schimb și metrici agregate.

JSON — Abonare
{ "type": "subscribe", "channel": "funding_rates", "symbols": ["BTCUSDT", "ETHUSDT"] }

Mesaj de Actualizare

JSON — Actualizare
{ "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 } } }

Fluxul Lichidărilor

Flux în timp real de lichidări care arată închideri forțate ale pozițiilor cu levier. Include dimensiunea poziției, prețul de lichidare, direcția (long/short) și schimbul. Util pentru identificarea cascadei de lichidări și mișcărilor de mare impact ale pieței.

JSON — Abonare
{ "type": "subscribe", "channel": "liquidations", "params": { "min_size_usd": 50000 } }

Mesaj de Actualizare

JSON — Actualizare
{ "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" } }

Fluxul Interesului Deschis

Interes deschis agregat pentru toți traderii cu levier pe fiecare simbol. Urmărește creșterile OI (mai mulți bani intrând în levier) și scăderile (închideri de poziții). Divergența OI față de mișcarea prețului identifică epuizarea ascunsă bullish/bearish.

JSON — Abonare
{ "type": "subscribe", "channel": "open_interest", "symbols": ["BTCUSDT", "ETHUSDT"] }

Fluxul Scorurilor de Confirmare

Scoruri de confirmare AI în timp real care combină poziții whale, semnale on-chain, rate de finanțare și date de sentiment. Scorurile se actualizează ori de câte ori semnalele de bază se schimbă, oferind semnale live de intrare/ieșire pentru algoritmii de tranzacționare.

JSON — Abonare
{ "type": "subscribe", "channel": "confirmation_scores", "symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"] }

Logică de Reconectare Automată

Problemele de rețea sau întreținerea serverului pot cauza deconectări. Implementează o logică de reconectare cu backoff exponențial pentru a recupera automat din eșecuri, respectând încărcarea serverului.

Strategie Recomandată de Reconectare

JavaScript
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("Conectat"); this.reconnectDelay = 1000; // Reset backoff this.resubscribe(); // Re-abonare după reconectare }; 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("Eroare WebSocket:", err); } reconnect() { console.log(`Reconectare în ${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(`Actualizare: ${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 });

Exemple de Cod

Client WebSocket Python

Python
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: # Așteaptă confirmarea conexiunii ack = await websocket.recv() print(f"Conectat: {ack}") # Abonare la poziții whale await websocket.send(json.dumps({ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT"] })) # Ascultă actualizări while True: try: msg = await websocket.recv() data = json.loads(msg) if data["type"] == "ping": # Răspunde la ping await websocket.send(json.dumps({ "type": "pong", "id": data["id"] })) elif data["type"] == "data": print(f"Poziție nouă: {data['data']}") except websockets.exceptions.ConnectionClosed: print("Conexiune închisă, reconectare...") await asyncio.sleep(1) asyncio.run(stream_whale_positions())

Sfaturi de Performanță

Filtrează la abonare: Folosește obiectul params pentru a filtra datele pe partea serverului (min_position_size, min_size_usd) în loc să filtrezi în aplicația ta.
Abonamente în lot: Abonează-te la mai multe simboluri într-un singur mesaj în loc de un abonament per simbol.
Dezabonează-neutilizate: Când nu mai ai nevoie de un flux, dezabonează-te pentru a economisi lățime de bandă și a reduce volumul de mesaje.
Folosește compresia gzip: Activează compresia mesajelor în clientul tău WebSocket pentru economii de lățime de bandă (reducere de 20-40%).
Monitorizează sănătatea conexiunii: Urmărește latența ping/pong și reconectările automate pentru a diagnostica problemele de rețea.
Bufferizează mesajele în timpul deconectării: Când conexiunea cade, pune în coadă semnalele strategiei și execută-le când te reconectezi.

Începe Streaming-ul Acum

Obține cheia ta API și începe să construiești sisteme de tranzacționare în timp real. Streamingul WebSocket este disponibil la toate nivelurile.

Obține cheia API

Construiește Sisteme de Tranzacționare în Timp Real

Transmite poziții de balenă, rate de finanțare și scoruri de confirmare AI cu latență sub-secundară.

Vezi Planurile
Începe gratuit — 50 de apeluri/zi, fără card

Obține fluxul live al balenelor, finanțarea, interesul deschis și datele on-chain de pe 3 exchange-uri dintr-un singur API. Nivel gratuit, fără card de credit, actualizează oricând.

Începe gratuit →
Încearcă consola live API → (nu este necesar un cont)
Obține cheia ta API în 30 de secunde

Ești gata să construiești? Ia o cheie API gratuită (50 de apeluri/zi, fără card) și începe să extragi date live despre balene, finanțare și on-chain.

Obține cheia ta API →