Real-time streaming
alpaca.trading.stream — TradingStream
Open the trading-updates WebSocket (order/trade events, JSON).
const updates = alpaca.trading.stream();
updates.onTradeUpdate((u) => console.log(u.event, u.order.symbol));
updates.subscribeTradeUpdates();
updates.connect();
alpaca.marketData.stockStream — StockDataStream
Open the US-equity market-data WebSocket (msgpack). Order imbalances are also available via subscribeForImbalances([...]) / onImbalance(...) — an equities-only, sparse channel that Alpaca emits mainly during limit-up/limit-down halts, so long quiet periods are expected even while subscribed.
const stocks = alpaca.marketData.stockStream({ feed: "iex" });
stocks.onBar((bar) => console.log(bar.symbol, bar.close));
stocks.onConnect(() => stocks.subscribeForBars(["AAPL", "MSFT"]));
stocks.connect();
alpaca.marketData.cryptoStream — CryptoDataStream
Open the crypto market-data WebSocket (msgpack).
const crypto = alpaca.marketData.cryptoStream();
crypto.onTrade((t) => console.log(t.symbol, t.price));
crypto.onConnect(() => crypto.subscribeForTrades(["BTC/USD"]));
crypto.connect();
alpaca.marketData.optionStream — OptionDataStream
Open the options market-data WebSocket (msgpack).
const opts = alpaca.marketData.optionStream();
opts.onTrade((t) => console.log(t.symbol, t.price));
opts.onConnect(() => opts.subscribeForTrades(["AAPL250117C00150000"]));
opts.connect();
alpaca.marketData.newsStream — NewsStream
Open the real-time news-headline WebSocket.
const news = alpaca.marketData.newsStream();
news.onNews((n) => console.log(n.headline));
news.onConnect(() => news.subscribeForNews(["AAPL", "TSLA"]));
news.connect();