Google Trends Scraper — Reliable, No Charge for Failures
Pricing
from $1.40 / 1,000 keyword results
Google Trends Scraper — Reliable, No Charge for Failures
Google Trends interest over time, interest by region, and related queries/topics for many keywords and countries. Automatic IP rotation on rate limits; failed keywords are never charged.
Scrape Google Trends data (interest over time, interest by region, related queries and related topics) for as many keywords and countries as you like, in one run, without the Google Trends API or pytrends. Export to JSON, CSV, Excel or Google Sheets, or call it from your code or AI agent:
- 📈 Interest over time: the full 0–100 timeline, plus the average and peak, ready for charts.
- 🗺️ Interest by region: states, regions or countries, sorted by interest.
- 🔍 Related queries and topics: both "top" and "rising" (breakout) lists.
- ⚖️ Comparison mode: up to 5 keywords on one shared scale, exactly like the comparison view on trends.google.com.
- 🎬 Search types: web, YouTube, News, Images or Google Shopping.
Why this one?
Google Trends rate-limits scrapers aggressively, and that's why many Trends Actors fail a large share of their runs. This Actor:
- Rotates to a fresh IP and session automatically when Google returns a rate limit (HTTP 429), with exponential backoff.
- Never charges you for failed keywords. If a keyword still fails after all retries, you get an
errorrow for free and are not billed. - Is cheap and predictable: a flat price per keyword result, whatever the timeline length or number of regions.
Input example
{"keywords": ["electric car", "heat pump", "solar panels"],"geos": ["US", "GB", "DE"],"timeframe": "past_12_months","compareKeywords": false,"property": "web"}
This gives 9 results (3 keywords × 3 countries).
Output example (shortened)
{"keyword": "heat pump","geo": "GB","timeframe": "today 12-m","averageInterest": 61.4,"peak": {"date": "Jan 12 – 18, 2026", "value": 100},"interestOverTime": [{"time": 1729987200, "date": "Oct 27 – Nov 2, 2025", "value": 48, "isPartial": false}],"interestByRegion": [{"geoCode": "GB-SCT", "geoName": "Scotland", "value": 100}],"relatedQueries": {"top": [{"query": "heat pump grant", "value": 100}],"rising": [{"query": "heat pump grant 2026", "value": 450, "formattedValue": "+450%"}]},"relatedTopics": {"top": [], "rising": []},"comparedWith": []}
Pricing
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Keyword result (one keyword × one region, all sections included) | $0.002 (less on Bronze/Silver/Gold plans) |
| Failed keyword | free |
100 keywords × 1 country costs $0.20. Duplicate keywords or regions in the input are scraped and charged only once. Set a maximum charge on the run and the Actor stops cleanly when it is reached.
Tips
- Market research: run the same keywords across 10 countries to see where demand is growing.
- Content and SEO: the "rising" related queries are early signals for new topics.
- Monitoring: schedule the Actor weekly with
past_7_daysand export to Google Sheets. - AI agents: works via the Apify MCP server, so your agent can call it directly.
- Values are relative (0–100) within each result. Turn on
compareKeywordsto put keywords on the same scale.
Limits
- Google Trends shows relative interest (0–100), not search volumes. Very rare keywords may return an all-zero timeline and empty region/related lists; that is what Google shows too.
- Region and related lists are as long as Google returns them. Nothing is cut off by the Actor.
- Under heavy rate limiting a keyword can still fail after all retries. It then appears as a free
errorrow, and you can simply re-run those keywords. - A custom
startDatemust be beforeendDate(formatYYYY-MM-DD); otherwise the run stops with a clear error before anything is charged.
How to use Google Trends Scraper
- Add your keywords (one result per keyword and region).
- Pick countries/regions (or leave WORLDWIDE) and a time range.
- Choose the sections you need: interest over time, by region, related queries/topics.
- Click Start, then download the results as JSON, CSV or Excel, or send them to Google Sheets.
Use it from code (API)
Run it from Python with the official client (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("fjordlabs/google-trends").call(run_input={'keywords': ['electric car', 'heat pump'], 'geos': ['US', 'DE'], 'timeframe': 'past_12_months'})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Or with one HTTP call that returns the results directly:
curl -X POST "https://api.apify.com/v2/acts/fjordlabs~google-trends/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" -d '{"keywords": ["electric car", "heat pump"], "geos": ["US", "DE"], "timeframe": "past_12_months"}'
It also works with Make, Zapier, n8n, Google Sheets and webhooks through Apify's integrations.
Use with AI agents (MCP)
Agents can call this Actor as a tool through Apify's MCP server (mcp.apify.com). Add fjordlabs/google-trends to the server's Actors. Results are clean JSON with a small default size, so they fit well in an agent's context.
FAQ
Why use this instead of the official Google Trends Scraper? It retries with fresh IPs when Google rate-limits, and a keyword that still fails is free. You only pay for results you get.
Are the values absolute search volumes?
No. Google Trends gives relative interest (0–100) within each result. Turn on compareKeywords to put up to 5 keywords on one shared scale.
Can I monitor keywords automatically?
Yes. Create a schedule in Apify (for example weekly with past_7_days) and connect Google Sheets, Slack or a webhook.
Is scraping Google Trends allowed? It collects public, aggregated data only, no personal data. Check that your own use follows Google's terms.
Am I charged for errors? No. Rows that fail are never charged; you only pay for results.