How to Automate Supply Chain Risk Reports: A Guide for Developers
Do you use Python? If so, this guide will help you automate supply chain risk reports using AI Chat GPT and our News API.
If you want to access Google News from Python, the simplest free option is Google News RSS. If you are building a production application or AI agent that needs structured news search, filters, JSON responses, relevant article passages, or MCP access, a dedicated News Search API is usually a better fit.
There is no official public Google News API today. Google deprecated the Google News Search API in 2011 and shut it down on February 15, 2016.
If you are deciding between RSS, Google News SERP APIs, and dedicated news APIs, read the broader guide: Google News API in 2026: Free RSS, Python & Alternatives.
If you just want to start coding, here are the three shortest paths.
Install feedparser:
pip install feedparser
Then:
import feedparser
from urllib.parse import urlencode
query = "artificial intelligence"
params = urlencode({
"q": query,
"hl": "en-US",
"gl": "US",
"ceid": "US:en"
})
url = f"https://news.google.com/rss/search?{params}"
feed = feedparser.parse(url)
for entry in feed.entries[:10]:
print(entry.title)
print(entry.link)
print(entry.get("published"))
print()
No Google News API key is required.
One detail matters: the RSS link is generally a Google News URL, not the publisher’s canonical article URL. If you need normalized publisher URLs and structured article data, RSS may not be enough.
If you need to search news itself rather than reproduce Google’s results, you can send a natural-language query to the Webz.io News Search API:
curl -s -X POST "https://api.webz.io/api/news/context" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"query": "semiconductor companies moving manufacturing out of China",
"k": 10
}'
Webz.io News Search searches by meaning rather than requiring every matching article to contain the exact words in the query. Results include structured article information, a relevance score, metadata, and the passage from the article most relevant to the query.
Webz.io also exposes News Search through a hosted MCP server.
For Claude Code:
claude mcp add --transport http webz-news-search \
https://news-search-mcp.webz.io/mcp \
--header "Authorization: Bearer YOUR_WEBZ_TOKEN"
Then ask the agent something like:
Search Webz news for companies cutting AI infrastructure spending
during the past 30 days and summarize the main reasons with sources.
The MCP server gives the AI client a news_search_by_webz tool and supports natural-language search plus filters for date, country, language, sentiment, category, domains, entities, source characteristics, and relevance.
These three examples solve different problems:
Google News RSS retrieves a Google News feed.
A News Search API searches a dedicated news corpus.
MCP lets an AI agent decide when to perform that news search as part of a larger task.
Google News RSS is a useful choice when your requirement is simple:
Give me recent Google News results about NVIDIA.
A reusable Python function can look like this:
import feedparser
from urllib.parse import urlencode
def google_news(
query,
limit=10,
hl="en-US",
gl="US",
ceid="US:en"
):
params = urlencode({
"q": query,
"hl": hl,
"gl": gl,
"ceid": ceid
})
url = f"https://news.google.com/rss/search?{params}"
feed = feedparser.parse(url)
return [
{
"title": item.title,
"google_news_url": item.link,
"published": item.get("published")
}
for item in feed.entries[:limit]
]
articles = google_news("NVIDIA")
for article in articles:
print(article["title"])
print(article["google_news_url"])
print(article["published"])
The hl, gl, and ceid values are kept explicit because they work together to select the Google News language and edition. For example, en-US, US, and US:en describe the US English edition.
For a small script, personal alert, prototype, or simple headline feed, this may be all you need.
There is no API account to create and no Google News API token to manage.
RSS is useful, but it should not be confused with the retired Google News Search API.
Google does not currently document the Google News RSS search interface as a formal developer API with an API contract, versioning policy, or service-level commitment.
That distinction matters more as an application becomes dependent on the feed.
RSS gives you feed items. A production news API is designed to give software structured news data.
There is another practical difference: a Google News RSS item’s link usually takes you through Google News rather than giving you the publisher’s canonical article URL directly.
That may be fine for a headline reader. It is less convenient if your application needs clean article identifiers, publisher URLs, metadata, enrichment, or downstream processing.
Imagine you are building a risk-monitoring application and want to find:
US companies facing regulatory investigations over data privacy during the past week.
A Google News RSS search can look for those words.
But the application may also need to:
At that point, the requirement has changed from “get Google News headlines” to “search news programmatically.”
That is where a dedicated News Search API becomes a different architecture rather than another way of consuming the same feed.
| Capability | Google News RSS | Production News Search API |
|---|---|---|
| Google News results | Yes | No |
| Google News API key required | No | — |
| Structured JSON | No | Yes |
| Publisher article URL | Not directly in the RSS link | Yes |
| Natural-language retrieval | Limited to search query | Yes, if supported |
| Structured filters | Limited | Yes |
| Sentiment filtering | No | Provider dependent |
| Entity filtering | No | Provider dependent |
| Relevant article passage | No | Provider dependent |
| Relevance score | No | Provider dependent |
| MCP integration | No | Provider dependent |
| Formal API interface | No official Google News API | Yes |
The first row is the most important one.
A dedicated news API does not reproduce Google’s News ranking.
If Google’s ranking is what you need to measure, use Google News RSS or a service specifically designed to retrieve Google News results.
If the goal is to find and process relevant news, Google’s ranking may not matter.
You can call Webz.io News Search directly from Python using requests.
Install it:
pip install requests
Store the token in an environment variable instead of putting it directly in your source code:
export WEBZ_API_TOKEN="YOUR_API_TOKEN"
Then:
import os
import requests
API_TOKEN = os.environ["WEBZ_API_TOKEN"]
response = requests.post(
"https://api.webz.io/api/news/context",
headers={
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
},
json={
"query": "European manufacturers reducing production because of weak demand",
"k": 10
},
timeout=30
)
response.raise_for_status()
data = response.json()
for result in data["results"]:
print(f'Score: {result["score"]}')
print(result["article"]["title"])
print(result["article"]["url"])
print(result["chunk"]["text"])
print()
The REST News Search API currently accepts a query of up to 750 characters or 100 words. It returns 10 articles by default and supports a REST k value of up to 100.
A query can describe the information you want instead of being written as a set of exact keywords:
Companies abandoning acquisitions because regulators are likely
to block the deal
The API searches for articles relevant to that meaning.
A production search often needs both semantic relevance and hard constraints.
For example:
response = requests.post(
"https://api.webz.io/api/news/context",
headers={
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
},
json={
"query": "companies facing regulatory investigations over data privacy",
"k": 20,
"filters": {
"country": ["US"],
"language": ["english"],
"sentiment": ["negative"],
"published_from": "2026-08-01"
}
},
timeout=30
)
Webz.io currently supports filters including:
language
country
category
sentiment
published_from
published_to
domain
exclude_domain
topic
person
organization
location
ticker
political_bias
trust_category
domain_rank_gte
domain_rank_lte
source_type
The current filter definitions are documented by Webz.io.
The distinction between query and filter is useful.
The query describes what you mean:
Companies facing regulatory investigations over data privacy
The filters define which results are acceptable:
Country: US
Language: English
Sentiment: Negative
Published after: August 1, 2026
That is easier to maintain than encoding every requirement inside one increasingly complex Boolean expression.
A Webz.io News Search result includes four useful parts:
{
"score": 7.1,
"article": {
"article_id": "ARTICLE_ID",
"url": "https://publisher.example/article",
"title": "Article Title",
"published_at": "2026-08-27T07:07:00.000+03:00",
"summary": "Article summary"
},
"chunk": {
"text": "The passage most relevant to the query."
},
"metadata": {
"language": "english",
"country": "US",
"category": [
"Economy, Business and Finance"
],
"sentiment": "negative",
"domain": "publisher.example"
}
}
The API’s current response format includes a 0–10 match score, article information, the relevant text chunk, and metadata. Metadata can also contain topics, people, organizations, locations, tickers, political bias, trust category, source type, and domain rank.
The relevant passage is particularly useful for AI and RAG applications.
Instead of retrieving a URL and then sending an entire article to an LLM, the application can start with the passage that caused the article to match the query.
If the full article is required, the returned article_id can be used to retrieve the original document through the Webz.io News API.
A REST API and an MCP server can access the same underlying news search, but they are used differently.
With a REST API, your software decides when to search:
Application
↓
News Search API
↓
Results
With MCP, the news search becomes a tool available to an AI agent:
User
↓
AI agent
↓
news_search_by_webz
↓
News Search
↓
Current news
That means you do not need to hard-code every news query in advance.
You can give the agent access to the search tool and let it construct a query when current news is needed.
For example:
Find recent reports about automotive manufacturers delaying
electric-vehicle investments because demand is weaker than expected.
Focus on the past 30 days and summarize the main reasons with sources.
The agent can decide to call News Search, inspect the returned articles, and use them as evidence for its answer.
Add this entry to Cursor’s MCP configuration:
{
"mcpServers": {
"webz-news-search": {
"url": "https://news-search-mcp.webz.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_WEBZ_TOKEN"
}
}
}
}
Then restart Cursor.
The AI client receives the news_search_by_webz tool.
You can then ask:
Use Webz news to find recent security incidents involving OAuth
tokens and summarize the five most relevant cases with sources.
The current MCP tool supports:
query
k
days
allow_all_dates
score_gte
score_lte
domain
exclude_domain
language
country
sentiment
category
topic
person
organization
location
ticker
political_bias
domain_rank_gte
domain_rank_lte
allow_multiple_chunks_per_article
The MCP interface accepts up to 50 articles per request, compared with the REST API’s documented maximum of 100.
It also lets an agent combine semantic search with structured constraints.
For example:
Find negative US news from the past seven days about cybersecurity
incidents involving Microsoft. Exclude microsoft.com.
Or:
Find recent news mentioning Nvidia from highly ranked sources and
return only results with a strong semantic match.
The model does not need to turn either request into a giant Boolean string. It can map the research question and constraints onto the available MCP parameters.
Webz.io currently documents connections for Cursor, Claude Desktop, Claude Code, ChatGPT web, and n8n.
The hosted MCP endpoint is:
https://news-search-mcp.webz.io/mcp
For clients that support a remote MCP connection directly, the same News Search capability can therefore become part of a larger agent workflow.
For example, an agent researching a company could:
1. Receive a company name.
2. Search recent news.
3. Restrict results to negative coverage.
4. Find regulatory or cybersecurity events.
5. Extract the relevant passages.
6. Summarize the evidence with source URLs.
The agent decides when to call the tool. The news service handles retrieval.
That separation is one of the main reasons MCP is useful for news: the developer does not have to predict every search the agent will need.
Use Google News RSS when the requirement is:
Give me Google News results for this query.
It is simple, requires no Google News API key, and is easy to consume from Python.
Use a News Search API when the requirement is:
Give my application structured news about this subject.
That gives you an API designed for software, with JSON responses, article metadata, filters, and other retrieval controls.
Use MCP when the requirement is:
Let my AI agent search current news when it needs evidence.
MCP does not replace the news data or search engine. It changes how the AI application discovers and calls that capability.
There are Python libraries and GitHub projects that describe themselves as Google News APIs or Google News clients.
They can be useful, but they are not clients for an official Google News API, because that API no longer exists.
They generally rely on some combination of Google News pages, RSS, scraping, URL decoding, or third-party search services.
For a local project or prototype, that can be perfectly reasonable.
For a production application, the more useful questions are:
Calling a project a “Google News API” does not answer those questions.
The architecture becomes much clearer if you separate Google News results from news search.
If your Python application needs to know:
What is Google News showing for this search?
use Google News RSS or a Google News-specific search service.
If it needs to know:
What is being reported about this subject?
use a dedicated News API or News Search API.
And if an AI agent needs to answer:
What has happened recently, and which current sources support the answer?
give the agent a news-retrieval tool through MCP.
Developers often discover all three approaches by searching for “Google News API,” but they solve different problems.
For the full comparison—including Google News RSS, SERP APIs, dedicated news APIs, free options, and the distinction between Google-ranked results and searchable news data—read Google News API in 2026: Free RSS, Python & Alternatives.
There is no official public Google News API today. The old Google News Search API was retired in 2016. Python applications can consume Google News RSS, use third-party Google News services, or query a dedicated news API.
Yes. Google News RSS can currently be read without a Google News API key. Python libraries such as feedparser can parse the RSS response.
You cannot obtain an official Google News API key because Google does not currently offer a public Google News API. API keys advertised for “Google News APIs” are issued by third-party services.
No. Google News RSS is XML. Your Python application can parse it and convert the fields it needs into Python dictionaries or JSON.
The RSS item’s link generally points to a Google News URL rather than directly exposing the publisher’s canonical article URL.
Google News RSS gives you Google’s news feed for a query. A dedicated News Search API searches its own news corpus and can provide structured metadata, filters, relevance scoring, and other application-oriented features.
MCP lets an AI client access news search as a tool. Instead of your application manually constructing every API call, an AI agent can decide when it needs current news and call the search tool with the relevant query and filters.
Yes, when the provider exposes a compatible MCP server or other supported integration. Webz.io currently documents its News Search MCP server for ChatGPT, Claude, Cursor, and n8n.
The simplest rule is still the most useful:
If you need Google News results, use a Google News-specific solution. If you need searchable news data for an application or AI agent, use a news API.
Do you use Python? If so, this guide will help you automate supply chain risk reports using AI Chat GPT and our News API.
Use this guide to learn how to easily automate supply chain risk reports with Chat GPT and news data.
A quick guide for developers to automate mergers and acquisitions reports with Python and AI. Learn to fetch data, analyze content, and generate reports automatically.