# Google News headlines, topics, and language editions

2026-08-29

> Headlines, topics, and language editions as JSON. Not Google Search. Not Apple News.

- Index: https://fetcher.sh/blog.md
- This page (HTML): https://fetcher.sh/blog/google-news-headlines-topics-language-editions

![A television news studio camera pointed at a desk](https://images.unsplash.com/photo-1585829365295-ab7cd400c167?auto=format&fit=crop&w=1600&q=80)

Photo by C-D-X on [Unsplash](https://unsplash.com/?utm_source=fetcher_sh&utm_medium=referral).

Google News is headlines, not blue links. [google-news.fetcher.sh](https://google-news.fetcher.sh) returns sections (world, business, technology, science, health, sport, entertainment), keyword search, topic ids, article URL decoding, and `languageCode` such as en-US and en-GB. That is Google News the product, not Google Search, not Apple News, not a newspaper CMS.

The featured search examples are already a vertical: `stablecoin regulation` in en-US, `ai policy` in en-GB. Editions matter. US and UK newsrooms do not publish the same homepage.

[News monitoring](/blog/news-monitoring-brands-technology-policy) is the newsroom job on top of these objects. [Brand mentions](/blog/brand-mention-monitoring-x-reddit-google-news) add X and Reddit. SERP is [google.fetcher.sh](https://google.fetcher.sh). This note is the host: headline, topic, edition.

## Headline, topic, edition

Latest and section feeds. Search with a language edition. Topic by id. Decode an article URL. Language-region list when you need to know which `languageCode` values exist.

`curl -H 'Authorization: Bearer bby_live_…' 'https://google-news.fetcher.sh/api/search?keyword=artificial+intelligence&languageCode=en-US'`

Pick en-GB when you want the UK edition. Section paths are literal: `/api/technology`, `/api/business`, `/api/world`, and the rest. Keyword search is not a section. A topic id is not a keyword. Decode when you have a Google News redirect instead of the publisher link.

Apple News is a different product. We do not return it. RSS from a single publisher is a different product. We do not return that either, unless Google News happened to list the story.

## How an edition changes the story

The same keyword in en-US and en-GB will not return the same cluster. Policy stories especially. If you only fetch en-US, you have a US desk. That is fine when you *are* a US desk. It is a silent bias when you think you are watching “the” news.

Sections are beats. Technology is not business. World is not a grab bag for everything you forgot to classify. A monitoring job that hits `/api/technology` every morning is a beat reporter. A job that only keyword-searches the brand is a mention watch. Both are valid. They are not the same cron.

Decoding article URLs is the unglamorous path that saves you from storing Google News wrappers instead of publisher links. If your downstream tool wants the story URL, decode.

## A case: AI policy, two editions

A policy analyst searches `ai policy` in en-US and en-GB on the same day. The UK edition is full of regulator names that barely appear in the US cluster. The US edition is full of lab announcements.

They keep both lists. They do not average them. They do not paste only the US rows into a memo titled “global.” [News monitoring](/blog/news-monitoring-brands-technology-policy) is the job wrapping this habit. The host note is: pass `languageCode` on purpose.

## A case: a News URL that is not the story URL

A colleague pastes a news.google.com link into Slack. Unfurls are useless. The analyst hits decode-article-url, stores the publisher link, and only then fetches surrounding search hits for the headline text.

They did not scrape the Google News HTML. They did not ask Search for the same URL and hope. Headlines as a product have a decode path for a reason.

Section feeds in the morning, keyword search when a name starts moving. That split keeps a technology desk from drowning in a keyword that is also a common noun. `/api/technology` is the beat. `keyword=theirproduct` is the ego search. Run both. Do not run only the ego search and call it a newsroom.

`/api/language-regions` is how you stop guessing whether `en-AU` exists. If you invent a code, you get a bad edition or an error. Read the list.

Topic ids are for when Google News already named a topic. Keyword search is for when you have English. Section feeds are for when you have a beat. Decode is for when you have a wrapper URL. Four paths, four jobs. A monitoring cron that only keyword-searches and never hits a section will miss the homepage cluster that did not use your keyword.

Apple News remains a different product. A newspaper CMS remains a different product. We return Google News as JSON.

## Search vs News

Blue links live on google.fetcher.sh. Headlines live here. Apple News is out. Pay the GET or send a key from [/topup](/topup). Docs on [google-news.fetcher.sh](https://google-news.fetcher.sh). Latest and section feeds in the morning; keyword search when a name starts moving; decode when someone pastes a wrapper URL. That order saves a lot of “why is this not a publisher link” Slack.

If the watch is specifically crypto and regulation, the [vertical note](/blog/crypto-regulation-policy-x-reddit-news) reuses this host with a tighter vocabulary. If the watch is a brand string across tweets too, that is brand mentions, not a News-only cron.
