Google Trends Scraper & API - Related Queries & Trending Now
Pricing
from $1.05 / 1,000 keyword reports
Google Trends Scraper & API - Related Queries & Trending Now
Google Trends scraper and API alternative: interest over time, interest by country and region, top and rising related queries and topics, peak date and trending now, as plain rows.
Google Trends Scraper gives you Google Trends data for any keyword in one row: interest over time (every point with its period start/end, isPartial and hasData), interest by country or region, related queries (top and rising), plus a ready summary β average interest, peak date and whether the trend is rising or falling. Compare up to 5 keywords on one chart β or any number through a common anchor term β use topic IDs (/m/β¦, /g/β¦), get 4β5 years weekly + 90 days daily + 7 days hourly in one run with an optional versioned stitched series, and pull Trending Now searches for any country. Every row carries a data contract (provenance with parser/schema version, checksum, the request and the window Google resolved).
$0.0015 per keyword report, $0.0005 per Trending Now search. No login, no API key, no start fee. Keywords that fail are free.
Tested head-to-head β 9 October 2026

The same request went to this Actor and to the three most-used Google Trends Actors on the Apify Store (AβC by users in the last 30 days): the keyword "chatgpt", United States, past 12 months.
| This Actor | The three others | |
|---|---|---|
| Time | 4.0 s | 8.6β594 s |
| Interest over time | 53 weekly points | 53 for two of them; one returned the "trending now" list instead of the keyword |
| Interest by region | 51 states | 47 and 51 (+200 cities) |
| Related queries, top + rising | 24 + 18 | 25 + 19 for one, none for the others |
| Cost of this run | $0.0015 β one keyword report | $0.003β0.50 (one bills every data point as a row) |
What is Google Trends Scraper?
Google Trends shows how search interest changes, but has no official API and exports one chart at a time. This Actor calls the same data endpoints the Trends website uses and returns everything for a keyword in one row β for market research, SEO and content planning, product demand checks, seasonality, and AI agents that need to know "is this growing?".
What is in every row
| Field | Meaning |
|---|---|
interestOverTime | Every point of the chart: date, periodStart, periodEnd (exclusive, UTC), label, value (0β100), hasData, isPartial. When Google marks a period hasData:false the value is null with valueAbsentReason (Google itself sends a placeholder 0 there) |
window | The original window: what you asked (requested), what Google resolved (resolved, e.g. 2021-11-09 2026-11-09), granularity (month / week / day / hour / 8-minute / minute), first and last period, number of points, partial, no-data and zero points |
terms | Each term with termType keyword or topic, topicId and Google's topicName / topicType |
comparison | For comparisons: group number, terms in the group, the anchor term |
dataStatus, noDataReason | ok, no_data (Google shows nothing below its volume threshold β not proof of zero interest) or refused |
normalization | What the 0β100 scale is relative to, and that rows are not comparable by number |
provenance | source, officialApi:false, request (terms, geo, time range, resolved window, resolution, category, search type, hl, tz), parserVersion, schemaVersion, collectedAt, observedAt, sourceRecordId, canonicalUrl (the same chart on trends.google.com), checksum (SHA-256 of the data in the row) |
averageInterest, peakDate, trendDirection | Ready summary |
interestByRegion | Countries or regions with their interest (0β100) |
relatedQueries | Top and rising, with Google's values ("Breakout" = +5000%) |
relatedTopics, relatedTopicsStatus, relatedTopicsCoverage | Google withholds related topics from every automated client (see FAQ): by default the value is null and the status says withheld_by_google_for_automated_clients, never an empty "no topics" list. With Related topics β fetch from the rendered page on, the rising topics from Google's page arrive with ok_from_rendered_page, and relatedTopicsCoverage shows how many of Google's total you got |
keyword, geo, timeRange, category, property | What was asked |
Trending rows: title, approxTraffic, publishedAt, news | With Trending Now countries |
How much does it cost?
| Event | Price |
|---|---|
| Keyword report (or comparison of up to 5) | $0.0015 |
| Trending Now search | $0.0005 |
- Interest by region and related queries/topics are included.
- Every extra time window (History + fresh tail, or your own list) is its own Google export and costs one keyword report β e.g. one keyword with History + fresh tail = 4 reports = $0.006.
- Stitched and anchored rows (re-calibration) are free.
- Keywords that fail after retries: $0 (an error row says why).
Bulk export: what 50,000 rows actually cost
This Actor is built for bulk jobs β hundreds of inputs in one run, or a daily schedule. There is no fee per run, no fee per page and no proxy charge: you pay for the rows you keep.
| Job | This Actor | Most-used Actor in this category |
|---|---|---|
| 10,000 keyword reports | $15 | $30 |
| 50,000 keyword reports | $75 | $150 |
Checked on the Apify Store on 23 September 2026 against the Actor with the most monthly users in this category ($0.003 per dataset item). Some Actors here ask less per row β this table compares against the one buyers actually use most.
How to use it in three steps
- Type keywords β one per line. Switch on Compare to put up to 5 on one chart.
- Pick Country / region, Time range, Category and Search type (web, YouTube, news, images, shopping).
- Press Start, then download JSON, CSV or Excel β or call the run from the API, n8n, Make, Zapier or an AI agent.
History windows, stitching and comparing more than 5 terms
Google scales every export to 0β100 against the peak of that window, place, category, search type and set of terms. Two exports can't be glued by their numbers, and the Actor never does that silently:
- Original windows are always kept. With History + fresh tail a keyword gets its main report plus three
windowrows:today 5-y(weekly, ~261 points β 5 years),today 3-m(daily, ~90 points) andnow 7-d(hourly, ~168 points). Add any other window in Extra time windows (today 1-m,now 1-dfor 8-minute points,2024-01-01 2024-06-30, β¦). - Stitched series (optional, free row
type: "stitched") β algorithmgt-overlap-median-ratioversion 1.0.0: windows are sorted longest first; the longest is the reference (factor 1). Each next window is calibrated against the finest already-calibrated window it overlaps: for every complete, non-partial, non-zero coarse period (e.g. a week) the finer points that fill it completely (its 7 days) are averaged, and the ratio reference value / window value is taken. The factor is the median of those ratios;pairsandrelativeSpread(median absolute deviation / factor) show how solid it is. Fewer than 3 pairs β the window isfailedwith a reason and is not scaled. The series uses the coarse window up to the first coarse boundary inside a finer window, then the finer one; each point keepssourceWindow,rawValue(Google's number) andfactor. Stitched values are on the reference scale and can exceed 100. - Common anchor (comparison of more than 5 terms) β algorithm
gt-common-anchor-ratioversion 1.0.0: with Compare keywords and Common anchor term, terms go 4 per Google chart plus the anchor; every group stays as its owncomparisonrow, and a freecomparison_anchoredrow scales group g by Ξ£ anchor(group 0) / Ξ£ anchor(group g) over complete periods. A group where the anchor averages under 5 gets a warning (rounding error is large). - Both algorithms are unit-tested (
node --test test/in the source: synthetic search volume β Google-style rounded windows β recovered ratios within 5β8 %, refusal without overlap, zeros and partial points ignored, anchor with zero overlap refused).
A 0 on a Google chart means "below Google's reporting threshold relative to this window's peak" β for a rare term it is
not proof that nobody searched. A period Google itself flags as having no data comes back as null.
β¬οΈ Input
{"keywords": ["bali visa", "digital nomad visa"],"geo": "","timeRange": "today 12-m","includeRegions": true,"includeRelated": true,"trendingNowCountries": ["ID"]}
β¬οΈ Output
Keyword report (trimmed β the real row has every week and every country):
{"type": "keyword","keyword": "bali visa","keywords": ["bali visa"],"geo": "Worldwide","timeRange": "today 12-m","category": 0,"property": "web","interestOverTime": [{"date": "2026-11-01","periodStart": "2026-11-01T00:00:00.000Z","periodEnd": "2026-11-08T00:00:00.000Z","label": "Nov 1 β 7, 2026","value": 45,"hasData": true,"isPartial": false},{"date": "2026-11-08","periodStart": "2026-11-08T00:00:00.000Z","periodEnd": "2026-11-15T00:00:00.000Z","label": "Nov 8 β 14, 2026","value": 48,"hasData": true,"isPartial": true}],"window": {"requested": "today 12-m","resolved": "2025-11-09 2026-11-09","resolution": "WEEK","granularity": "week","start": "2025-11-09T00:00:00.000Z","end": "2026-11-15T00:00:00.000Z","points": 53,"partialPoints": 1,"noDataPoints": 0,"zeroPoints": 0},"averages": [],"interestByRegion": [{"geoCode": "AU","name": "Australia","value": 100},{"geoCode": "SG","name": "Singapore","value": 45},{"geoCode": "NZ","name": "New Zealand","value": 42}],"relatedQueries": {"bali visa": {"top": [{"query": "indonesia bali visa","value": 100,"formattedValue": "100"},{"query": "indonesia visa","value": 99,"formattedValue": "99"},{"query": "indonesia","value": 96,"formattedValue": "96"}],"rising": [{"query": "bali visa news","value": 250,"formattedValue": "+250%"},{"query": "bali visa requirements","value": 130,"formattedValue": "+130%"},{"query": "bali visa fee","value": 110,"formattedValue": "+110%"}]}},"relatedTopics": {"bali visa": null},"relatedTopicsStatus": {"bali visa": "withheld_by_google_for_automated_clients"},"dataStatus": "ok","provenance": {"source": "google_trends_web","officialApi": false,"googleUserType": "USER_TYPE_SCRAPER","sourceRecordId": "ed5c79a53167b393","canonicalUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=bali+visa&hl=en-US","request": { "terms": ["bali visa"], "geo": "Worldwide", "timeRange": "today 12-m", "resolvedTime": "2025-11-09 2026-11-09", "resolution": "WEEK", "category": 0, "property": "web", "hl": "en-US", "tz": 0 },"parserVersion": "2.0.0","schemaVersion": "2.0","collectedAt": "2026-11-09T14:12:17.204Z","observedAt": "2026-11-09T14:12:17.204Z","availableAt": null,"availableAtReason": "google_trends_publishes_no_data_timestamp","checksum": "sha256:c9374f16β¦"},"scrapedAt": "2026-11-09T14:12:17.204Z","averageInterest": 79,"peakDate": "2026-08-09","trendDirection": "flat"}
Trending Now row:
{"type": "trending","country": "ID","position": 1,"title": "michael carrick","approxTraffic": "100+","approxTrafficNumber": 100,"publishedAt": "2026-09-22T22:20:00.000Z","picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQUoZ6OQMitoZxzSyW_xDCaUepPLpW01ecYQhtBZzoVzoYOI4M-BwwP9qlFsZ0","pictureSource": "detiksport","news": [{"title": "Bukti Pemain-pemain MU Malas Lari","url": "https://sport.detik.com/sepakbola/liga-inggris/d-8673718/bukti-pemain-pemain-mu-malas-lari","source": "detiksport","picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQUoZ6OQMitoZxzSyW_xDCaUepPLpW01ecYQhtBZzoVzoYOI4M-BwwP9qlFsZ0"}],"scrapedAt": "2026-09-23T12:44:54.963Z"}
Use cases
Market and product research
Is demand for a product, service or destination growing β and where?
SEO and content planning
Rising related queries are tomorrow's keywords.
Seasonality
Five years of weekly interest to plan campaigns and stock.
AI agents
"Is interest in X growing in Indonesia?" answered with data through the Apify MCP server.
Integrations
Every run is available through the Apify API, and the Actor works out of the box with n8n, Make, Zapier, Google Sheets, LangChain and the Apify MCP server.
FAQ
Are the values search volumes? No β Google Trends gives relative interest (0β100, where 100 is the peak in the chosen place and time). Terms inside one comparison share one scale; different rows do not (use the stitched or anchored rows, which say which algorithm and version produced them).
Is this the official Google Trends API? No. Google's official Trends API is in alpha and invite-only. This Actor reads the public JSON the Trends website itself loads (provenance.officialApi: false).
Related topics β Google withholds them from API clients (USER_TYPE_SCRAPER) but still renders them on the page. Turn on Related topics β fetch from the rendered page (topicsViaGoogle) and the Actor fetches that rendered page per keyword (in a comparison β per compared term), so relatedTopics arrives with relatedTopicsStatus: ok_from_rendered_page: the rising topics the page shows (usually 5, each with entity id /m/β¦ or /g/β¦ and +% or Breakout). relatedTopicsCoverage tells you how many topics Google has in total (e.g. 5 of 24) β the rest and the Top list are only shown after clicks on Google's page, so they are not delivered. The page is fetched in parallel with the report and retried up to 3 times if it fails; you pay one related-topics event per term only when topics actually arrived. If Google shows "not enough data" for the keyword, the status says not_enough_data_on_google (not charged); if the page could not be fetched after 3 attempts, rendered_page_unavailable_try_again (not charged).
Without that option: Google's website sends a reCAPTCHA v3 token with each request and Google labels the request USER_TYPE_LEGIT_USER; every automated request is labelled USER_TYPE_SCRAPER, and for those Google returns the related-topics list empty while queries, timeline and regions stay complete. We do not forge that token, so the Actor tells you the topics were withheld (relatedTopicsStatus, provenance.googleUserType) instead of pretending there are none. (Google's rate-limit page β βError 429β, βunusual trafficβ β carries no captcha at all; when it appears the Actor counts it (http.blocked), pauses and moves to a residential address, and if a page ever does carry a real reCAPTCHA it is solved once through Capsolver and retried.) If Google ever sends them, they appear with mid, title and type.
Why do some keywords have empty related queries or no points at all? Google shows them only when there is enough search volume. An empty chart comes back with dataStatus: "no_data" β that is not proof of zero interest.
Can I use a topic instead of a search term? Yes β put the topic ID (/m/027lnzs for iPhone, /g/β¦) in Keywords. A topic counts all searches about the entity in any language; terms[].topicName shows Google's name for it.
What does "Breakout" mean? A rising query that grew by more than 5000%.
Google Trends refused a request? Google limits bursts. The Actor retries on fresh addresses; keywords that still fail are free β run them again a few minutes later.
Is this legal? The Actor reads public, aggregated Google Trends data. No personal data is involved.