Using a stock news API with AI summaries
The summary field is one to three neutral sentences, added after ingest, and it is not the article body.

A stock news API with AI summaries gives a program a short lede it can show, index, or hand to another model, without scraping the publisher. On MarketNewsAPI that lede is the summary field. It is one to three neutral sentences. It is written after the article is ingested. It is not the article, it is not a rating, and it does not tell you to buy or sell.
The field can be null. On the immediate feed that null usually lasts a few seconds, until enrichment finishes. Some very old archive rows are still empty. Code that displays a card should render the title and the source first, and fill the summary when it arrives. Do not drop the article because the summary is missing.
What the summary is allowed to say
The summary uses facts from the title and the text the pipeline had at enrichment time. If that text is only a headline or a snippet, the summary stays inside those words. It does not invent the rest of the story, and it does not invent a number. Claims, estimates, and plans stay attributed to whoever said them. The voice is neutral. You will not get a price target or a sentence that starts with advice.
Next to the summary, entities names people, companies, products, and institutions that the text actually mentions. Each entity has a type and a name, and a symbol only when that symbol is supported by the article or by the tickers already on the row. A passing mention is not supposed to become an entity. Tickers on the article are the symbols the story is materially about. An entity can name a company that has no ticker in the story. Neither list is a recommendation.
Language on the article is en. Coverage is equities and ETFs listed worldwide, plus crypto, forex, and macro headlines. Omitting category returns stocks. category=crypto, category=forex, and category=macro select the other three. Stock rows use three types: news for publisher stories, press_release for the wire, and legal for shareholder class-action and investor-alert notices. The summary can appear on all of them. The body cannot.
A summary is not the body
body is the full wire text of a press release, including a short release. On publisher news and on legal notices, body is null. The reader follows url. snippet is a publisher excerpt, not the full article. If your interface has one slot labeled "text", branch on type before you fill it. A press release can show body. A publisher story should show summary, the headline, and the link. Do not present any of those as MarketNewsAPI's own reporting. Keep the source name and a working link when you show the item to a person.
The shape of the object, including which fields are null, is on the article object page. How the summary and the entities are produced is on the enrichment page.
Waiting until the summary exists
Two WebSockets carry the same articles. wss://ws.marketnewsapi.com/v1/stream sends the row at ingest. summary may still be null on that message. wss://ws.marketnewsapi.com/v1/stream/summaries waits until the summary exists, so it is a few seconds later. Use the second socket when the screen should not flash an empty lede. Use the first when you want the headline the moment it is stored and you can patch the summary in place.
Channels are the same on both sockets. A channel list is combined with OR: all, ticker:AAPL, category:stocks, type:press_release, keyword:rate cut, or source:businesswire.com. You can subscribe to 200 channels on one connection. Pro includes 3 concurrent connections. A fourth connection closes with code 4008. Free cannot open the WebSocket. Stream messages are not counted as REST calls. The channel list and the two URLs are in the WebSocket docs.
REST callers who are not in a hurry can read GET /v1/news or GET /v1/news/{id} and use the summary that is already on the row. A poll every few seconds, looking for a summary that was null, spends the burst limit of 20 requests per second and, on Free or on the trial, the daily cap. Prefer the summaries socket if you need the lede as soon as it exists. The burst is shared by every key on the account and by MCP tool calls.
Try it for 7 days. Signup starts Pro. A card is required. Real-time REST, WebSocket, and MCP, with 1,000 REST requests a day. Paid Pro removes the cap. After that it's $15/month, or Free if you stop.
Which plan sees the summary
Free includes summaries and entities, with headlines delayed 15 minutes, 100 REST requests a day, the last year of history, and no WebSocket. Pro is real time, with the full archive, REST, WebSocket, and MCP. Paid Pro has no daily REST cap. The 7-day trial is the same live feed with 1,000 REST requests a day. A card is required. Nothing is charged during the trial. Unless you cancel, the card is billed $15 a month, or $162 a year, when the trial ends. Canceling returns the account to Free and pays nothing.
The $15 plan cannot be used commercially. If the summary is shown inside a product you sell, or you redistribute the feed, you need a separate license. Email [email protected]. There is no self-serve price for that license. When you do show a third-party article under a commercial license, the attribution is the publisher name, a link to the original, and the words News data from MarketNewsAPI linking to https://marketnewsapi.com.
There is no service level on how fast a summary appears, beyond the practical note that the summaries socket is a few seconds behind ingest. Do not build a trading rule that assumes the lede is a signal. The summary is a reading aid. Prices, bars, and fundamentals are not part of this API. A number in the lede is a number the article stated, copied into a shorter sentence. Start at signup if you want a key, and read pricing before you pick Free or the trial.