Google Trends Scraper: Interest, Regions and Related Queries
This Actor returns Google Trends data as JSON: interest over time, interest by region, related queries and topics, and searches trending now in a country, for single terms or comparisons of up to 5. It is for SEO, content and market researchers who track demand for topics over time.
Main price: $1.00 per 1,000 results, same on every Apify plan.
What you can do with it
- Track search interest in a term over time on a schedule.
- Compare up to 5 terms on one scale.
- Find rising and breakout related queries for content ideas.
- Keep a daily log of what is trending in a country.
What you get
Results come as rows in an Apify dataset, which you can export as JSON, CSV or Excel or read over the API. These are the main fields:
| Field | Example | Meaning |
|---|---|---|
type | interestOverTime | interestOverTime, interestByRegion, relatedQueries, relatedTopics or trendingNow |
terms | bitcoin | Terms in the group |
points | [{ date, values, isPartial }] | Line chart points, 0 to 100 |
regions | [{ geoCode: US-KS, values }] | Interest by region |
top, rising | [{ query, value, isBreakout }] | Related queries |
trafficApprox | 200000 | Trending now: search volume lower bound |
Pricing
This Actor is pay per event, with one price for every Apify plan, the free plan included. Prices are per 1,000 events.
| Event | What is charged | Price per 1,000 |
|---|---|---|
| Result | One dataset row: one chart, one related list or one trending search | $1.00 |
No run start fee. Prices come from the Apify Store and can change; the Actor's Apify page always shows the current ones. Platform usage is billed through your Apify account.
Run it from code
Create an API token in Apify Console (Settings, API and Integrations) and replace YOUR_APIFY_TOKEN. This call starts a run with a small input and returns the rows when it finishes. Synchronous calls suit small inputs; for big jobs, start a run and read the dataset later.
curl
curl -X POST "https://api.apify.com/v2/acts/apisamurai~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": [
"bitcoin",
"chatgpt, gemini"
]
}'Python (pip install apify-client)
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchTerms": ["bitcoin", "chatgpt, gemini"],
}
# Start the Actor and wait for it to finish.
run = client.actor("apisamurai/google-trends-scraper").call(run_input=run_input)
# Read the results from the run's default dataset.
items = client.dataset(run.default_dataset_id).list_items().items
for item in items:
print(item)JavaScript (npm install apify-client)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
searchTerms: ['bitcoin', 'chatgpt, gemini'],
};
// Start the Actor and wait for it to finish.
const run = await client.actor('apisamurai/google-trends-scraper').call(input);
// Read the results from the run's default dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Client calls follow the Python and JavaScript client docs. The full input reference is on the Actor's Apify page.
FAQ
- Why are values between 0 and 100?
- Google Trends never shows absolute counts. 100 is the peak for the chosen terms, location and time. Terms on one line share one scale.
- What happens when Google rate-limits?
- The request is retried from a fresh residential IP, up to 6 times, and refused charts get slower retry rounds at the end of the run. Anything still missing is listed in the SUMMARY record with the reason.
- What counts as one result?
- One dataset row: one chart for one term group, one related list for one term, or one trending search.
- What is not charged?
- Data that could not be fetched.
- Where do I report a problem?
- Email hello@apisamurai.com, or open an issue on the Actor's Apify page.