Google Trends unofficial API: compare keywords, get related queries
TL;DR
About
Google Trends scales each result to the peak of that one request, so terms only compare fairly when fetched together. A US camping gear shop planning spring ads could send ["tent", "hammock", "sleeping bag"] with geo "US" and date "today 5-y", then read interestOverTime to see when each tops out, year after year. With two or more terms, regionShare splits interest by state, showing where hammocks beat tents. Related topics need a single term, so a second call with "hammock" alone adds them, and a rising query marked Breakout (over 5000% growth) can earn its own ad group. These are indexes, not search counts: a low-volume term reads 0 beside bigger ones, and if every term is that small the timeline comes back empty. Labels and region names come back in English whatever geo you pick. As of early October 2026, every run on Reduck's hosted browsers had failed, so use the Reduck extension in your own Chrome.
Input
keywords required1-5 search terms and/or Trends topic mids (e.g. "/g/11khcfz0y2") compared in a single query — values are relative to the shared peak, so this is the only way to compare terms. Terms must not contain commas (the site's own separator).
geo optionalISO region code: "US", "FR", "US-CA"… Empty string = worldwide.
Default: ""date optionalTrends range: "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", or explicit "YYYY-MM-DD YYYY-MM-DD".
Default: "today 12-m"category optionalTrends category id (0 = all categories). Same ids as the site's category picker.
Default: 0property optionalSearch property: "" = web search, images, news, froogle (shopping), youtube.
Default: ""Output
geo requireddate requiredkeywords requiredbyKeyword requiredPer-keyword panels, aligned with keywords. relatedTopics is null in compare mode — the site drops that panel when comparing.
regionShare requiredCompare mode only (2+ keywords), else []: each keyword's share (%) of combined interest per region, shares[i] aligns with keywords[i].
interestOverTime requiredRelative interest 0-100, shared scale across all keywords (100 = the overall peak). values[i] aligns with keywords[i]. Empty for insufficient volume.
Example output
Shape only: placeholder values generated from the output schema, not a real run.
{
"geo": "…",
"date": "2026-01-15T09:30:00Z",
"keywords": [
"…"
],
"byKeyword": [
{
"keyword": "…",
"relatedTopics": {
"top": [
{}
],
"rising": [
{}
]
},
"relatedQueries": {
"top": [
{}
],
"rising": [
{}
]
},
"interestByRegion": [
{
"value": 3,
"geoCode": "…",
"geoName": "…"
}
]
}
],
"regionShare": [
{
"shares": [
3
],
"geoCode": "…",
"geoName": "…"
}
],
"interestOverTime": [
{
"date": "2026-01-15T09:30:00Z",
"time": 3,
"values": [
3
]
}
]
}