Use cases / Google News API
Media monitoring
Last updated September 28, 2026. Response excerpts are recorded from the live API.
Who
Who runs this, and what for
| Team | What they decide with it |
|---|---|
| PR and communications teams | Which stories need a response today, and how coverage compares with last month. |
| Brand and marketing teams | Where a launch or campaign was picked up, for reports and follow-up. |
| Risk and compliance teams | Whether a supplier, client, or counterparty appeared in negative news. |
Pipeline
The calls, step by step
01Write the search terms
Google News search accepts quoted phrases, so "Acme Corp" does not match every story with acme in it. Add the CEO's name with a qualifier, and your domain for stories that link to you. when=1h limits results to the last hour.
GET /v1/search?engine=google_news&topic=WORLD&country=nz · query
{ "q": null, "when": null, "topic": "WORLD", "language": "en", "country": "nz", "page": 1 }Recorded response. Live values differ. 02Keep the publisher URL
Each result has the publisher's own url next to google_url, with the outlet's name and domain and the publish time. Deduplicate on url: the same story shows up for several terms and markets.
GET /v1/search?engine=google_news&topic=WORLD&country=nz · results.0
{ "position": 1, "title": "North Korean operative posing as IT contractor hired by NZ business", "url": "https://www.1news.co.nz/2026/09/24/north-korean-operative-posing-as-it-contractor-hired-by-nz-business/", "google_url": "https://news.google.com/read/CBMiEXAMPLE", "source": { "name": "1News", "domain": "1news.co.nz" }, "published_at": "2026-09-24T17:03:04.000Z", "authors": [ "Ed O'driscoll" ] }Recorded response. Live values differ. 03Cover each market
country and language pick the Google News edition. A story in a British outlet may appear only in the gb edition, so search every market you care about.
GET /v1/search?engine=google_news&topic=WORLD&country=nz · query.country
"nz"Recorded response. Live values differ.
Code
A script to start from
media_monitor.py
# Hourly media monitoring: new Google News headlines for brand terms,
# deduplicated by publisher URL. Keeps seen URLs in seen.json.
import json, os, pathlib, requests
API = "https://api.clair.im"
HEADERS = {"Authorization": f"Bearer {os.environ['CLAIR_API_KEY']}"}
TERMS = ['"Acme Corp"', '"Jane Doe" CEO', "acme.com"]
MARKETS = [("en", "us"), ("en", "gb")]
STATE = pathlib.Path("seen.json")
seen = set(json.loads(STATE.read_text())) if STATE.exists() else set()
def headlines(q, language, country):
r = requests.get(f"{API}/v1/search", headers=HEADERS, timeout=60, params={
"engine": "google_news", "q": q, "when": "1h",
"language": language, "country": country})
r.raise_for_status()
return r.json()["results"]
for term in TERMS:
for language, country in MARKETS:
for item in headlines(term, language, country):
if item["url"] in seen:
continue
seen.add(item["url"])
print(f"[{item['source']['name']}] {item['title']}\n {item['url']}")
STATE.write_text(json.dumps(sorted(seen)))
Set CLAIR_API_KEY to a key subscribed to the Google News API. Each call is one request against that API's monthly quota.
Cost
What it costs per month
| Schedule | Requests | Plan | Per month | Per 1,000 |
|---|---|---|---|---|
| 3 terms × 1 market, hourly3 searches × 24 hours × 30 days = 2,160 requests. | 2,160 | Pay as you go | $43.42 | $20.10 |
| 3 terms × 2 markets, every 3 hours6 searches × 8 runs × 30 days = 1,440 requests, with when=1d. | 1,440 | Pay as you go | $28.94 | $20.10 |
| 10 terms × 1 market, daily10 searches × 30 days = 300 requests, with when=1d. | 300 | Pay as you go | $6.03 | $20.10 |
| 20 terms × 3 markets, hourly60 searches × 720 hours = 43,200 requests. | 43,200 | Mega | $399 | $9.24 |
Limits
What to plan for
- Headlines only. Google News links to the publisher; for article text, read Reuters, AP, or Bloomberg stories with their APIs, or fetch the publisher page yourself.
- One listing page per search, which Google caps. A very common term returns the most relevant stories, not all of them; make terms specific.
- When Google blocks the HTML search page, search falls back to RSS: the response says format=rss, and results then carry only the Google link.
- Google News covers outlets it indexes. Trade blogs, newsletters, and social posts are mostly not there.
FAQ
Common questions
How quickly do new stories appear?
As fast as Google News indexes them, often within minutes for major outlets. An hourly check catches most stories within the hour.
Can I get sentiment?
Not from the API. Pass the title, or the article text where you have it, to your own classifier or a language model.
Does it cover non-English news?
Yes. Set language and country to the edition, such as de and de for German news in Germany.
Run it on your own products
200 requests a month free on each API, no card. Enough to run the pipeline on a short list before choosing a plan.
Bloomberg News API
Associated Press API
Glassdoor API
Greenhouse Jobs API

Crunchbase API
Website Contacts API