Google News hub

Google News Topic API

A topic's stream, a single sub-tab, or a publisher's articles, with the rich article fields.

GET /v1/google-news/topics/{topicId}

1 credit Failed requests are free

About this endpoint

GET /v1/google-news/topics/{topicId} returns lookupStatus, topic, articles and streamStatus. topic has id, name and tabs, where each tab is { id, name }. Pass a tab id as tab to get that tab instead of the topic's latest stream. streamStatus is live when articles were returned, empty when the entity has no stream in this edition right now, and unreadable or unavailable when a stream is temporarily unavailable.

This is the rich article surface. Each article carries url, ampUrl, image, authors, label, storyId and clusterHeadline when the record has them, alongside the standard id, title, publishedAt and source. A topic stream can hold up to about 265 articles and the answer returns at most 400. There is no page parameter.

Some entity topics have no stories for a period. That answer is lookupStatus: found with articles: [], because the topic exists. An id that does not exist returns not_found with topic: null. The same route also accepts a publisher id, but GET /v1/google-news/publishers/{publicationId} is the dedicated publisher surface.

Google News Topic API FAQ

Where does the topic id come from?

From topics/resolve, from a section id, from sections, or from an article record. A publisher id from source.publicationId is also accepted.

How do I read one tab?

Read topic.tabs and send a tab id as tab. Without tab, the route returns the topic's latest stream.

Why did a known topic return no articles?

Entity topics can have no stories for a period. The topic is still found; the list is empty. Retrying will not change it, so treat this as a valid empty answer.

How do I page through a topic?

You cannot. The stream returns its full window in one answer, capped at 400 articles. Use search with a time window when you need older coverage.

How many credits does it cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.