Disclosure: I built the Trending Now Actor used here and earn money when people run it.
trends.google.com/trending shows what people are searching for right now, per country, with search volume, % increase, categories and related searches. It's great for newsrooms, content teams, social media managers and anyone building "what's hot" dashboards.
Getting it into code is harder than it looks:
- The RSS feed is tiny.
https://trends.google.com/trending/rss?geo=USis easy to parse, but it carries only around 10 trends, while the page itself lists hundreds. - There's no official API for the Trending Now list.
- pytrends is archived and doesn't cover the current Trending Now page.
If the top 10 is enough for you, use the RSS feed with feedparser and you're done. For the full list with volumes and categories, I use the Actor below.
Setup
pip install apify-client pandas export APIFY_TOKEN=your_token_here # Apify Console > Settings > API & Integrations Full list + "only new" alerts
import json import os import urllib.request import pandas as pd from apify_client import ApifyClient client = ApifyClient(os.environ["APIFY_TOKEN"]) run_input = { "countries": ["US"], "timeWindow": "24", # trends that started in the past 24 hours "maxItemsPerCountry": 0, # 0 = the full list, not just the top 25 "onlyNew": True, # remember what was delivered before... "monitorName": "us-all", # ...per monitor name, so the next run skips repeats } run = client.actor("zahidthani/google-trends-trending-now").call( run_input=run_input, max_total_charge_usd=0.60 ) # apify-client 3.x returns a Run object; 1.x and 2.x return a dict dataset_id = getattr(run, "default_dataset_id", None) or run["defaultDatasetId"] trends = pd.DataFrame(client.dataset(dataset_id).iterate_items()) if trends.empty: print("Nothing new since the last run.") else: trends["category"] = trends["categories"].str[0] print(len(trends), "new trends") print(trends.sort_values("searchVolume", ascending=False) [["keyword", "searchVolumeLabel", "increasePercent", "category", "isActive"]] .head(10).to_string(index=False)) print(trends["category"].value_counts().head(8).to_string()) # Alert on the big ones. Set SLACK_WEBHOOK_URL to post to a channel. big = trends[(trends["searchVolume"] >= 50000) & trends["isActive"]] text = "New Google trends (US): " + ", ".join( f'{k} ({v})' for k, v in zip(big["keyword"], big["searchVolumeLabel"]) ) webhook = os.environ.get("SLACK_WEBHOOK_URL") if webhook and len(big): req = urllib.request.Request(webhook, json.dumps({"text": text}).encode(), {"Content-Type": "application/json"}) urllib.request.urlopen(req) else: print(text) Tested with Python 3.12 and apify-client 3.2.1. I ran it without a Slack webhook, so it printed the alert text.
Real output
First run, 6 October 2026, US, past 24 hours: 424 trends. The top 10 by search volume:
| keyword | volume | increase | category | active |
|---|---|---|---|---|
| argentina - benín | 200K+ | 1000% | Sports | True |
| freddie jackson | 200K+ | 1000% | Entertainment | True |
| croatia vs spain | 200K+ | 1000% | Sports | True |
| jim bakker | 200K+ | 1000% | Other | True |
| dodgers | 200K+ | 400% | Sports | True |
| why did i get $90 from social security | 200K+ | 1000% | Law and Government | True |
| world space week 2026 | 200K+ | 1000% | Science | True |
| dodgers vs braves | 200K+ | 1000% | Sports | True |
| hurricane tracker | 100K+ | 200% | Climate | True |
| windsor | 100K+ | 400% | Law and Government | True |
By category: Sports 179, Entertainment 86, Other 38, Law and Government 33, Business and Finance 20, Politics 18, Science 11, Games 7. The alert line listed the 22 active trends with 50K+ searches.
Second run, a minute later, same monitorName:
Nothing new since the last run. That's the alerting trick. With onlyNew, the Actor stores what it already delivered (in a key-value store in your own Apify account, per monitor name, for 10 days) and skips it next time, so you're never sent, or charged for, the same trend twice. A trend that ends and later comes back counts as new.
Scheduling it
No-code: in Apify Console, save the input as a task, add a schedule (e.g. every hour), and attach Slack, email, a webhook, Make, Zapier or n8n to the task. No server needed.
Your own cron: run the script above hourly from any machine with Python:
0 * * * * cd /path/to/script && APIFY_TOKEN=... SLACK_WEBHOOK_URL=... python trending_alert.py A GitHub Actions workflow with schedule: and the two values as repository secrets works the same way.
Useful filters, all applied before you're charged:
-
"categories": ["Technology", "Business and Finance"]for a niche feed. -
"minSearchVolume": 10000to skip small spikes. -
"activeOnly": truefor trends that are still rising. -
"keywordFilter": "iphone"to watch one topic or brand. -
"countries": ["US", "GB", "DE"]for several countries in one run.
What it costs
$0.001 per trend delivered + $0.005 per run. Filtered-out and already-seen trends are free.
| Job | Cost |
|---|---|
| Full US list once (424 trends) | about $0.43 |
| Top 50 once a day | about $0.055 a day |
| Hourly only-new monitor, no filters | about $0.12/day in run fees + $0.001 per new trend (roughly $0.50-0.60/day for the US) |
| Hourly, filtered to one category or 10K+ searches | far fewer trends, so usually well under $0.30/day |
Apify's free plan includes $5 of monthly credit. max_total_charge_usd caps each run.
Limitations
- Search volume is Google's rounded bucket (
200K+,50K+), not an exact count. - News links cover only the freshest ~10 trends per country (they come from Google's news feed). Every trend has
newsArticleCount, but most havenews: []. - Keywords are in the language people searched in (note "croacia - españa" next to "croatia vs spain" in the US list). Group by
relatedQueriesif you need to merge duplicates. - "Only new" memory lasts 10 days and is per
monitorName. Use different names for monitors with different filters, or they'll hide trends from each other. - It depends on Google's page not changing. I maintain it and monitor it daily, but it's still a scraper.
Try it
Google Trends Trending Now Monitor on the Apify Store: https://apify.com/zahidthani/google-trends-trending-now
Runnable Python, Node.js and n8n examples: https://github.com/zahidthani/apify-data-tools-examples

