Switching from Google Trends Scraper (apify/google-trends-scraper) to Google Trends Scraper
Google Trends Scraper (arcadium/google-trends) reads input written for apify/google-trends-scraper: 11 of its 14 input fields work as they are. Field list from its public input schema (build 0.0.143, 2026-10-31); prices and run results from the public Apify API, 2026-10-31.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
searchTerms | array | As is |
isMultiple | boolean | As is |
timeRange | string | As is |
geo | string | As is |
viewedFrom | string | As is |
startUrls | array | As is |
spreadsheetId | string | As is |
category | string | As is |
maxItems | integer | As is |
customTimeRange | string | As is |
maxRequestRetries | integer | As is |
Their fields this actor does not read
skipDebugScreen, maxConcurrency, pageLoadTimeoutSecs. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for apify/google-trends-scraper, pasted unchanged:
{
"searchTerms": [
"web scraping",
"data extraction"
],
"isMultiple": true,
"timeRange": "today 3-m",
"geo": "US",
"viewedFrom": "us",
"category": "5",
"maxItems": 10,
"maxRequestRetries": 3
}One row from arcadium/google-trends (README example; long text shortened):
{
"rowType": "trend",
"searchTerm": "coffee",
"geo": "US",
"timeRange": "today 12-m",
"averageInterest": 77.7,
"interestOverTime_timelineData": [
{
"time": "1760832000",
"formattedTime": "Oct 19 – 25, 2025",
"value": [
63
],
"hasData": [
true
],
"formattedValue": [
"63"
]
}
],
"interestBySubregion": [
{
"geoCode": "US-WY",
"geoName": "Wyoming",
"value": [
100
]
}
],
"relatedQueries_top": [
{
"query": "coffee near me",
"value": 100,
"formattedValue": "100"
}
],
"relatedQueries_rising": [
{
"query": "best coffee near me",
"value": 160,
"formattedValue": "+160%"
}
],
"scale": {
"method": "single",
"keywords": [
"coffee"
]
}
}Output fields: rowType, searchTerm, inputUrlOrTerm, geo, timeRange, category, property, averageInterest, interestOverTime_timelineData, interestBy, interestBySubregion, interestByCity, interestByMetro, relatedQueries_top, relatedQueries_rising, relatedTopics_top, relatedTopics_rising, scale, change, scrapedAt, keyword, searchVolume, increasePercent, startedAt, active, relatedKeywords, windowHours, code, message. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/google-trends | Pay per event | Result row | $2.70 | $0.27 |
| apify/google-trends-scraper | Pay per event, plus platform usage | Result | $3.00 | $0.10 |
Live Apify prices on 2026-10-31, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- Google Trends Scraper timed out: 19.2% of 25,742 runs timed out.
- Google Trends Scraper failed: 1.6% of 25,742 runs ended as failed.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/google-trends | under 50 runs (3 runs) | - | - |
| apify/google-trends-scraper | 25,742 | 1.6% | 19.2% |
Apify’s public run statistics for each actor, last 30 days to 2026-10-31: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/google-trends and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for apify/google-trends-scraper, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from apify~google-trends-scraper to arcadium~google-trends; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~google-trends/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["web scraping","data extraction"],"isMultiple":true,"timeRange":"today 3-m","geo":"US","viewedFrom":"us","category":"5","maxItems":10,"maxRequestRetries":3}'
In n8n
In the Apify node, change the actor to arcadium/google-trends and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/google-trends",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~google-trends/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"searchTerms\":[\"web scraping\",\"data extraction\"],\"isMultiple\":true,\"timeRange\":\"today 3-m\",\"geo\":\"US\",\"viewedFrom\":\"us\",\"category\":\"5\",\"maxItems\":10,\"maxRequestRetries\":3}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/google-trends",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}