Google Trending Searches - Trending Now by Country & Alerts
Pricing
from $1.00 / 1,000 trends
Google Trending Searches - Trending Now by Country & Alerts
What people are searching for on Google right now, per country or region: query, approximate searches, start time and the news stories behind each trend. Change tracking reports only new trends on scheduled runs. Trending-now only, no interest over time. Not affiliated with Google.
Pricing
from $1.00 / 1,000 trends
Rating
0.0
(0)
Developer
Cedarfetch Labs
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
an hour ago
Last modified
Categories
Features
Share
What this Actor does: it returns the searches that are trending on Google right now in the countries and regions you choose: the query, Google's approximate search count, when the trend started, a picture, and the news stories Google links to it. Turn on change tracking and schedule it, and each run reports only the trends that are new since the last run.
What it does not do: this Actor does not provide interest over time, related queries, related topics, interest by region or keyword comparison. Those charts come from Google Trends' explore API, which refuses plain automated requests (in our tests it answered "429 Too Many Requests" to the very first cookie-less request) and only works with browser cookies, tokens and rate-limit workarounds. This Actor uses none of those, so it does not offer that data. If you need interest over time, use an explore-based Google Trends scraper; if you need to know what is trending right now, and what is new since an hour ago, this one is built for it.
The data comes from Google Trends' public trending RSS feed (trends.google.com/trending/rss?geo=...), read with plain HTTP requests and an honest User-Agent. No browser, no proxies, no login, no cookies. A run for one country takes about a second. This Actor is independent and not affiliated with Google; "Google" and "Google Trends" are trademarks of Google LLC.
What you can use it for
- Content and newsjacking: see what your audience is searching for in the last hour, with the articles driving it, and write or post while it is still rising.
- E-commerce and ad timing: catch product, sports and entertainment spikes per country and adjust campaigns, landing pages or stock alerts.
- Social media scheduling: feed a posting queue with fresh, country-specific topics.
- Monitoring a market across countries: run 10-50 countries in one go, merge duplicates into one row per trend with the list of countries where it trends.
- Alerts: schedule every 15-30 minutes with change tracking and send only new trends to Slack, email or a webhook.
- AI agents and pipelines: one small, stable JSON shape per trend.
What you get per trend
| Field | Example | Notes |
|---|---|---|
geo, geoName | US, United States | Country or sub-region you asked for. |
rank | 2 | Position in Google's feed. 1 = the most recently started trend, not the biggest. Use sortBy: "traffic" for biggest first. |
query | weather chicago | The trending search, as Google publishes it (usually lowercase). |
approxTraffic | 200 | Google's approximate search count as a number: the lower bound of its bucket ("500+" becomes 500, "200K+" becomes 200000). |
approxTrafficText | 200+ | Google's own label. |
startedAt | 2026-11-11T20:30:00.000Z | When the trend started (ISO 8601, UTC). |
trendingForMinutes | 21 | Minutes since it started (or since this Actor first saw it, if earlier). |
pictureUrl, pictureSource | Google-hosted thumbnail, ABC7 Chicago | Missing for some trends. |
news, newsCount | up to 3 stories | Each with title, url, source, imageUrl, snippet (Google leaves snippets empty today). |
exploreUrl, searchUrl, trendingPageUrl | links | Google Trends explore page for the query (to look at interest over time yourself), Google search, and the Trending now page for the geo. |
changeType, firstSeenAt, lastSeenAt, peakApproxTraffic, previousRank, droppedAt | With change tracking (below). | |
geos, geoCount | With one row per trend across geos (below). |
Input
Only geos is required (default ["US"]). One entry per line, in any of these forms:
| You type | Read as |
|---|---|
US, gb, JP | ISO 3166-1 country code, any case |
Germany, United Kingdom, UK, USA, South Korea | country name or common alias |
US-CA, US-NY, GB-SCT, CA-ON, AU-NSW, DE-BY | sub-region (ISO 3166-2); names built in for US states, UK nations, Canadian provinces, Australian states and German states |
California, Scotland, Bavaria | built-in sub-region name |
FR-IDF or any other CC-XXX | passed to Google as is; reported as unsupported_geo if Google has no feed for it |
Typos and unknown codes (XX, US-ZZ, Atlantis) are reported per entry in the dataset and the run summary, and cost no request. The other geos still run. Duplicates (US and United States) are fetched once.
Example: three countries, biggest trends first
{"geos": ["US", "GB", "DE"],"sortBy": "traffic","maxTrendsPerGeo": 5}
Example: only trends with 1,000+ searches that mention sports words
{"geos": ["US", "CA", "AU"],"minApproxTraffic": 1000,"keywords": ["nfl", "nba", "vs", "game*", "cup"],"keywordScope": "query_and_news"}
Example: one row per trend across European markets
{"geos": ["GB", "IE", "DE", "AT", "CH", "FR", "BE", "NL", "ES", "IT"],"dedupeAcrossGeos": true,"includeNews": false}
All options
| Field | Default | What it does |
|---|---|---|
geos | ["US"] | Countries / regions, up to 300 per run. |
maxTrendsPerGeo | 10 | At most this many trends per geo (the feed holds 10). |
includeNews | true | Add the linked news stories. |
language | empty | Optional hl code (en, de, pt-BR). In our tests it changed which news stories are attached, not which trends are listed. |
sortBy | feed | feed = most recently started first (Google's order); traffic = highest approximate searches first. Applied before the cap. |
minApproxTraffic | 0 | Keep trends with at least this many approximate searches. |
keywords | none | Keep trends mentioning any of these words. |
excludeKeywords | none | Drop trends mentioning any of these words. |
keywordScope | query_and_news | Match keywords in the query and its news headlines, or in the query only. |
dedupeAcrossGeos | false | One row per trend with the list of geos. |
trackChanges | false | Compare with the previous run and label every row. |
changesOnly | false | With tracking on, deliver only new (and dropped) trends. |
includeDropped | true | With tracking on, report trends that left the feed. |
snapshotStoreName | google-trending-searches-snapshots | Named key-value store for snapshots. Use different names for independent feeds. |
maxRequests | 100 | Hard cap on requests per run, retries included. |
concurrency | 2 | Feeds fetched at the same time (max 4). |
requestDelayMs | 500 | Pause after each request (min 100). |
requestTimeoutSecs | 30 | Timeout per request. |
maxRetries | 3 | Retries for 429, 5xx and network errors. |
Keyword matching is case- and accent-insensitive and works on whole words: taylor matches "taylor swift tour" but not "taylormade"; taylor* matches both; phrases such as world cup work. Keywords written in Chinese, Japanese, Korean or Thai match anywhere in the text, because those languages do not separate words with spaces.
Output
One row per trend in the default dataset. Download as JSON, CSV, Excel or XML from the Output tab or the API. Views: Trends, News behind the trends, Changes, Across geos, Geos that could not be read.
{"recordType": "trend","geo": "US","geoName": "United States","rank": 2,"query": "weather chicago","approxTraffic": 200,"approxTrafficText": "200+","startedAt": "2026-11-11T20:30:00.000Z","trendingForMinutes": 21,"pictureUrl": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTO9oBmcOgB4o...","pictureSource": "ABC7 Chicago","newsCount": 3,"news": [{"title": "Chicago, IL-area weather forecast this week could include 1st snowfall of season","url": "https://abc7chicago.com/post/chicago-il-area-weather-forecast-week-could-include-1st-snowfall-season/20030999/","source": "ABC7 Chicago","snippet": null,"imageUrl": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTO9oBmcOgB4o..."}],"exploreUrl": "https://trends.google.com/trends/explore?q=weather+chicago&geo=US&date=now+7-d","searchUrl": "https://www.google.com/search?q=weather+chicago","trendingPageUrl": "https://trends.google.com/trending?geo=US","language": null,"geoCount": null,"geos": null,"changeType": null,"firstSeenAt": null,"lastSeenAt": null,"peakApproxTraffic": null,"previousRank": null,"droppedAt": null,"source": "feed","scrapedAt": "2026-11-11T20:51:00.460Z"}
(Real row from 2026-11-11, news list and image URLs shortened.) Dates are ISO 8601 in UTC; numbers are numbers.
One row per trend across geos
With dedupeAcrossGeos, a query trending in several geos becomes one row. geos lists each geo with its own rank, approxTraffic, startedAt and (with tracking) changeType; the row's approxTraffic is the highest, rank the best, startedAt the earliest, and news stories are merged (up to 10). In a real 5-country run (US, GB, CA, AU, IE) 50 trends became 46 rows; "elina svitolina" was trending in US (#5, 1000+), GB (#6, 200+) and CA (#4, 200+).
Geos that could not be read
A free geo_status row is added for every geo that could not be read, with a status and a plain-language message:
| status | Meaning |
|---|---|
invalid_geo | Not a country code, name or sub-region this Actor knows. No request was made. |
unsupported_geo | Google has no trending feed for that geo (it answered HTTP 400). Seen for AQ and KP. |
no_trends | The feed answered but was empty. |
rate_limited | Still rate-limited after polite retries. Try later. |
blocked | Google refused the request or answered with a consent or bot-protection page. Never worked around. |
unreachable / error | Network failure or an unexpected answer. |
skipped_request_budget | Not fetched because maxRequests was used up. |
skipped_rate_limit | Not fetched because two geos in a row were rate-limited; the run stopped asking Google. |
If the feeds were read but nothing was delivered (everything filtered out, or nothing new in changes-only mode), a free geo_status row per geo says so. If no trend at all could be read, the run fails and the status message lists the reason for each geo.
Run summary
The default key-value store record OUTPUT has, per geo: the input, resolved code and name, status, HTTP status, trends found / matched / delivered, dropped trends reported, how many were cut by filters (and which filter) or by the cap, change counts, requests and duration. Totals cover requests and retries for the whole run.
Change tracking
Turn on Track changes between runs and schedule the Actor. Each run compares every geo's feed with the snapshot from the previous run and adds:
| Field | Meaning |
|---|---|
changeType | new (not in the previous run's feed), still_trending, or dropped (was in the previous feed, is not now). |
firstSeenAt | When this Actor first saw the trend in this geo's feed. Carried across runs. |
lastSeenAt | The latest run that saw it. |
peakApproxTraffic | Highest approxTraffic seen so far. |
previousRank | Rank in the previous run. |
droppedAt | For dropped rows: when this run noticed it had left the feed. Dropped rows carry the last known query, traffic, start time, picture and news. |
Rules you can rely on:
- The first tracked run labels every trend
new. It sets the baseline. - "Dropped" means "left Google's 10-item feed". The feed holds only the most recently started trends, so a trend usually drops out because newer trends pushed it down, not because people stopped searching. Treat
droppedas "no longer among the newest", and turn it off withincludeDropped: falseif you only want new trends. - A failed or empty fetch never reports drops. If a geo cannot be read, its snapshot is left untouched.
- Filters and caps do not create false changes. The snapshot records the whole feed, so changing
keywordsormaxTrendsPerGeodoes not make old trends look new. - Nothing is lost on a budget stop. Trends that did not fit under the run's charge limit are not recorded, so the next run reports them.
- A trend that drops out and comes back is
newagain, with a freshfirstSeenAt. - With
dedupeAcrossGeos, a merged row isnewif it is new in any geo,still_trendingif it is still in any geo's feed, anddroppedonly when it left every geo's feed;geos[].changeTypehas the per-geo detail. - Snapshots live in the named key-value store
snapshotStoreNamein your Apify account (one small JSON record per geo, under 20 KB). Delete it, or pick a new name, to start over.
Recipe: alert me on new trends every 30 minutes
- Create a task with:
{"geos": ["US", "GB"],"trackChanges": true,"changesOnly": true,"includeDropped": false,"minApproxTraffic": 500}
- Run it once to set the baseline (every trend is
newon that run). - Schedule it every 30 minutes (cron
*/30 * * * *). From then on each run delivers only trends that started since the previous run, and you pay only for those. For the US the feed covered about 40 minutes of trends when we tested, so schedule at least every 30 minutes if you do not want to miss any; quieter countries can run hourly. - Connect the dataset to Slack, email, a Google Sheet or a webhook through Apify integrations ("Run succeeded" with a non-empty dataset).
Pricing
Pay per event: one trend event per trend row delivered to the dataset (including dropped rows), plus Apify's small run-start fee. See the Pricing tab for the current price.
geo_statusrows are free.- With changes-only output, still-trending trends are not delivered and not charged.
- Set Maximum cost per run in the run options to cap spending. The Actor stops cleanly at the cap, keeps everything delivered so far, and notes it in
OUTPUT.
Use from an AI agent or via API
Ready-to-run Python, Node.js and cURL examples: github.com/cedarfetch/google-trending-searches-examples.
Run synchronously and get the rows back in one HTTP call:
curl -X POST "https://api.apify.com/v2/acts/<username>~google-trending-searches/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"geos":["US","GB"],"maxTrendsPerGeo":5,"includeNews":false}'
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('<username>/google-trending-searches').call({ geos: ['US'], sortBy: 'traffic' });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("<username>/google-trending-searches").call(run_input={"geos": ["DE", "AT", "CH"]})items = client.dataset(run["defaultDatasetId"]).list_items().items
The Actor is also available to agents through the Apify MCP server, which exposes Store Actors as tools. Tips for agents: filter on recordType == "trend"; use approxTraffic (a number) rather than parsing approxTrafficText; rank is recency, not size; read OUTPUT for per-geo status.
Limits and honest caveats
- Trending now only. No interest over time, related queries, related topics, interest by region or keyword comparison (see the top of this page for why).
- 10 trends per geo. Google's feed lists the 10 most recently started trends, newest first. The Trending now web page shows more, with categories and "trend breakdown" terms, but it loads them through an internal, undocumented interface that this Actor does not use.
- Approximate traffic is a coarse bucket. Values seen on 2026-11-11: 100+, 200+, 500+, 1000+, 5000+, 10000+. Suffixed labels such as 20K+ or 1M+ are parsed too.
approxTrafficis the lower bound; two trends both at "1000+" may differ a lot. - No category, no end time, no growth percentage in the feed.
trendingForMinutesis computed from the start time. - Time-window, category and sort parameters do not exist for this feed: we tested
hours=4andcategory=17and Google ignored both.sortBy: "traffic"sorts the 10 items locally. - Coverage varies by geo. Some countries and sub-regions have no feed (
unsupported_geo, one request, nothing charged). Verified on 2026-11-11: US, GB, DE, JP, CA, AU, IE, US-CA, GB-SCT work; AQ and KP do not. - Google decides the content. Queries are as people search them (lowercase, sometimes misspelled); news stories are Google's selection, in the language Google picks unless you set
language. - Not affiliated with Google. If Google changes or removes the feed, runs will report
errororunsupported_geoper geo rather than return wrong data.
FAQ
Why only 10 trends? That is what Google's public trending feed contains. Running more often (every 15-30 minutes) with change tracking collects every trend as it appears.
Why is rank 1 not the biggest trend? The feed is ordered by start time. Set sortBy to traffic for biggest first.
Can I get worldwide trends? Google publishes trending searches per country, not worldwide. List the countries you care about and use dedupeAcrossGeos to see which trends cross borders.
Can I get cities? No. The feed works for countries and some sub-regions (US states, UK nations and others).
Do I need proxies? No. The feed answers plain requests. The Actor sends one request per geo with a pause between them and backs off on rate limits; geos that are refused are reported, not worked around.
Is this legal? The Actor reads a public feed that Google publishes for anyone to subscribe to, and collects no personal data. You are responsible for how you use the data and for complying with Google's terms. If in doubt, ask a lawyer.
Supported codes
Countries (ISO 3166-1; Google covers most but not all of them):
AD Andorra · AE United Arab Emirates · AF Afghanistan · AG Antigua & Barbuda · AI Anguilla · AL Albania · AM Armenia · AO Angola · AQ Antarctica · AR Argentina · AS American Samoa · AT Austria · AU Australia · AW Aruba · AX Åland Islands · AZ Azerbaijan · BA Bosnia & Herzegovina · BB Barbados · BD Bangladesh · BE Belgium · BF Burkina Faso · BG Bulgaria · BH Bahrain · BI Burundi · BJ Benin · BL St. Barthélemy · BM Bermuda · BN Brunei · BO Bolivia · BQ Caribbean Netherlands · BR Brazil · BS Bahamas · BT Bhutan · BV Bouvet Island · BW Botswana · BY Belarus · BZ Belize · CA Canada · CC Cocos (Keeling) Islands · CD Congo - Kinshasa · CF Central African Republic · CG Congo - Brazzaville · CH Switzerland · CI Côte d’Ivoire · CK Cook Islands · CL Chile · CM Cameroon · CN China · CO Colombia · CR Costa Rica · CU Cuba · CV Cape Verde · CW Curaçao · CX Christmas Island · CY Cyprus · CZ Czechia · DE Germany · DJ Djibouti · DK Denmark · DM Dominica · DO Dominican Republic · DZ Algeria · EC Ecuador · EE Estonia · EG Egypt · EH Western Sahara · ER Eritrea · ES Spain · ET Ethiopia · FI Finland · FJ Fiji · FK Falkland Islands · FM Micronesia · FO Faroe Islands · FR France · GA Gabon · GB United Kingdom · GD Grenada · GE Georgia · GF French Guiana · GG Guernsey · GH Ghana · GI Gibraltar · GL Greenland · GM Gambia · GN Guinea · GP Guadeloupe · GQ Equatorial Guinea · GR Greece · GS South Georgia & South Sandwich Islands · GT Guatemala · GU Guam · GW Guinea-Bissau · GY Guyana · HK Hong Kong SAR China · HM Heard & McDonald Islands · HN Honduras · HR Croatia · HT Haiti · HU Hungary · ID Indonesia · IE Ireland · IL Israel · IM Isle of Man · IN India · IO British Indian Ocean Territory · IQ Iraq · IR Iran · IS Iceland · IT Italy · JE Jersey · JM Jamaica · JO Jordan · JP Japan · KE Kenya · KG Kyrgyzstan · KH Cambodia · KI Kiribati · KM Comoros · KN St. Kitts & Nevis · KP North Korea · KR South Korea · KW Kuwait · KY Cayman Islands · KZ Kazakhstan · LA Laos · LB Lebanon · LC St. Lucia · LI Liechtenstein · LK Sri Lanka · LR Liberia · LS Lesotho · LT Lithuania · LU Luxembourg · LV Latvia · LY Libya · MA Morocco · MC Monaco · MD Moldova · ME Montenegro · MF St. Martin · MG Madagascar · MH Marshall Islands · MK North Macedonia · ML Mali · MM Myanmar (Burma) · MN Mongolia · MO Macao SAR China · MP Northern Mariana Islands · MQ Martinique · MR Mauritania · MS Montserrat · MT Malta · MU Mauritius · MV Maldives · MW Malawi · MX Mexico · MY Malaysia · MZ Mozambique · NA Namibia · NC New Caledonia · NE Niger · NF Norfolk Island · NG Nigeria · NI Nicaragua · NL Netherlands · NO Norway · NP Nepal · NR Nauru · NU Niue · NZ New Zealand · OM Oman · PA Panama · PE Peru · PF French Polynesia · PG Papua New Guinea · PH Philippines · PK Pakistan · PL Poland · PM St. Pierre & Miquelon · PN Pitcairn Islands · PR Puerto Rico · PS Palestinian Territories · PT Portugal · PW Palau · PY Paraguay · QA Qatar · RE Réunion · RO Romania · RS Serbia · RU Russia · RW Rwanda · SA Saudi Arabia · SB Solomon Islands · SC Seychelles · SD Sudan · SE Sweden · SG Singapore · SH St. Helena · SI Slovenia · SJ Svalbard & Jan Mayen · SK Slovakia · SL Sierra Leone · SM San Marino · SN Senegal · SO Somalia · SR Suriname · SS South Sudan · ST São Tomé & Príncipe · SV El Salvador · SX Sint Maarten · SY Syria · SZ Eswatini · TC Turks & Caicos Islands · TD Chad · TF French Southern Territories · TG Togo · TH Thailand · TJ Tajikistan · TK Tokelau · TL Timor-Leste · TM Turkmenistan · TN Tunisia · TO Tonga · TR Türkiye · TT Trinidad & Tobago · TV Tuvalu · TW Taiwan · TZ Tanzania · UA Ukraine · UG Uganda · UM U.S. Outlying Islands · US United States · UY Uruguay · UZ Uzbekistan · VA Vatican City · VC St. Vincent & Grenadines · VE Venezuela · VG British Virgin Islands · VI U.S. Virgin Islands · VN Vietnam · VU Vanuatu · WF Wallis & Futuna · WS Samoa · XK Kosovo · YE Yemen · YT Mayotte · ZA South Africa · ZM Zambia · ZW Zimbabwe
Sub-regions with built-in names:
- United States:
US-ALAlabama,US-AKAlaska,US-AZArizona,US-ARArkansas,US-CACalifornia,US-COColorado,US-CTConnecticut,US-DEDelaware,US-DCDistrict of Columbia,US-FLFlorida,US-GAGeorgia,US-HIHawaii,US-IDIdaho,US-ILIllinois,US-INIndiana,US-IAIowa,US-KSKansas,US-KYKentucky,US-LALouisiana,US-MEMaine,US-MDMaryland,US-MAMassachusetts,US-MIMichigan,US-MNMinnesota,US-MSMississippi,US-MOMissouri,US-MTMontana,US-NENebraska,US-NVNevada,US-NHNew Hampshire,US-NJNew Jersey,US-NMNew Mexico,US-NYNew York,US-NCNorth Carolina,US-NDNorth Dakota,US-OHOhio,US-OKOklahoma,US-OROregon,US-PAPennsylvania,US-RIRhode Island,US-SCSouth Carolina,US-SDSouth Dakota,US-TNTennessee,US-TXTexas,US-UTUtah,US-VTVermont,US-VAVirginia,US-WAWashington,US-WVWest Virginia,US-WIWisconsin,US-WYWyoming - United Kingdom:
GB-ENGEngland,GB-SCTScotland,GB-WLSWales,GB-NIRNorthern Ireland - Canada:
CA-ABAlberta,CA-BCBritish Columbia,CA-MBManitoba,CA-NBNew Brunswick,CA-NLNewfoundland and Labrador,CA-NSNova Scotia,CA-NTNorthwest Territories,CA-NUNunavut,CA-ONOntario,CA-PEPrince Edward Island,CA-QCQuebec,CA-SKSaskatchewan,CA-YTYukon - Australia:
AU-ACTAustralian Capital Territory,AU-NSWNew South Wales,AU-NTNorthern Territory,AU-QLDQueensland,AU-SASouth Australia,AU-TASTasmania,AU-VICVictoria,AU-WAWestern Australia - Germany:
DE-BWBaden-Württemberg,DE-BYBavaria,DE-BEBerlin,DE-BBBrandenburg,DE-HBBremen,DE-HHHamburg,DE-HEHesse,DE-MVMecklenburg-Vorpommern,DE-NILower Saxony,DE-NWNorth Rhine-Westphalia,DE-RPRhineland-Palatinate,DE-SLSaarland,DE-SNSaxony,DE-STSaxony-Anhalt,DE-SHSchleswig-Holstein,DE-THThuringia
Other sub-regions in CC-XXX form are passed to Google as is.
Support
Found a geo that behaves oddly? Open an issue on the Issues tab with the input and the run ID; the OUTPUT record usually shows what happened.
More Actors from Cedarfetch Labs
Built the same way: public data only, typed output, per-source error reporting, change tracking for scheduled runs.
- Shopify Store Scraper: full product catalogs from any Shopify store, with price and stock change tracking.
- ATS Jobs Scraper: open jobs from Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee and Personio boards, with new and removed postings flagged.
- Remote Jobs Scraper: remote jobs from Remote OK, We Work Remotely and five more boards in one deduplicated feed.
- Substack Scraper: public posts from any Substack newsletter as Markdown, with a new-posts feed.