News Sentiment API

News sentiment as a normalized time series. Track whether media coverage of any topic, brand, or company is shifting positive or negative over time - weekly data, period growth, via a single POST endpoint.

Volume and tone are different questions. A brand might be generating more news coverage than ever, but if the tone is deteriorating, that volume is working against it. Tracking sentiment separately from volume is what lets you catch that divergence early.

Trends MCP returns news sentiment as a normalized 0-100 time series. The same endpoint, same JSON structure as news volume and every other source.

Endpoint

POST https://api.trendsmcp.ai/api
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Get a time series

Weekly news sentiment for any keyword, normalized 0-100. Higher values mean more positive coverage.

{
  "source": "news sentiment",
  "keyword": "tesla"
}

Response:

[
  {
    "date": "2026-03-21",
    "value": 42,
    "volume": null,
    "keyword": "tesla",
    "source": "news sentiment"
  }
]

Daily mode for the last 30 days:

{
  "source": "news sentiment",
  "keyword": "tesla",
  "data_mode": "daily"
}

Measure growth

A negative growth figure here means sentiment has declined - coverage has become more negative relative to the baseline period.

{
  "source": "news sentiment",
  "keyword": "boeing",
  "percent_growth": ["3M", "6M", "1Y"]
}

Custom date comparison - useful for before/after a specific event:

{
  "source": "news sentiment",
  "keyword": "boeing",
  "percent_growth": [
    { "name": "post-incident", "recent": "2026-01-01", "baseline": "2024-01-01" }
  ]
}

Preset periods: 7D 14D 30D 1M 2M 3M 6M 9M 12M 1Y 18M 24M 2Y 36M 3Y 48M 60M 5Y MTD QTD YTD

Pair with news volume

The most useful pattern is querying both sources for the same keyword and comparing them. A divergence - volume rising while sentiment falls - is often the early signal of a developing story or brand crisis.

import requests

headers = {"Authorization": "Bearer YOUR_API_KEY"}
base = "https://api.trendsmcp.ai/api"

volume = requests.post(base, headers=headers,
    json={"source": "news volume", "keyword": "boeing", "percent_growth": ["3M"]}).json()

sentiment = requests.post(base, headers=headers,
    json={"source": "news sentiment", "keyword": "boeing", "percent_growth": ["3M"]}).json()

Code examples

JavaScript

const res = await fetch("https://api.trendsmcp.ai/api", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ source: "news sentiment", keyword: "tesla", percent_growth: ["3M", "1Y"] })
});
const data = await res.json();

Common questions

Values are normalized 0-100. Higher values indicate more positive sentiment in news coverage. A declining score over time means coverage is becoming more negative relative to the historical baseline.
News volume tells you how much coverage exists. Sentiment tells you the tone. Both matter. A brand seeing high volume and falling sentiment is facing a PR problem. High volume with rising sentiment usually reflects positive momentum.
Brand names, company names, topics, or product categories. 'Tesla', 'bitcoin', 'generative AI', 'fast fashion' all produce meaningful sentiment signals.
Get News Sentiment API in 30 seconds
Free tier includes 100 requests per month. No credit card required. Works with Claude, Cursor, ChatGPT, Raycast, and every MCP client.
Get your free API key