DEV Community

Hải Hà Phan Thanh
Hải Hà Phan Thanh

Posted on

Get Google Trends 'Trending now' for any country with Python (RSS + a many-country shortcut)

Content, SEO and newsroom teams often want one thing from Google Trends: what is spiking right now in a given country. Google has no official API for it, but the "Trending now" page is backed by a public RSS feed that needs no key, cookies or proxy.

DIY: read the RSS feed

# pip install requests
import requests
import xml.etree.ElementTree as ET

NS = {"ht": "https://trends.google.com/trending/rss"}

def trending(geo="US", n=3):
    r = requests.get("https://trends.google.com/trending/rss",
                     params={"geo": geo}, headers={"User-Agent": "Mozilla/5.0"}, timeout=20)
    r.raise_for_status()
    items = ET.fromstring(r.content).find("channel").findall("item")[:n]
    return [{"keyword": it.findtext("title"),
             "traffic": it.findtext("ht:approx_traffic", namespaces=NS),
             "published": it.findtext("pubDate"),
             "news": [x.findtext("ht:news_item_title", namespaces=NS) for x in it.findall("ht:news_item", NS)]}
            for it in items]

for t in trending("US"):
    print(t["traffic"], "|", t["keyword"], "|", t["published"])
Enter fullscreen mode Exit fullscreen mode

Output (30/10/2026):

5000+ | mia pohankova | Thu, 29 Oct 2026 21:40:00 -0700
10000+ | alphabet stock drop 500 billion | Thu, 29 Oct 2026 21:40:00 -0700
500+ | scarlett johansson | Thu, 29 Oct 2026 21:30:00 -0700
Enter fullscreen mode Exit fullscreen mode

What you give up with the RSS feed:

  1. Traffic is a string bucket ("5000+"), not a number, and there is no % increase, end time, category or related queries.
  2. Timezone offsets in pubDate vary by feed, so normalise to UTC before comparing countries.
  3. No time window or category filter. You get Google's default list and filter it yourself.
  4. One request per country, and you have to dedupe between scheduled runs yourself.

Many countries, categories, filters: the actor

I built the Google Trends Trending Now actor to cover those gaps. It reads Google's Trending Now data for any country, with a 4/24/48/168-hour window, a category filter, an activeOnly switch and an onlyNew option for scheduled runs. Each record has numeric traffic, % increase, start/end time, active status, related queries, categories, an Explore link, and news items when Google publishes them.

# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("bachiembmt/google-trends-trending-now").call(run_input={
    "countries": ["US", "VN"],
    "hours": "24",
    "categories": ["Technology"],
    "maxItemsPerCountry": 3,
})
for t in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(t["country"], t["approxTraffic"], t["increasePercent"], "%", "active" if t["active"] else "ended", "|", t["keyword"])
Enter fullscreen mode Exit fullscreen mode

Sample output (30/10/2026, abridged):

US 5000 100 % ended | t-mobile spacex network deal rejection
US 10000 100 % ended | nintendo switch zelda 40th anniversary
VN 200 200 % active | apple ipad mini 8
VN 200 200 % ended | cve-2026-98432
Enter fullscreen mode Exit fullscreen mode

A run like this takes a few seconds. Pricing is $1.50 per 1,000 trends, no subscription.

When to use which

  • One country, quick look: the RSS script above is enough.
  • Many countries, category filters, numeric volumes, or a daily job that only reports new trends: use the actor, or extend the script yourself.

Disclosure: I built and maintain the actor. It reads Google's public Trending Now endpoints.

Top comments (0)