Home / Tools / Google Trends Scraper & API

Keyword research

Google Trends Scraper & API

Reliable Google Trends API: interest over time, interest by region/city, related queries and topics (top + rising), and Trending Now by country. Compare up to 5 terms, batch hundreds, any geo, time range, category or YouTube/News/Shopping. Auto-retries with fresh sessions.

Run it on Apify API & MCP

Sample output

Search termRankRelated queryTop / risingInterest
tea1green teatop100
tea2coffeetop43
tea1how to make cold brew tearising2,050

Real rows from the prefilled example run (Oct 19, 2026), 5 of 16+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.

Full JSON of one real output row (300 rows in the example dataset)
{
  "type": "trending_now",
  "searchTerm": "chargers vs chiefs",
  "geo": "US",
  "rank": 1,
  "searchVolume": 500000,
  "searchVolumeFormatted": "500K+",
  "increasePercentage": 1000,
  "startedAt": "2026-10-18T14:10:00Z",
  "endedAt": null,
  "isActive": true,
  "categories": [
    "Sports"
  ],
  "trendBreakdown": [
    "chargers vs chiefs",
    "kenneth walker iii",
    "chiefs vs chargers",
    "... 64 more"
  ],
  "newsArticles": [
    {
      "title": "Chiefs 22-6 Chargers (Oct 18, 2026) Game Recap",
      "url": "https://www.espn.com/nfl/recap/_/gameId/401873006",
      "source": "ESPN",
      "publishedAt": "2026-10-18T23:37:30Z",
      "picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRNKlUNEIlgtEzdv5fc4LbzI1ssQD9dmq2MrNCutnvo08nmuY6nJSWV54mJBto"
    },
    {
      "title": "Jim Harbaugh admits key LA Chargers situation ‘needs to be addressed’ after abysmal 0-6 start",
      "url": "https://sports.yahoo.com/articles/jim-harbaugh-admits-key-la-090000773.html",
      "source": "Yahoo Sports",
      "publishedAt": "2026-10-19T09:00:00Z",
      "picture": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRMntie21xAYSycGXmc3sZYyeBe_S4IS6M9l5KaF985n9evH5TIuC5Xluc4mtw"
    },
    {
      "title": "TOUCHDOWN! Ken Walker's Eighth of the Season Boosts Chiefs Lead to 15-3 Against Chargers",
      "url": "https://www.chiefs.com/video/touchdown-ken-walker-s-eighth-of-the-season-boosts-chiefs-lead-to-15-3-against-chargers",
      "source": "Kansas City Chiefs",
      "publishedAt": "2026-10-18T22:34:50Z",
      "picture": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSpRU1c1E60EF3rXkOSHPuM9X631D8XIGY679Osj1NNiggzQjTUvJ1wsgAWTF8"
    }
  ],
  "timeWindowHours": 24,
  "exploreUrl": "https://trends.google.com/trends/explore?q=chargers%20vs%20chiefs&date=now%201-d&geo=US",
  "scrapedAt": "2026-10-19T10:00:05Z"
}

Output fields

From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.

FieldTypeDescription
typestringRow type: interest_over_time, interest_by_region, related_query, related_topic, trending_now, term (per-term format) or status (no data / error, free)
searchTermstringSearch term (or trending search)
comparedWitharrayOther terms in the same comparison (values share one 0-100 scale)
geostringGeo code (WORLDWIDE for worldwide)
timeRangestringRequested time range
periodstringResolved date range from Google
categoryintegerCategory ID
propertystringweb, images, news, youtube or shopping
datestringTimeline point (YYYY-MM-DD, or ISO datetime for hourly data, UTC)
timestampintegerUnix timestamp of the timeline point
formattedTimestringGoogle's label for the point
valueintegerInterest 0-100 (region rows of comparisons: share %); related rows: relative value or % growth
formattedValuestringGoogle's formatted value (e.g. +250%, Breakout)
hasDatabooleanFalse when Google has too little data
isPartialbooleanLast timeline point is still being collected
resolutionstringTimeline (WEEK, DAY, HOUR...) or region resolution
rankintegerPosition in its list
geoCodestringRegion code (e.g. US-CA, DMA 807)
geoNamestringRegion name
valueTypestringinterest (single term) or share (comparison)
latnumberCity latitude
lngnumberCity longitude
rankTypestringtop or rising
querystringRelated query

Pricing

Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.

EventFree planBronzeSilverGold
Search term analysed main
Charged once per search term analysed for one geo and time range, regardless of output format or row count.
$0.003$0.0026$0.0022$0.0019
Trending search
Charged once per Trending Now row returned.
$0.0005$0.0004$0.0004$0.0003

Examples on the Free plan: 100 search term analyseds = $0.30, 1,000 search term analyseds = $3, 10,000 search term analyseds = $30. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).

Example input

This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.

{
  "searchTerms": [
    "coffee",
    "tea, matcha"
  ],
  "geos": [
    "US"
  ],
  "timeRange": "today 12-m",
  "category": 0,
  "property": "web",
  "includeInterestOverTime": true,
  "includeInterestByRegion": true,
  "regionResolution": "auto",
  "includeLowSearchVolumeRegions": false,
  "maxRegions": 250,
  "includeRelatedQueries": true,
  "includeRelatedTopics": false,
  "maxRelatedItems": 25,
  "trendingGeos": [
    "US"
  ],
  "trendingHours": "24",
  "trendingActiveOnly": false,
  "maxTrendingPerGeo": 10,
  "includeTrendingNews": true,
  "outputFormat": "flat",
  "language": "en-US",
  "timezoneOffsetMinutes": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "residentialFallback": true,
  "maxConcurrency": 5,
  "maxRetries": 8
}

Use it from code, no-code or an AI agent

cURL (one request, returns rows)
curl -X POST \
  "https://api.apify.com/v2/acts/wrenfield-data~google-trends-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms": ["coffee", "tea, matcha"], "geos": ["US"], "timeRange": "today 12-m", "category": 0, "property": "web", "includeInterestOverTime": true, "includeInterestByRegion": true, "regionResolution": "auto", "includeLowSearchVolumeRegions": false, "maxRegions": 250, "includeRelatedQueries": true, "includeRelatedTopics": false, "maxRelatedItems": 25, "trendingGeos": ["US"], "trendingHours": "24", "trendingActiveOnly": false, "maxTrendingPerGeo": 10, "includeTrendingNews": true, "outputFormat": "flat", "language": "en-US", "timezoneOffsetMinutes": 0, "proxyConfiguration": {"useApifyProxy": true}, "residentialFallback": true, "maxConcurrency": 5, "maxRetries": 8}'
Python
# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/google-trends-scraper").call(
    run_input={
    "searchTerms": [
        "coffee",
        "tea, matcha"
    ],
    "geos": [
        "US"
    ],
    "timeRange": "today 12-m",
    "category": 0,
    "property": "web",
    "includeInterestOverTime": True,
    "includeInterestByRegion": True,
    "regionResolution": "auto",
    "includeLowSearchVolumeRegions": False,
    "maxRegions": 250,
    "includeRelatedQueries": True,
    "includeRelatedTopics": False,
    "maxRelatedItems": 25,
    "trendingGeos": [
        "US"
    ],
    "trendingHours": "24",
    "trendingActiveOnly": False,
    "maxTrendingPerGeo": 10,
    "includeTrendingNews": True,
    "outputFormat": "flat",
    "language": "en-US",
    "timezoneOffsetMinutes": 0,
    "proxyConfiguration": {
        "useApifyProxy": True
    },
    "residentialFallback": True,
    "maxConcurrency": 5,
    "maxRetries": 8
},
    max_total_charge_usd=1.00,  # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/google-trends-scraper').call({
  "searchTerms": [
    "coffee",
    "tea, matcha"
  ],
  "geos": [
    "US"
  ],
  "timeRange": "today 12-m",
  "category": 0,
  "property": "web",
  "includeInterestOverTime": true,
  "includeInterestByRegion": true,
  "regionResolution": "auto",
  "includeLowSearchVolumeRegions": false,
  "maxRegions": 250,
  "includeRelatedQueries": true,
  "includeRelatedTopics": false,
  "maxRelatedItems": 25,
  "trendingGeos": [
    "US"
  ],
  "trendingHours": "24",
  "trendingActiveOnly": false,
  "maxTrendingPerGeo": 10,
  "includeTrendingNews": true,
  "outputFormat": "flat",
  "language": "en-US",
  "timezoneOffsetMinutes": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "residentialFallback": true,
  "maxConcurrency": 5,
  "maxRetries": 8
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
MCP (Claude, Cursor, VS Code, any MCP client)
{
  "mcpServers": {
    "wrenfield-google-trends-scraper": {
      "url": "https://mcp.apify.com?tools=wrenfield-data/google-trends-scraper"
    }
  }
}

Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--google-trends-scraper. More client setups on the MCP page.

n8n, Make, Zapier

Use the official Apify node or app, pick Run Actor, enter wrenfield-data/google-trends-scraper and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.

FAQ

How much does Google Trends Scraper cost?

$0.003 per search term analysed on the Apify Free plan ($3 per 1,000), billed per result by Apify with no subscription. Plus $0.0005 per trending search. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.

Is there an official Google Trends API?

Google offers a limited alpha API only to selected partners. This Actor gives you the same data the Google Trends website shows, as JSON/CSV, via the Apify API, schedules and integrations.

Why does my Google Trends scraper / pytrends keep getting 429 errors?

Google limits requests per IP and per session and wants a valid cookie. This Actor rotates sessions and IPs automatically, backs off exponentially and falls back to residential IPs, so you don't have to.

Why are related topics off by default?

Google returns an empty related-topics list to regular automated sessions. When you enable includeRelatedTopics, the Actor requests related topics through Google Trends' embeddable-widget endpoint and sends a Referer header from a pool of public websites. Turn it on only if that method is acceptable for your use case. It adds 2 requests per term and doesn't change the price.

What do the 0-100 values mean?

Google Trends values are relative: 100 is the peak popularity for the term (or the highest of the compared terms) in the chosen geo and period. Compare terms in one line (up to 5) to put them on the same scale. Values for different queries or runs are not directly comparable, and Google samples data, so low-volume values can vary slightly between requests.

How many keywords can I scrape?

As many as you like - add hundreds of lines; they are processed in parallel and each is billed once per geo.

Can I get daily trending searches?

Yes - add country codes to Trending now (Google replaced the old Daily Search Trends page with Trending Now). Choose the past 4 hours, 24 hours, 48 hours or 7 days, filter by category and get news articles for each trend.

Related tools

Keyword Search Volume

Google Keyword Planner volume, CPC, competition and 12-month trends, no Ads account.

Keyword Research Tool Launching soon

Keyword ideas with volume, KD, intent and SERP features in one row.

Competitor Keywords Launching soon

Every keyword a domain ranks for, with position, volume and traffic.

Keyword Difficulty Checker Launching soon

KD 0-100 and search intent for thousands of keywords at once.

Google Autocomplete Expander Launching soon

Long-tail and question keywords from Google and YouTube suggestions.

People Also Ask Scraper Launching soon

PAA question trees, related searches and AI Overview text.

Compare and plan

Try Google Trends Scraper & API now

Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.

Open on Apify