Google Trends Scraper & API Alternative — Trending Searches by Country

Pull what people are searching for right now in 125 countries, with traffic estimates and the news behind each trend, as clean rows you can schedule.

Run on Apify →See pricing

What it does

Google Trends has no official public API, and the website is built for clicking, not for feeding a newsroom alert, a content calendar or an ad team every hour. This actor reads Google's official Trending Now RSS feed for any of the 125 countries the feed accepts and turns it into one row per trend: country, rank, keyword, approximate search traffic parsed to a number (2K+ becomes 2000, with the original text kept), the time the trend started, a picture and the news articles behind it.

Switch on onlyNewSinceLastRun and schedule it, and each run returns only the trends it has not delivered before for that country, keyword and start day. Skipped trends are not charged, so an hourly monitor costs only what is genuinely new.

There is a second, best-effort part for keyword research: up to 20 keywords with interest over time, interest by region and top + rising related queries, for any timeframe, location, category and search type (web, news, YouTube, images or Google Shopping). Google rate-limits those endpoints, so when it answers with a 429, 403 or CAPTCHA the actor stops that part, keeps what it already has and charges nothing for unfinished keywords.

How it works

  1. For each country in geos, the actor requests Google's official Trending Now RSS feed (one request per country, paced at about one per second).
  2. Each trend becomes a row with its rank, keyword, traffic bucket parsed to a number, start time, picture and news articles (title, URL, publisher, picture).
  3. With onlyNewSinceLastRun, trends already returned under the same monitorName are skipped and not charged; the memory lives in the key-value store trends-seen-<name>.
  4. If you add keywords, it calls the same JSON endpoints the Trends website uses, one request every 3 seconds, and returns timeline, region and related-query rows.
  5. On any rate limit or CAPTCHA it stops the explore part for the rest of the run, never retries blocks, uses no proxies, and respects robots.txt and your run budget.

Input example

A typical run input (JSON). Every field is also available as a form in the Apify console.

{
  "geos": [
    "US",
    "GB",
    "DE",
    "BR"
  ],
  "maxItemsPerGeo": 10,
  "onlyNewSinceLastRun": true,
  "monitorName": "newsroom-hourly",
  "keywords": [],
  "timeframe": "today 12-m",
  "property": "web"
}
All input fields
FieldTypeRequiredDefaultWhat it does
geosarrayno["US"]Countries to read Trending Now for (one request per country). All 125 countries the official feed accepts are listed. Leave empty to only explore keywords.
maxItemsPerGeointegerno10Upper limit of trending searches per country. The feed currently lists up to 10 per country (fewer for small countries).
onlyNewSinceLastRunbooleannofalseFor schedules: skip trends this monitor already returned (same country, keyword and start day). Skipped trends are not charged.
monitorNamestringno"default"Name of the seen-trends memory used by 'Only new trends' (stored in the key-value store trends-seen-<name>). Use one name per schedule.
keywordsarrayno[]Search terms to explore (up to 20). Each keyword returns interest over time, interest by region and top + rising related queries. Values are relative (0-100) within each comparison.
keywordsPerComparisonintegerno5Keywords are compared in groups of this size (Google allows at most 5). Use 1 to explore every keyword on its own scale.
timeframestringno"today 12-m"Time range for interest over time, regions and related queries.
customTimeframestringno""Optional "YYYY-MM-DD YYYY-MM-DD" range; overrides Timeframe.
exploreGeostringno""Country (US), region (US-CA) or empty for worldwide. Regions in the output are the next level down (countries, states, ...).
categoryintegerno0Google Trends category id (0 = all categories; e.g. 71 = Food & Drink, 7 = Finance).
propertystringno"web"Which Google search property to measure.

Output example

Trending Now rows look like this, one per trend and country, with the parsed traffic number next to Google's original bucket text:

georankkeywordapproxTrafficapproxTrafficTextstartedAtnewsCounttopNewsTitle
US3slayground20002000+2026-10-20T14:00:00.000Z3The First ‘Slayground’ Trailer Teases Death as a Treat
GB1interest rate200200+2026-10-20T14:10:00.000Z3The Treasury market has been acting weird lately
DE2psg barca500500+2026-10-20T14:10:00.000Z3Fußball: Wird der Champions-League-Knaller verschoben? PSG – Barça
BR2tocantins20002000+2026-10-20T13:30:00.000Z3Os números da pesquisa Real Time Big Data para governo do Tocantins no 2º turno

Pricing

Pay per event: you are charged only for the results you receive, with no subscription. Set a maximum total charge on any run and it stops cleanly at the cap.

Charged forWhenPricePer 1,000Worked example
Trend resultCharged per Trending Now row (keyword, traffic, start time, picture, news articles)$0.0005$0.5010 countries × 10 trends = $0.05; an hourly 'only new' schedule pays only for trends it hasn't returned before
Keyword exploredCharged per keyword whose interest over time, interest by region and related queries were all fetched (every row for it included)$0.003$35 keywords = $0.015 for ~90 timeline rows + regions + 50 related queries each; keywords Google rate-limited are free
Actor Start (platform start fee)Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.00005—One run at 256 MB = $0.0000125

Prices are read from the live Apify Store listing when this page is built. The listing is always authoritative.

Try Google Trends Scraper on Apify. Pay only for the results you get.

Run on Apify →

Use cases

Newsroom and social alerts

Schedule the actor hourly with only-new mode for the countries you cover and push each fresh row to Slack or a CMS. Each alert carries the top news headline and link, so an editor can see why a term is spiking without opening Google.

Content and SEO calendars

Collect a daily snapshot of trending searches for your markets and look for topics that keep reappearing. The news articles attached to each trend give writers a starting point for a timely post.

Ad and campaign timing

Spot sudden interest in a team, product or event in a specific country and adjust bids or creatives while the trend is still rising. Approximate traffic is a bucketed estimate, so treat it as a ranking signal rather than a volume figure.

Keyword comparison for a brief

Add up to 20 keywords to get interest over time, interest by region and rising related queries in one dataset. This part is best-effort and may be cut short by Google's rate limits, but you only pay for keywords that were fully fetched.

How it compares

ActorForge Google TrendsUsing the Trends website by handUnofficial Trends libraries on your own server
Trending searches for many countries in one runYes, 125 countriesOne country at a timePartial, depends on the library
Traffic parsed to a numberYes, plus original textNo, text onlyPartial
News articles per trendYes, title, URL, publisher, pictureYes, on screenPartial
Only-new monitoring for schedulesBuilt in, skipped trends freeNoYou build it
Full Trending Now page with 24/48-hour filtersNo, the feed lists about 10 newest trends per countryYesPartial
Interest over time and related queriesBest-effort, stops on rate limitsYes, reliable for a personBest-effort, same rate limits
Cost$0.50 per 1,000 trends, $3 per 1,000 keywords exploredFree, your timeFree code, your server and maintenance

If you need a handful of keyword comparisons once in a while, the Trends website itself is free and more reliable for a person than any automated call. This actor is the better fit when you want trending searches across many countries on a schedule, as structured data.

Limits and honest notes

FAQ

Is there an official Google Trends API for trending searches?

Google publishes Trending Now as an RSS feed per country, which this actor reads and normalizes. The interest-over-time, region and related-query data uses the same JSON endpoints the Trends website calls, which are rate-limited, so that part is best-effort.

How many trending searches per country does it return?

The official feed currently lists up to about 10 of the newest trends per country, fewer for small countries. You can cap it lower with maxItemsPerGeo. It is not the full Trending Now page with its 24 and 48-hour filters.

Is the traffic number an exact search count?

No. Traffic is Google's bucketed estimate such as 200+, 2K+ or 1M+. The actor parses it to a number (2K+ becomes 2000) so you can sort and filter, and keeps the original text in approxTrafficText.

What happens if Google blocks the keyword explore part?

On a 429, 401/403, CAPTCHA or unusual-traffic page the actor stops the explore part for the rest of the run, delivers what it has and charges nothing for keywords it could not finish. Trending Now from the RSS feed is unaffected. Run smaller keyword lists and try again later.

How do I only get new trends on an hourly schedule?

Set onlyNewSinceLastRun to true and give each schedule its own monitorName. Trends already returned for the same country, keyword and start day are skipped and not charged.

Are the interest values search volumes?

No. They are Google's relative scores from 0 to 100 within each comparison (up to 5 keywords at once), and region values are 0-100 per keyword. Rising related queries show growth percentages, and Breakout means more than +5000%.

Use it from code

Run the actor through the Apify API with the input above.

cURL

curl -X POST "https://api.apify.com/v2/acts/actor-forge~google-trends/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"geos": ["US", "GB", "DE", "BR"], "maxItemsPerGeo": 10, "onlyNewSinceLastRun": true, "monitorName": "newsroom-hourly", "keywords": [], "timeframe": "today 12-m", "property": "web"}'

JavaScript (Node.js)

// Node.js 18+ (built-in fetch). Set APIFY_TOKEN in your environment.
const input = {
  "geos": [
    "US",
    "GB",
    "DE",
    "BR"
  ],
  "maxItemsPerGeo": 10,
  "onlyNewSinceLastRun": true,
  "monitorName": "newsroom-hourly",
  "keywords": [],
  "timeframe": "today 12-m",
  "property": "web"
};

const res = await fetch(
  "https://api.apify.com/v2/acts/actor-forge~google-trends/run-sync-get-dataset-items",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.APIFY_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(input),
  }
);
const items = await res.json();
console.log(items.length, items[0]);

Python

# pip install apify-client   (set APIFY_TOKEN in your environment)
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
    "geos": [
        "US",
        "GB",
        "DE",
        "BR"
    ],
    "maxItemsPerGeo": 10,
    "onlyNewSinceLastRun": True,
    "monitorName": "newsroom-hourly",
    "keywords": [],
    "timeframe": "today 12-m",
    "property": "web"
}

run = client.actor("actor-forge/google-trends").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

The run-sync-get-dataset-items endpoint waits for the run (up to 5 minutes) and returns the dataset rows directly. For longer runs, start the run asynchronously and read the dataset when it finishes, as the Python example does. Replace APIFY_TOKEN with your own token from the Apify console.

Step-by-step guides

How to Track Google Trends Trending Searches by Country

Run the ActorForge Google Trends actor with a list of country codes, schedule it daily with only-new mode, and keep a small pandas history to see…

Related actors

Keyword Suggestions — Google, YouTube, Bing Autocomplete

Bulk keyword suggestions from Google, YouTube, Bing and Baidu autocomplete. Expand each seed with a-z, question words or prepositions for long-tail…

$0.30 per 1,000 · seed expanded

Google Ads Transparency Scraper — Competitor Ads | $0.60/1K

Scrape competitor ads from the Google Ads Transparency Center by domain, advertiser name or ID: format, first/last shown, regions, impressions, ad…

$0.60 per 1,000 · ad result

China Trending Topics — Weibo, Douyin, Baidu Hot Search

Real-time trending topics from China's top five platforms in one dataset: Weibo hot search (微博热搜), Douyin hot list (抖音热榜), Baidu hot search (百度热搜)…

$2 per 1,000 · topic result

App Store & Google Play Scraper — Apps, Charts, Reviews

Scrape Google Play and App Store app details (rating, histogram, installs, price, version, developer, screenshots, similar apps), Apple top charts…

$0.80 per 1,000 · app result

Try Google Trends Scraper on Apify. Pay only for the results you get.

Run on Apify →

More SEO & Marketing Intelligence tools · All actors