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

ParameterWhat it doesTier
tickersComma-separated tickers matched against each item's target_assetAll
qKeyword search in title and summaryAll
source / sourcesOne source name, or a comma-separated listAll
source_typesocial or rssAll
sentimentbullish, bearish or neutralAll
limitItems per request (50 / 200 / 500 by tier)All
before / afterItem-id cursors for older pages and new arrivalsAll
from / toDate range (ISO 8601)Pro, Max
hide_dupDrop items flagged as duplicatesPro, Max
tradableOnly items the AI marked tradeableMax

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_Business and more.
  • Earnings: EDGAR_8K (SEC 8-K earnings releases), Earnings_Wires and Nasdaq_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/stream pushes each item as its analysis lands, with a resumable since_seq cursor, so you do not have to poll.
  • MCP server: https://mcp.instnews.net exposes 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

FreeProMax
Price$0$29.99/mo$89.99/mo
Items per request50200500
Requests per minute303001,000
History7 days1 year5 years
API keyNot requiredIncludedIncluded
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).