Google News All-In-One Api avatar

Google News All-In-One Api

Pricing

from $7.80 / 1,000 searches

Go to Apify Store
Google News All-In-One Api

Google News All-In-One Api

Real-time, unofficial Google News data as a REST API — personalized feeds, full-text search, regional editions, autocomplete, and category browsing. No scraping, no HTML parsing: this talks directly to the same private API the official Google News Android app uses, and returns clean JSON

Pricing

from $7.80 / 1,000 searches

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Google News API

Real-time, unofficial Google News data as a REST API — personalized feeds, full-text search, regional editions, autocomplete, and category browsing. No scraping, no HTML parsing: this talks directly to the same private API the official Google News Android app uses, and returns clean JSON.

Quick start

Once deployed on Apify, the actor runs in Standby mode — call it like any REST API, no run/wait-for-finish cycle needed:

$curl "https://romy--google-news-all-in-one-api.apify.actor/search?q=indonesia+election&ceid=US:en&token=<YOUR_APIFY_TOKEN>"

(get your token from the Integrations tab in Apify Console — Authorization: Bearer <token> header works too, instead of ?token=)

Pricing

Pay-per-event — you're only charged for successful calls, once per request, regardless of how many articles come back:

EndpointEventPrice
GET /feedfeed$0.01
GET /searchsearch$0.01
GET /sections/:idsection$0.012
GET /discoverdiscover$0.003
GET /editions/:idedition$0.002
GET /suggestsuggest$0.001
GET /configconfig$0.001

Endpoints

GET /feed — personalized "Read Now" home feed

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/feed' \
--data-urlencode 'ceid=US:en' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'
{
"success": true,
"articles": [
{
"title": "Magnitude-7.7 quake hits off coast of Indonesia, killing at least 38",
"snippet": "A magnitude-7.7 earthquake hit off the coast of Indonesia in the eastern Flores region...",
"sourceName": "NBC News",
"publishedMs": "1786794420000",
"url": "https://www.nbcnews.com/world/indonesia/earthquake-indonesia-rcna592638"
}
],
"count": 3,
"next": "GidDQnhpR1FvUU9HTTROV015WlRFd1ltTmlaR05rTWhDc2hxS3RnRFEg..."
}
query='indonesia election'
curl --get 'https://romy--google-news-all-in-one-api.apify.actor/search' \
--data-urlencode "q=$query" \
--data-urlencode 'ceid=US:en' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'

Same response shape as /feed, filtered to the query. q is required.

GET /editions/:id — a regional/language edition + its tab bar

Start here to discover an edition's section ids (For You / Headlines / World / Business / Technology / etc.):

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/editions/CAAqHAgKIhZDQkFTQ2dvSUwyMHZNRE5uWkRVb0FBUAE' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'
{
"success": true,
"sections": [
{ "id": "CAQqEggAKg4ICiIIQ0FrU0FDZ0FQAQ...", "title": "For you" },
{ "id": "CAQiSkNCQVNNUW9JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlPQ0FR...", "title": "Headlines" },
{ "id": "CAQiRENCQVNMUW9JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlNQ0FF...", "title": "U.S." },
{ "id": "CAQiRENCQVNMUW9JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlOQ0FF...", "title": "World" },
{ "id": "CAQiSENCQVNNQW9JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlQQ0FF...", "title": "Business" },
{ "id": "CAQiS0NCQVNNZ29JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlSQ0FF...", "title": "Technology" }
]
}

CAAqHAgKIhZDQkFTQ2dvSUwyMHZNRE5uWkRVb0FBUAE is the default US edition — that's a good starting point for any region.

GET /sections/:id — articles from one tab

Feed a sections[].id from /editions/:id (or /discover) back in:

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/sections/CAQiSkNCQVNNUW9JTDIwdk1ETm5aRFVTQW1WdUdnSlZVeUlPQ0FR...' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'

Returns articles for that tab (e.g. 40 U.S. headlines), same shape as /feed.

GET /discover — browsable category/source directory

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/discover' \
--data-urlencode 'ceid=US:en' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'
{ "success": true, "sections": [{ "id": "...", "title": "Popular" }] }

Each result's id also feeds into /sections/:id or /editions/:id.

GET /suggest — search-as-you-type autocomplete

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/suggest' \
--data-urlencode 'q=indo' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'
{
"success": true,
"suggestions": [
{ "text": "indonesia earthquake" },
{ "text": "Indonesia" },
{ "text": "indonesia earthquake today" },
{ "text": "indonesia earthquake tsunami warning" },
{ "text": "indonesia news" }
]
}

GET /config — feature-flag/experiment blob

curl --get 'https://romy--google-news-all-in-one-api.apify.actor/config' \
--data-urlencode 'country=US' \
--data-urlencode 'token=<YOUR_APIFY_TOKEN>'

Not article data — internal A/B flags, kept for completeness.

Pagination & region

Every article endpoint returns a next cursor when more results exist — pass it back as ?next= to get the next page (nextUrl is upstream's own next-page URL, informational only; use next with this API).

Region is ceid=COUNTRY:lang (e.g. US:en, ID:id) — same convention as the public news.google.com/rss?ceid=... URLs. sceids adds secondary regions as a comma-separated list of the same format. hl sets UI language independently (defaults to en-US).

Known limitations

  • "Full Coverage of this story" clusters (storylineGroups[] on /search//sections//feed responses) carry a fullCoverageId, but there's currently no known endpoint that resolves it into an article list — every guessed path (/storyline/, /coverage/, /cluster/, ...) 404s. Extraction of the id itself is correct; just nothing to fetch it with yet.
  • /discover's results only include plain {id, title} entries — richer "source card" entries (with logo/description) are skipped.
  • No write actions (upvote/blacklist a topic, etc.) — read-only API.