Powered by 15+ Financial News Sources

Financial News Intelligence
at the Speed of Markets

Real-time aggregation, AI sentiment analysis, and tradeable signal detection — all in one terminal. Stop missing market-moving headlines.

15 Live Sources
-- Articles Indexed
SIGNAL Terminal — instnews.net/terminal

Built for Serious Market Watchers

Every feature designed to give you an edge in fast-moving markets

AI Sentiment Analysis

Every headline scored from -1.0 (bearish) to +1.0 (bullish) in real time. Filter your feed by market sentiment to focus on what matters.

Tradeable Signal

Tradeable Signal Detection

Headlines marked with indicate actionable trading opportunities — earnings surprises, M&A, FDA decisions, policy shifts, and more.

+0.87 NVDA beats Q4 estimates by 22%
-0.65 FDA rejects Pfizer's new drug application
+0.72 Microsoft announces $30B acquisition of...

Smart Deduplication

ML-powered sentence embeddings detect when multiple sources report the same story. Cut through the noise — see each story once.

Real-Time Feed

Auto-refreshing from 15+ premium sources including CNBC, Reuters, Bloomberg, Yahoo Finance, and more.

REST API

Full programmatic access for trading bots, research pipelines, and custom dashboards. Python, JavaScript, Go, R, and Rust examples included.

Deep History

Up to 1 year of indexed financial headlines with Pro. Backtest your sentiment strategies against historical data.

See It Live

Real headlines from real sources, scored and analyzed in real time

Time Signal Sentiment Source Headline
Connecting to live feed...

Developer-First API

Integrate financial news intelligence into your stack in minutes

RESTful JSON API
Authenticated API access (Pro)
Sentiment scoring on every item (Pro)
Filter by source, sentiment, keyword, date
High-throughput API access (Pro & Max)
Read Full Documentation
# Get latest bullish headlines
curl -s "https://www.instnews.net/api/news?sentiment=bullish&limit=10" | jq .

# Search for a keyword
curl -s "https://www.instnews.net/api/news?q=nvidia&limit=5" | jq .

# Get market statistics
curl -s "https://www.instnews.net/api/stats" | jq .
import requests

BASE_URL = "https://www.instnews.net"

# Get latest bullish news
response = requests.get(f"{BASE_URL}/api/news", params={
    "sentiment": "bullish",
    "limit": 10,
})

for item in response.json()["items"]:
    score = item.get("sentiment_score", "N/A")
    print(f"[{score:+.2f}] {item['title']}")
const BASE_URL = "https://www.instnews.net";

async function getNews(params = {}) {
  const query = new URLSearchParams(params);
  const res = await fetch(
    `${BASE_URL}/api/news?${query}`
  );
  return res.json();
}

const data = await getNews({
  sentiment: "bullish",
  limit: 10,
});
data.items.forEach(item =>
  console.log(`[${item.source}] ${item.title}`)
);
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type NewsResponse struct {
    Count int        `json:"count"`
    Items []NewsItem `json:"items"`
}
type NewsItem struct {
    Title  string  `json:"title"`
    Source string  `json:"source"`
    Score  float64 `json:"sentiment_score"`
}

func main() {
    resp, _ := http.Get(
      "https://www.instnews.net/api/news?limit=5")
    defer resp.Body.Close()
    var result NewsResponse
    json.NewDecoder(resp.Body).Decode(&result)
    for _, item := range result.Items {
        fmt.Printf("[%s] %s\n", item.Source, item.Title)
    }
}
library(httr)
library(jsonlite)

base_url <- "https://www.instnews.net"

# Get bullish news
response <- GET(
  paste0(base_url, "/api/news"),
  query = list(sentiment = "bullish", limit = 20)
)

data <- fromJSON(content(response, "text"))
df <- data$items
print(df[, c("source", "title", "sentiment_score")])
use reqwest;
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct NewsResponse {
    count: u32,
    items: Vec<NewsItem>,
}
#[derive(Debug, Deserialize)]
struct NewsItem {
    title: String,
    source: String,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let url = "https://www.instnews.net/api/news?limit=5";
    let resp: NewsResponse =
        reqwest::get(url).await?.json().await?;
    for item in &resp.items {
        println!("[{}] {}", item.source, item.title);
    }
    Ok(())
}

Simple, Transparent Pricing

Start free. Upgrade when you need more power. Cancel any time.

Loading plans...

Trusted Sources, One Feed

Aggregating the world's top financial news providers

CNBC
Reuters
Bloomberg
Yahoo Finance
MarketWatch
Nasdaq
SeekingAlpha
Investing.com
AP News
BBC Business
Benzinga
Google News

Ready to trade on better intelligence?

Join traders who never miss a market-moving headline.

Read the Docs