Google Trends Scraper & API - Related Queries & Trending Now avatar

Google Trends Scraper & API - Related Queries & Trending Now

Pricing

from $1.05 / 1,000 keyword reports

Go to Apify Store
Google Trends Scraper & API - Related Queries & Trending Now

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.

Pricing

from $1.05 / 1,000 keyword reports

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

14

Monthly active users

8 hours ago

Last modified

Categories

Features

Limited permissions

Share

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

Google Trends scrapers tested head-to-head on 9 October 2026: full keyword report in 4 seconds for $0.0015

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 ActorThe three others
Time4.0 s8.6–594 s
Interest over time53 weekly points53 for two of them; one returned the "trending now" list instead of the keyword
Interest by region51 states47 and 51 (+200 cities)
Related queries, top + rising24 + 1825 + 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)

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

FieldMeaning
interestOverTimeEvery 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)
windowThe 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
termsEach term with termType keyword or topic, topicId and Google's topicName / topicType
comparisonFor comparisons: group number, terms in the group, the anchor term
dataStatus, noDataReasonok, no_data (Google shows nothing below its volume threshold β€” not proof of zero interest) or refused
normalizationWhat the 0–100 scale is relative to, and that rows are not comparable by number
provenancesource, 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, trendDirectionReady summary
interestByRegionCountries or regions with their interest (0–100)
relatedQueriesTop and rising, with Google's values ("Breakout" = +5000%)
relatedTopics, relatedTopicsStatus, relatedTopicsCoverageGoogle 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, propertyWhat was asked
Trending rows: title, approxTraffic, publishedAt, newsWith Trending Now countries

How much does it cost?

EventPrice
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.

JobThis ActorMost-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

  1. Type keywords β€” one per line. Switch on Compare to put up to 5 on one chart.
  2. Pick Country / region, Time range, Category and Search type (web, YouTube, news, images, shopping).
  3. 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 window rows: today 5-y (weekly, ~261 points β‰ˆ 5 years), today 3-m (daily, ~90 points) and now 7-d (hourly, ~168 points). Add any other window in Extra time windows (today 1-m, now 1-d for 8-minute points, 2024-01-01 2024-06-30, …).
  • Stitched series (optional, free row type: "stitched") β€” algorithm gt-overlap-median-ratio version 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; pairs and relativeSpread (median absolute deviation / factor) show how solid it is. Fewer than 3 pairs β†’ the window is failed with 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 keeps sourceWindow, rawValue (Google's number) and factor. Stitched values are on the reference scale and can exceed 100.
  • Common anchor (comparison of more than 5 terms) β€” algorithm gt-common-anchor-ratio version 1.0.0: with Compare keywords and Common anchor term, terms go 4 per Google chart plus the anchor; every group stays as its own comparison row, and a free comparison_anchored row 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.