Google Trends Scraper
Pricing
from $0.99 / 1,000 results
Google Trends Scraper
Google Trends Scraper that fetches keyword interest, regional data, related topics, and rising queries from Google Trends, so you can track search demand and catch trends before they peak.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract keyword interest by region from Google Trends. For each keyword you enter, the actor returns a flat list of countries with their indexed search interest scores. Good for SEO research, market analysis, and finding which countries are driving demand for any topic.
What it collects
For each keyword, the actor returns one row per country containing:
- geoCode — ISO country code (e.g.
US,IN,DE) - geoName — Full country name
- value — Search interest indexed from 0 to 100 (100 = peak interest)
- formattedValue — Same value as a formatted string
- hasData — Whether Google had enough data for this country
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | string list | Yes | — | Keywords to analyze. Each keyword costs 20 credits. |
geo | select | No | Worldwide | Filter results to a specific country |
timeRange | select | No | Past 12 months | Time period for the data |
gprop | select | No | Web Search | Search type |
maxRegions | integer | No | 0 (all) | Limit rows returned per keyword. 0 returns all countries. |
maxItems | integer | No | 100 | Max keywords to process per run |
requestTimeoutSecs | integer | No | 30 | Per-request timeout in seconds |
Time range options
| Value | Label |
|---|---|
now 1-H | Past hour |
now 4-H | Past 4 hours |
now 1-d | Past day |
now 7-d | Past 7 days |
today 1-m | Past 30 days |
today 3-m | Past 90 days |
today 12-m | Past 12 months |
today 5-y | Past 5 years |
all | Since 2004 |
Search type options
| Value | Label |
|---|---|
| (blank) | Web Search |
images | Image Search |
news | News Search |
youtube | YouTube Search |
froogle | Google Shopping |
Geographic filter options
| Code | Country | Code | Country |
|---|---|---|---|
| (blank) | Worldwide | MX | Mexico |
US | United States | IT | Italy |
GB | United Kingdom | ES | Spain |
CA | Canada | NL | Netherlands |
AU | Australia | SG | Singapore |
IN | India | ZA | South Africa |
DE | Germany | NG | Nigeria |
FR | France | PH | Philippines |
BR | Brazil | ID | Indonesia |
JP | Japan | PK | Pakistan |
KR | South Korea | BD | Bangladesh |
TR | Turkey | SA | Saudi Arabia |
AE | United Arab Emirates | AR | Argentina |
CO | Colombia | PL | Poland |
SE | Sweden | NO | Norway |
DK | Denmark | FI | Finland |
AT | Austria | CH | Switzerland |
PT | Portugal | MY | Malaysia |
TH | Thailand | VN | Vietnam |
EG | Egypt | NZ | New Zealand |
RU | Russia | UA | Ukraine |
HK | Hong Kong | TW | Taiwan |
CN | China | IL | Israel |
GR | Greece | CZ | Czech Republic |
HU | Hungary | RO | Romania |
BE | Belgium |
Example input
{"keywords": ["python", "javascript", "typescript"],"geo": "","timeRange": "today 12-m","gprop": "","maxRegions": 10}
Output
Each run produces one row per keyword per country. For 3 keywords with worldwide data, you will typically get 150–250 rows total.
Example rows for keyword "python":
[{"keyword": "python","geo": "","timeRange": "today 12-m","gprop": "","geoCode": "CN","geoName": "China","value": 100,"formattedValue": "100","hasData": true,"scrapedAt": "2026-05-18T11:09:17.754800+00:00","error": null},{"keyword": "python","geo": "","timeRange": "today 12-m","gprop": "","geoCode": "IN","geoName": "India","value": 87,"formattedValue": "87","hasData": true,"scrapedAt": "2026-05-18T11:09:17.754800+00:00","error": null}]
Output field reference
| Field | Type | Description |
|---|---|---|
keyword | string | The search term analyzed |
geo | string | Country filter applied (empty = worldwide) |
timeRange | string | Time period used |
gprop | string | Search type used |
geoCode | string | ISO country or region code |
geoName | string | Full country or region name |
value | integer | Search interest 0–100 (100 = highest point in period) |
formattedValue | string | Value as a formatted string |
hasData | boolean | Whether Google had sufficient data for this region |
scrapedAt | string | UTC timestamp when the record was collected |
error | string/null | Error message if the keyword failed, otherwise null |
How to run
Via Apify Console
- Open the actor and go to the Input tab
- Type one or more keywords into the Keywords field
- Choose a country filter if needed (leave blank for worldwide)
- Set time range and search type
- Optionally set Max regions per keyword to limit output rows
- Click Start
- Download results as JSON, CSV, or Excel from the Dataset tab
Use cases
- SEO geo-targeting — find which countries search for your target keyword most, then prioritize those markets
- Market expansion research — compare demand for a product category across 50+ countries before entering a new market
- Content localization — see where a topic is trending to decide which language versions to build first
- Competitor keyword tracking — monitor regional demand for competitor brand names over time
- YouTube channel strategy — switch search type to YouTube to find where your video topics have the strongest audience
- E-commerce demand mapping — use Google Shopping search type to find where product demand is highest
Scheduling
Use Apify's built-in scheduler to run the actor on a recurring schedule. Weekly runs let you track how regional interest shifts over time.
- Open the actor and configure your keyword list
- Click Schedule in the top menu
- Set a cron expression — for example
0 9 * * 1runs every Monday at 9am - Each run adds new rows to the dataset so you can see trends across weeks
Integrations
- Google Sheets — push results to a spreadsheet automatically after each run
- Slack — get notified when a run finishes
- Make / Zapier — route data to any downstream tool
- Webhook — send results to your own endpoint on completion
Frequently asked questions
What does a value of 100 mean? It means that country had the highest search interest for the keyword within the selected time period and region filter. All other countries are scored relative to that peak. It is not an absolute search volume number.
Why do some countries show value 0 or hasData: false? Google does not return data for countries where search volume for the keyword is too low to be statistically reliable. This is normal for niche keywords or small markets.
Can I get sub-region data (states, cities)? Not in the current version. The actor returns country-level data. Sub-region resolution requires a separate widget type.
Can I run multiple keywords at once? Yes. Add all keywords to the list. They are processed one at a time. Each costs 20 credits regardless of how many regions are returned.
Why does the geo filter change the results?
When you set geo to a specific country, Google Trends returns sub-region data for that country (states, provinces) instead of country-level data. For worldwide comparison, leave it blank.
How many rows will I get per keyword?
Worldwide with no maxRegions limit: typically 50–250 rows depending on the keyword. Use maxRegions to cap this.
Limitations
- Values are relative (0–100), not absolute search volumes
- Keywords with very low global search volume may return no regional data
- Google Trends data has a 1–3 day lag for recent periods
- Hourly data is only available for time ranges of 7 days or less