Stock Market News API — Real-Time Financial News Feed with Sentiment (JSON)
InstNews aggregates financial RSS newswires, SEC EDGAR 8-K filings, the Benzinga newswire and social sources into one JSON feed served from a single endpoint, GET /api/news. Every item can carry an AI sentiment score from −1.0 to 1.0 with a bullish, bearish or neutral label, a duplicate flag, and its ticker. The free tier needs no API key; Pro costs $29.99/month and starts with a 30-day free trial.
Quick start
No signup, no key — this works right now:
curl "https://www.instnews.net/api/news?tickers=NVDA&limit=5"
The same call in Python:
import requests
resp = requests.get("https://www.instnews.net/api/news",
params={"tickers": "NVDA", "limit": 5})
for item in resp.json()["items"]:
print(item["published"], item["source"], item["title"])
One item from the response, as the Free tier receives it (Pro and Max add sentiment_score, sentiment_label and duplicate):
{
"id": 390399438,
"title": "Nvidia Enters Correction After Rising Wedge Breakdown as AI Stock Bubble Index Jumps",
"link": "https://www.benzinga.com/markets/equities/26/10/62429648/nvidia-enters-correction-after-rising-wedge-breakdown-as-ai-stock-bubble-index-jumps",
"source": "Benzinga_Wire",
"published": "2026-10-18T18:20:15+00:00",
"fetched_at": "2026-10-18T18:20:15+00:00",
"summary": "Nvidia stock has dropped and moved into a technical correction after moving below the lower side of the rising wedge as the ai stock bubble jumps.",
"target_asset": "NVDA",
"asset_type": "STOCK",
"ai_analyzed": true,
"analyzed_at": "2026-10-18T18:20:17.924050+00:00",
"event_key": "ek:NVDA:390399438",
"tags": ""
}
Query parameters
| Parameter | What it does | Tier |
|---|---|---|
tickers | Comma-separated tickers matched against each item's target_asset | All |
q | Keyword search in title and summary | All |
source / sources | One source name, or a comma-separated list | All |
source_type | social or rss | All |
sentiment | bullish, bearish or neutral | All |
limit | Items per request (50 / 200 / 500 by tier) | All |
before / after | Item-id cursors for older pages and new arrivals | All |
from / to | Date range (ISO 8601) | Pro, Max |
hide_dup | Drop items flagged as duplicates | Pro, Max |
tradable | Only items the AI marked tradeable | Max |
Coverage
- 44 sources in production, listed live at
/api/sources. - Financial newswires and publishers:
CNBC,Reuters_Business,Bloomberg_Markets,Yahoo_Finance,MarketWatch,Nasdaq,SeekingAlpha,Investing_com,AP_News,BBC_Businessand more. - Earnings:
EDGAR_8K(SEC 8-K earnings releases),Earnings_WiresandNasdaq_Earnings. - Newswire:
Benzinga_Wire. - Social: 25 official accounts, such as foreign ministries on X/Twitter and
TruthSocial/@realDonaldTrump. - History: 7 days on Free, 1 year on Pro, 5 years on Max.
What sets it apart
- SSE streaming:
GET /api/news/streampushes each item as its analysis lands, with a resumablesince_seqcursor, so you do not have to poll. - MCP server:
https://mcp.instnews.netexposes market-data tools to Claude, Cursor and other MCP clients. - EDGAR 8-K firehose and Benzinga newswire: earnings 8-Ks are picked up from SEC EDGAR's current-filings feed every second, alongside the Benzinga newswire.
- Knowledge graph: the InstNews platform links companies, people and events across stories into a knowledge graph you can question in plain English with Ask the Graph in the terminal.
Sentiment scoring
Each headline is scored by an AI model on a scale from −1.0 (most bearish) to 1.0 (most bullish), with a matching bullish, bearish or neutral label in sentiment_label. Scores are returned on Pro and Max; every tier can filter with sentiment=.
Duplicate detection
The same story often arrives from several outlets. InstNews flags repeats with duplicate: 1 (originals are 0) on Pro and Max, and hide_dup=1 removes them server-side.
RSS feeds vs. a news API
You could poll a dozen RSS feeds yourself, but each has its own format, update rhythm and duplicates. A stock news API returns one normalized JSON schema across every source, maps items to tickers, scores sentiment, removes duplicates and lets you page by cursor or stream new items, which saves the parsing and deduplication work.
Pricing
| Free | Pro | Max | |
|---|---|---|---|
| Price | $0 | $29.99/mo | $89.99/mo |
| Items per request | 50 | 200 | 500 |
| Requests per minute | 30 | 300 | 1,000 |
| History | 7 days | 1 year | 5 years |
| API key | Not required | Included | Included |
| Sentiment + duplicates | — | ✓ | ✓ |
| AI ticker recommendations + priced-in analysis | — | — | ✓ |
Pro includes a 30-day free trial. Full comparison on the pricing page.
FAQ
Is there a free stock news API tier?
Yes. The Free tier returns up to 50 items per request at 30 requests per minute with 7 days of history, and includes ticker filtering and SSE streaming. Sentiment scores and duplicate flags start on Pro.
Do I need an API key?
Not for the Free tier: call https://www.instnews.net/api/news directly. Pro and Max subscribers create API keys in the account dashboard and send them in the X-API-Key header to unlock their tier.
How often is the news feed updated?
Continuously. Items are available as soon as they are ingested; the Benzinga newswire is polled every 5 seconds and the SEC EDGAR current-filings feed every second. Poll /api/news?after=<id> for new items or subscribe to /api/news/stream.
Which tickers and markets are covered?
The feed focuses on US-listed stocks and the macro news that moves them. Each item carries at most one ticker in target_asset, and the tickers parameter filters on it, for example tickers=NVDA,AMD.
How much historical news can I query?
7 days on Free, 1 year on Pro and 5 years on Max. Pro and Max can also query a date range with the from and to parameters.
Is there an MCP server for AI agents?
Yes. The InstNews Markets MCP server at https://mcp.instnews.net gives Claude, Cursor and other MCP clients market-data tools such as prices, aggregates and option chains. It uses the same API key as the REST API (Pro and Max).