WebSocket API Referentie

Real-time datastreaming voor walvisposities, funding rates, liquidaties en AI-bevestigingsscores. Subseconde latentie met automatische herverbinding, efficiënte datacompressie en multi-stream abonnementen.

Overzicht

De WebSocket API biedt bidirectionele communicatie met lage latentie voor real-time cryptocurrency derivatendata. In plaats van elke 5-30 seconden REST endpoints te pollen, leveren WebSocket-verbindingen updates direct wanneer marktomstandigheden veranderen. Ideaal voor trading bots, alertsystemen en real-time dashboards.

Belangrijke voordelen van WebSocket ten opzichte van REST:

Subseconde latentie voor marktbewegende gebeurtenissen (liquidaties, walvisbewegingen)
Efficiënt bandbreedtegebruik met delta-gecodeerde updates
Meerdere gelijktijdige abonnementen op één verbinding
Server-side filtering en aggregatie
Automatische heartbeat en herverbindingsafhandeling
Minder API-aanvragen tegen je quota
WebSocket-verbindingen zijn beschikbaar voor alle API-lagen. Gebruikers van de gratis laag kunnen zich abonneren op funding-rates en liquidaties streams. Trader- en Pro-lagen ontgrendelen walvisposities, open interest en bevestigingsscores.

Authenticatie

WebSocket-verbindingen gebruiken dezelfde authenticatie als REST endpoints. Geef je API-sleutel door als een queryparameter of stuur deze in het eerste bericht na het verbinden.

Verbindings-URL

Basis WebSocket URL: wss://ws.smartmoneyapi.com/stream

Voeg je API-sleutel toe aan de verbindings-URL:

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

Verbindingslevenscyclus

Initiele Verbinding

Wanneer je verbinding maakt met het WebSocket endpoint, valideert de server je authenticatietoken en stuurt een verbindingsbevestiging.

Serverreactie (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 }

Heartbeat (Ping/Pong)

De server stuurt periodieke heartbeat pings elke 30 seconden. Je client moet reageren met een pong-bericht om de verbinding in stand te houden. Als de server binnen 10 seconden geen pong-reactie ontvangt, wordt de verbinding verbroken.

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") { // Reageer op ping met pong ws.send(JSON.stringify({ type: "pong", id: msg.id })); } }; ws.onopen = () => { console.log("Verbonden met WebSocket"); };

Abonnementen

Na het verbinden kun je je abonneren op datastreams met abonnementsberichten. Elk abonnement genereert updates wanneer marktdata verandert.

Abonnementsberichtformaat

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

Uitschrijvingsberichtformaat

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

Walvisposities Stream

Real-time updates voor grote walvisposities op alle gevolgde symbolen en exchanges. Updates worden verzonden wanneer walvissen posities openen, sluiten of aanpassen. Inclusief instapprijs, huidige prijs, P&L, leverage en liquidatierisico.

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

Updatebericht

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

Funding Rates Stream

Real-time funding rate updates voor Bybit, Binance en Hyperliquid. Updates elke minuut of wanneer tarieven significant veranderen. Inclusief individuele exchange rates en geaggregeerde metrics.

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

Updatebericht

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

Liquidaties Stream

Real-time liquidatiefeed met geforceerde sluitingen van leveraged posities. Inclusief positiegrootte, liquidatieprijs, richting (long/short) en exchange. Handig voor het identificeren van liquidatiecascades en high-impact marktbewegingen.

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

Updatebericht

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

Open Interest Stream

Geaggregeerde open interest voor alle leveraged traders per symbool. Volg OI-stijgingen (meer geld in leverage) en dalingen (posities die sluiten). OI-divergentie van prijsbeweging identificeert verborgen bullish/bearish uitputting.

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

Bevestigingsscores Stream

Real-time AI-bevestigingsscores die walvisposities, on-chain signalen, funding rates en sentimentdata combineren. Scores updaten wanneer onderliggende signalen veranderen, wat live entry/exit-signalen biedt voor trading algoritmes.

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

Automatische Herverbindingslogica

Netwerkproblemen of serveronderhoud kunnen verbroken verbindingen veroorzaken. Implementeer exponentiële backoff-herverbindingslogica om automatisch te herstellen van storingen met respect voor serverbelasting.

Aanbevolen Herverbindingsstrategie

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("Verbonden"); this.reconnectDelay = 1000; // Reset backoff this.resubscribe(); // Opnieuw abonneren na herverbinding }; 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(`Opnieuw verbinden 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 });

Codevoorbeelden

Python WebSocket Client

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: # Wacht op verbindingsbevestiging ack = await websocket.recv() print(f"Verbonden: {ack}") # Abonneer op walvisposities await websocket.send(json.dumps({ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT"] })) # Luister naar updates while True: try: msg = await websocket.recv() data = json.loads(msg) if data["type"] == "ping": # Reageer op ping await websocket.send(json.dumps({ "type": "pong", "id": data["id"] })) elif data["type"] == "data": print(f"Nieuwe positie: {data['data']}") except websockets.exceptions.ConnectionClosed: print("Verbinding verbroken, opnieuw verbinden...") await asyncio.sleep(1) asyncio.run(stream_whale_positions())

Prestatietips

Filter bij abonneren: Gebruik het params-object om data server-side te filteren (min_position_size, min_size_usd) in plaats van in je applicatie.
Batch abonnementen: Abonneer op meerdere symbolen in één bericht in plaats van één abonnement per symbool.
Schrijf ongebruikte uit: Wanneer je een stream niet meer nodig hebt, schrijf je uit om bandbreedte te besparen en berichtvolume te verminderen.
Gebruik gzip-compressie: Schakel berichtcompressie in je WebSocket-client in voor bandbreedtebesparing (20-40% reductie).
Monitor verbindingsgezondheid: Houd ping/pong-latentie en automatische herverbindingen bij om netwerkproblemen te diagnosticeren.
Buffer berichten tijdens verbroken verbinding: Wanneer de verbinding verbroken is, buffert je strategie-signalen en voer ze uit wanneer opnieuw verbonden.

Start Nu Met Streamen

Krijg je API-sleutel en begin met het bouwen van real-time handelssystemen. WebSocket-streaming is beschikbaar voor alle abonnementsniveaus.

API-sleutel aanvragen

Bouw Real-Time Handelsystemen

Stream walvisposities, funding rates en AI-bevestigingsscores met subseconden latentie.

Bekijk Abonnementen
Start gratis — 200 calls/dag, geen kaart nodig

Krijg live walvisstroom, funding, open interest en on-chain data van 3 exchanges via één API. Gratis abonnement, geen creditcard nodig, upgrade wanneer je wilt.

Start gratis →
Probeer de live API-console → (geen account nodig)
Krijg je API-sleutel in 30 seconden

Klaar om te bouwen? Vraag een gratis API-sleutel aan (200 calls/dag, geen kaart nodig) en begin met het ophalen van live walvis-, funding- en on-chain data.

Vraag je API-sleutel aan →