Google Search Trends API Scraper - JSON Trends Data
Pricing
from $5.00 / 1,000 keyword reports
Google Search Trends API Scraper - JSON Trends Data
A clean JSON API for Google search trends: give it keywords and get interest over time, interest by region, and related and rising queries as structured rows - ready for a pipeline, a dashboard or a model. Run it on a schedule; re-runs bill only what is new. No proxy setup. Failures are free.
| Google Trends Suite • 6 Actors, one codebase, one keyword-report billed once | ||
| Google Trends Scraper Interest, Regions, Related & Trending | Google Trends Interest by Region Scraper API | Google Trends Related Queries Scraper API |
| Google Trends Compare Keywords Scraper API | Google Trending Searches Scraper API Trending Now | Google Search Trends API Scraper ➤ You are here |
More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Career Site & ATS Jobs Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · Trustpilot Review Intelligence Suite · App Store & Google Play Reviews Suite · Etsy Research Suite · YouTube Comments Intelligence Suite · Telegram Channel Intelligence Suite · Business Reviews Suite · Amazon Product Data Suite · Nordic Marketplaces Suite · Google Sheets Suite · TikTok Suite · Snapchat Suite · LinkedIn Public Data Suite · Instagram Suite · Contact Validation Suite · Google Maps Suite · X / Twitter
| The Google Trends suite — 7 Actors, one engine | ||
A clean JSON API for Google search trends — keywords in, structured rows out: interest over time, interest by region, and related and rising queries, ready for a pipeline.
A run that finds nothing costs nothing. There is no run-start fee, error and coverage rows are free, and on a schedule a re-run bills only what is new.
⭐ Why this one
If you want Google Trends as data, not a dashboard, this is the shape you want it in: pass keywords, get back structured JSON rows with the interest-over-time series, the region breakdown, and the top and rising related queries — every field named, dates in UTC, values on Google's 0–100 scale.
It runs headless and on a schedule, re-bills only what is new, and needs no proxy setup on your side. Point a pipeline, a notebook or a model at it and stop maintaining a brittle scraper of your own.
🎯 Use cases
- Feed a data pipeline with search-interest rows on a fixed schedule.
- Back a dashboard with clean, typed Google Trends data.
- Give a model structured trend signals as a tool or a dataset.
- Replace a home-grown scraper you are tired of fixing every few months.
🚀 Recipes
Keywords in, JSON out
The default: interest, regions and related queries for each keyword.
{"keywords": ["chatgpt","gemini"],"geo": "US","timeRange": "today 12-m"}
Just the timeline, on a schedule
Turn the other sections off for a lean daily series.
{"keywords": ["s&p 500"],"includeRegions": false,"includeRelatedQueries": false,"timeRange": "now 7-d"}
A custom date range
Any window from 2004 to today.
{"keywords": ["world cup"],"timeRange": "custom","customRange": "2022-01-01 2022-12-31"}
📥 Input
| Field | What it does |
|---|---|
keywords | The search terms to report on, one per line. A Google topic id such as /m/05p0rrx works too, for a concept rather than a phrase. |
compareKeywords | Put keywords on one shared 0–100 scale, in groups of up to five, so their values are directly comparable. |
geo / geos | Worldwide by default, or a country like US, a subregion like US-CA, or several at once — each is its own report. |
timeRange | Past hour to past 5 years, all of 2004–present, or your own custom date range. |
property | Web, Images, News, YouTube or Shopping search. |
regionResolution | Break interest down by country, subregion, metro area or city. |
includeRegions / includeRelatedQueries / includeRelatedTopics | Turn sections on or off — off is faster, and the price of a report is the same either way. |
explodeRows | Also emit one free flat row per timeline point, region and related query, for a tidy CSV. |
onlyNewSinceLastRun / stateName | For a schedule: a report already billed in the last 12 hours is skipped, so a daily run re-bills by design and a re-run within the window is free. |
maxReports / maxCostUsd | Hard ceilings on rows and on spend. |
No proxy settings. Unblocking is handled and priced in — you never configure infrastructure.
📤 Output
| Row | What it is |
|---|---|
keyword-report | The billed row. One keyword in one place over one time range, with the interest-over-time series (peak, average, latest, trend direction), interest by region, top and rising related queries, and related topics where Google provides them. |
timeline-point / region / related-query / related-topic | Free. Flat child rows, only when explodeRows is on. |
coverage | Free. Per report: which sections arrived, how many regions had data, and what ended the job. |
error | Free. Anything that could not be read, with a stable reason. A keyword with no data is a free row, never a charge. |
Every run also ends with a free summary row: counts, the estimated spend, and why it stopped. Export any run to CSV, Excel, JSON, XML or HTML from the Storage tab or the API — the dataset ships with ready-made views (Reports, Trending Now, Timeline, Regions and Related).
What every report carries
One keyword-report row bundles all of this, so you never join four datasets together:
- Interest over time — the full series on a 0–100 scale at the bucket size Google chose for your window (hour, day, week or month), plus the peak and when it happened, the average, the latest value, and a trend direction (rising, falling or flat, measured as the last quarter of the series against the first).
- Interest by region — one entry per place with data, ranked highest first, at your chosen resolution (country, subregion, metro or city). City rows carry coordinates.
- Related queries — the top searches on a 0–100 scale and the rising ones by growth, with genuine breakouts flagged.
- Related topics — Knowledge Graph entities where Google provides them.
- Context — the exact Google Trends page URL for the query, the property and category, the resolved time span, and which of the four sections actually arrived.
📊 Good to know about Google Trends
A few things about the data itself — the kind of detail most scrapers leave you to discover on your own bill:
- The numbers are relative, on a 0–100 scale. A value is interest against the peak of the same series, not a count of searches. It only means something next to another value on the same scale — which is exactly why the compare mode, which puts several keywords on one shared scale, is worth having.
- The most recent bucket is partial. The latest point of any live series is still being collected and will move; it is flagged
isPartialso you can drop or discount it rather than mistake it for a drop in interest. - City-level data is sparse. Google reports city interest for only a handful of places for most keywords. This leaves the empty ones out and tells you how many had data, instead of padding the list with zeros.
- Related topics are sparse. The related topics section was empty in every session we measured. It is off by default here, and when it is empty the report says so rather than inventing rows — you are never billed for a section Google did not return.
💰 Pricing
Pay per keyword report. Failures are free and there is no run-start fee.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| keyword report | $10.00 | $8.30 | $6.30 | $5.00 | $4.70 | $4.30 |
| trending term | $1.00 | $0.83 | $0.63 | $0.50 | $0.47 | $0.43 |
Prices are per 1,000. Your tier is your Apify plan. On the Gold plan, 1,000 keyword reports cost $5.00. A keyword report with no data costs $0.00, and on a schedule an unchanged feed re-bills nothing.
⏰ Run it on a schedule
Set a daily or weekly cron and leave only new since the last run on. Interest-over-time reports refresh each day by design (the window has moved), while a monitoring feed pays only for what changed. That is what makes a standing schedule rational instead of a bill you cancel.
Cron: 0 7 * * * (every morning at 07:00).
❓ FAQ
Is there a Google Trends API?
Google does not publish an official public API for this data. This Actor is the practical equivalent: give it keywords and it returns clean, structured rows you can pull from the Apify API or export to a file — no account on Google's side, no infrastructure to run.
How do I export Google Trends data to CSV, Excel or JSON?
Every run's dataset exports to CSV, Excel, JSON, XML or HTML from the Storage tab, or through the Apify API. Turn on the flat-rows option and every timeline point, region and related query becomes its own line, ready for a spreadsheet.
Why do Google Trends numbers change between runs?
Google Trends values are relative, not absolute. Each series is scaled 0–100 against its own peak over the window you asked for, so the same keyword reads differently over "past 7 days" than over "past 12 months", and today's live window differs from yesterday's. The numbers are an index of relative interest, not a count of searches — so a value only means something next to another value on the same scale.
Can I compare more than five keywords?
Google's shared-scale comparison holds at most five keywords at once. Give this more than five with compare mode on and it splits them into comparable groups of five automatically; across groups the scales differ, exactly as Google’s own tool works.
How often does Google Trends data update?
Google refreshes interest-over-time data periodically — more often for the shortest "past hour" and "past day" windows than for multi-year ones; see Google's own Trends help for the current cadence. A daily schedule keeps a series current, and the most recent bucket is always marked partial because it is still filling in.
What time zone are the timestamps in?
Every timestamp — each timeline bucket and the fetch time — is a UTC ISO timestamp, so results line up across countries without any conversion on your side.
Can I get absolute search volume numbers?
Google Trends is an index of relative interest, not a count of searches, so exact volumes are not part of it. If you need absolute numbers, use the interest curve for the shape and pair it with a keyword-volume source for the magnitude.
Do I need a proxy or a Google account?
No. Everything is handled for you and priced into the per-keyword report fee. There is no proxy field to configure and no login anywhere.
🛟 Support
Something not working, or a signal you want added? Open an issue on the Issues tab — it is read and answered. If this saved you time, a rating on the listing helps more than you would think.
Unofficial and not affiliated with, endorsed by or sponsored by Google. It reads only publicly available Google Trends data.
Looking for the full toolkit? → Google Trends Scraper
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/google-search-trends-api-scraper; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/google-search-trends-api-scraper and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/google-search-trends-api-scraper","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/google-search-trends-api-scraper as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~google-search-trends-api-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/google-search-trends-api-scraper").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/google-search-trends-api-scraper').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/google-search-trends-api-scraper. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.
Run it without configuring anything — Get Google search trends as JSON, a ready-made example you can start as-is or copy.
Use cases
- Every Trends signal in one report. Interest over time, interest by region and city, and related and rising queries for a keyword — bundled into one row, not four datasets to join.
- Compare up to five keywords on one scale. Google Trends is relative; measured together, the numbers are actually comparable instead of five incomparable charts.
- Catch what is trending now, by country. Trending Now with approximate volume, growth, category and news — on an hourly schedule, billed only for new trends.
- Failures are free. A keyword with no data is a free row that says so, never an invented zero and never a charge; there is no run-start fee.
Run it on a schedule
A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per keyword-report delivered, and the FAQ below says exactly what a scheduled run that finds nothing new costs.
FAQ
Is there a Google Trends API?
Google does not publish an official public API for this data. This suite is the practical equivalent: pass keywords or countries and get clean, structured rows you can pull from the Apify API or export to a file, with no Google account and no infrastructure to run.
Why do Google Trends numbers change between runs?
Google Trends values are relative, scaled 0-100 against the peak of each series over the window you asked for. The same keyword reads differently over "past 7 days" than over "past 12 months", and the latest bucket is always partial because it is still being collected. The numbers are an index of relative interest, not a count of searches.
How do I export Google Trends data to CSV or JSON?
Every run's dataset exports to CSV, Excel, JSON, XML or HTML from the Storage tab or the Apify API. Turn on the flat-rows option and every timeline point, region and related query becomes its own line, ready for a spreadsheet.
Do I need a proxy or a Google account?
No. Unblocking is handled and priced into the per-report fee. There is no proxy field to configure anywhere in the suite and no login on Google's side.
Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.