Google Trends Scraper
Pricing
from $2.50 / 1,000 result items
Go to Apify Store
Google Trends Scraper
Interest over time, interest by region and related queries from Google Trends for a list of keywords.
Google Trends Scraper
Pricing
from $2.50 / 1,000 result items
Interest over time, interest by region and related queries from Google Trends for a list of keywords.
You can access the Google Trends Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "pNrKwLqH0CCJRpbKD" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/hexagonal_larder~google-trends/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-hexagonal_larder-google-trends", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/hexagonal_larder~google-trends/runs": { "post": { "operationId": "runs-sync-hexagonal_larder-google-trends", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/hexagonal_larder~google-trends/run-sync": { "post": { "operationId": "run-sync-hexagonal_larder-google-trends", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "required": [ "searchTerms" ], "properties": { "searchTerms": { "title": "Search terms", "type": "array", "description": "Keywords to look up. Each keyword is fetched separately and produces one result item.", "items": { "type": "string" } }, "geo": { "title": "Location (geo code)", "type": "string", "description": "Google Trends geo code, e.g. US, JP, GB, US-CA. Leave empty for worldwide.", "default": "" }, "timeRange": { "title": "Time range", "enum": [ "now 1-H", "now 4-H", "now 1-d", "now 7-d", "today 1-m", "today 3-m", "today 12-m", "today 5-y", "all" ], "type": "string", "description": "Predefined Google Trends time range. Ignored when Custom time range is set.", "default": "today 12-m" }, "customTimeRange": { "title": "Custom time range", "type": "string", "description": "Optional custom range in the form \"YYYY-MM-DD YYYY-MM-DD\". Overrides Time range.", "default": "" }, "maxRetries": { "title": "Max retries", "minimum": 0, "maximum": 5, "type": "integer", "description": "How many times to retry a request after HTTP 429 or 5xx. With a proxy, each retry uses a new proxy session (new IP).", "default": 3 }, "delayBetweenKeywordsSecs": { "title": "Delay between keywords (seconds)", "minimum": 0, "maximum": 120, "type": "integer", "description": "Pause between keywords to reduce rate limiting.", "default": 3 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Proxy to use. Residential proxy is recommended: in our tests datacenter IPs got blocked by Google after sustained use. On HTTP 429 the Actor switches to a new proxy session (new IP).", "default": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ] } }, "cookieMode": { "title": "Cookie mode", "enum": [ "never", "onRateLimit", "always" ], "type": "string", "description": "How to get Google cookies. 'never' (recommended): skip the ~130 KB Trends home page; Google hands out the cookie with its first response and the Actor retries once on the same IP to use it. 'always': load the home page on every proxy session. 'onRateLimit': load it only on sessions opened after a rate limit.", "default": "never" }, "retryFailedKeywords": { "title": "Retry failed keywords at the end", "type": "boolean", "description": "After all keywords are processed, try the failed ones once more on a fresh proxy session. Failed keywords are never charged.", "default": true }, "stopAfterConsecutiveFailures": { "title": "Stop after consecutive failures", "minimum": 0, "maximum": 100, "type": "integer", "description": "If this many keywords fail in a row, Google is most likely blocking the proxy pool; skip the rest instead of wasting time. 0 = never stop.", "default": 5 } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Google Trends Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: