Skip to content
Live news Screener Coverage Pricing Docs REST API WebSocket API MCP server Company Use cases Blog Changelog Status Compare Contact
BRX$28.13-0.13(-0.46%)Slate Grocery REIT Announces Receipt of Interim Order, and Provides Meeting and Circular Details[10:08:00 PM ET]SMMT$15.51-0.04(-0.25%)Lunit and Summit Therapeutics Announce Agreement to Apply AI-powered SCOPE IO Platform for Tumor Microenvironment Analysis in Immuno-Oncology Development Lunit Inc. (KRX: 328130) and Summit Therapeutics Inc. (NASDAQ: SMMT) today announced a research agreement to evaluate the use of Lunit SCOPE IO,...[9:26:00 PM ET]TBRIF$0.030.00(0.00%)Therma Bright Announces up to $420,000 Non-Brokered Private Placement[8:37:00 PM ET]GENNQ$0.000.00(0.00%)Genesis Healthcare Announces Effective Date of Chapter 11 Plan Following Consummation of Sale to West State Street[8:37:00 PM ET]DNRSF$0.36+0.01(+1.42%)DENARIUS METALS FILES TORAL PROJECT TECHNICAL REPORT ON SEDAR+ Denarius Metals Corp. (Cboe CA: DMET) (OTCQX: DNRSF) ("Denarius Metals" or "the Company") announced today the filing of a National Instrument 43-101...[8:36:00 PM ET]RXST$5.02-0.06(-1.18%)RxSight Reports Inducement Grants as Permitted by the Nasdaq Listing Rules[8:00:00 PM ET]TBBK$50.86-0.28(-0.55%)US Metro Bancorp Announces Third Quarter 2026 Results[7:59:00 PM ET]TZOO$5.07-0.02(-0.39%)Club Offers for Travel Enthusiasts in Canada Travelzoo® (NASDAQ: TZOO), the club for travel enthusiasts, announces three of many new Club Offers for Club Members in Canada. Rigorously vetted and ...[7:08:00 PM ET]MRZLF$0.23+0.02(+10.48%)Mirasol Resources Announces Option Grants[6:49:09 PM ET]PGZ$8.71-0.03(-0.34%)Principal Real Estate Income Fund Announces Changes in Portfolio Management[6:45:00 PM ET]
Tutorial 3 min read

WebSocket channels for a stock news stream

Subscribe to ticker, type, keyword, and source channels. They match with OR, up to 200 per connection.

A MarketNewsAPI WebSocket connection receives only the articles that match a channel you subscribed to. Channels are OR. There is no AND between channels, so a narrow bot subscribes to the smaller set and filters the rest in code. Pro includes the socket. Free does not.

The channels

ChannelExampleMatches
allallEvery article
ticker:{SYMBOL}ticker:AAPLArticles tagged with that stock or ETF
category:{id}category:stocksThe live category, which is stocks
type:{id}type:press_releasenews, press_release, or legal
keyword:{text}keyword:guidanceCase-insensitive phrase on the title and summary, 2 to 60 characters
source:{domain}source:businesswire.comOne publisher domain

You can subscribe to 200 channels on one connection. Pro allows 3 connections. A fourth connection is closed with code 4008. Messages on the stream are not billed. Control messages (subscribe, ping, and the rest) are capped at 20 per second.

Open and subscribe

const url = "wss://ws.marketnewsapi.com/v1/stream?api_key=" + process.env.MARKETNEWSAPI_KEY;
const ws = new WebSocket(url);
ws.addEventListener("open", () => {
  ws.send(JSON.stringify({
    action: "subscribe",
    channels: ["ticker:NVDA", "type:press_release"]
  }));
});

That connection delivers NVIDIA articles and every press release, because the two channels are OR. If the bot should post only NVIDIA press releases, keep type:press_release and check tickers in the client, or subscribe to ticker:NVDA and check type. Do both checks if you subscribed to both channels.

Reconnects

Store the newest published_at you handled. After a disconnect, call GET /v1/news with the same tickers and from set to that timestamp, then drop ids you already stored. The socket does not replay the gap. Sources are polled about every second, and an article is pushed after it is ingested.

Try it for 7 days. Signup starts Pro. A card is required. Real-time REST, WebSocket, and MCP, with no request cap. After that it's $15/month, or Free if you stop.

Start 7-day free trial

Three subscriptions that stay understandable

A single-name bot subscribes to ticker:NVDA and nothing else. Every message is in scope. A wire bot subscribes to type:press_release and checks the ticker set in process. A desk that wants several names subscribes to one ticker: channel per name, up to the 200 cap, and does not also subscribe to all. Adding all makes the other channels pointless, because OR already includes everything.

Keyword channels are phrases, 2 to 60 characters, matched on the title and the summary, not on a private full-text index of publisher stories. keyword:price target will miss a release whose headline says "outlook" and whose summary never uses your phrase. Use it as a narrowing hint, then still look at the title yourself. It is not a search engine.

Authenticate with the api_key query parameter, or connect and send an auth message first, within 10 seconds. Prefer the message if your proxy logs query strings. REST should keep using the Bearer header. After welcome, send subscribe. Store nothing until you see an article message, and ignore error messages only after you have logged the code.

Limits that surprise people in week one

  • 3 connections, not one per ticker. Multiplex tickers as channels.
  • A dropped connection does not rewind. REST fills the hole.
  • Free, and a key whose trial has ended without a subscription, cannot open the socket.
  • Control messages at more than 20 per second are your own loop, usually a resubscribe on every article. Subscribe once.

Put the key in an environment variable. Pro is $15 a month, or $162 a year. The 7-day trial includes the live feed and the full archive, and a card is required. Free stays at 100 requests a day, delayed 15 minutes, with the last year of history. The channel page is WebSocket channels, and a full bot is in the Python tutorial.

Frequently asked questions

How do WebSocket channel filters combine?
They combine with OR. An article is delivered if it matches any subscribed channel, and it is delivered once. AND filters belong in your client: subscribe to the narrower channel, then drop what you do not want.
How many stock news channels can I subscribe to?
Up to 200 channels on one connection, and 3 connections on Pro. A fourth connection closes with code 4008. Free cannot open the WebSocket.
Which plan includes the stock news WebSocket?
Pro, at $15 a month or $162 a year. The 7-day trial includes it, and a card is required. Stream messages are unlimited. The burst cap of 20 requests per second applies to REST.

Real-time stock news for $15 a month.

Start a 7-day Pro trial. A card is required. REST, WebSocket, and MCP are included. If you don't subscribe, the account stays on Free.