Skip to content

Google Trends API

Google Trends 关键词搜索热度分析接口,覆盖趋势、地区分布、相关搜索等 6 个端点。所有端点统一 1 unit/次,startDate/endDate 可选(不传默认最近 12 个月)。

端点总览

方法路径用途消耗 units
POST/api/googletrends/interest-over-time关键词热度趋势1
POST/api/googletrends/interest-by-region关键词地区分布1
POST/api/googletrends/related-queries相关搜索查询1
POST/api/googletrends/related-topics相关话题1
GET/api/googletrends/daily-trends每日热门搜索1
GET/api/googletrends/real-time-trends实时热门趋势1

常用参数速查

geo(国家/地区代码)

代码国家/地区
""全球(默认)
US美国
CN中国
HK中国香港
SG新加坡
JP日本
GB英国
DE德国
FR法国
CA加拿大
AU澳大利亚
IN印度
BR巴西
MX墨西哥
KR韩国
TW中国台湾

hl(语言代码)

代码语言
en-US英语(默认)
zh-CN简体中文
zh-TW繁体中文
ja日语
ko韩语
de德语
fr法语
es西班牙语
pt葡萄牙语
it意大利语

category(分类)

关键词类端点interest-over-time / interest-by-region / related-queries / related-topics)使用数字 ID:

ID分类
0全部(默认)
5计算机与电子
7金融
11家居与园艺
12美容与健身
16服装与配饰
18体育用品
22礼品与特别活动
44宠物
47汽车
71食品与饮料

完整分类 ID 列表见 Google Trends 分类文档

daily-trends / real-time-trends 使用字符串代码:

代码分类
all全部(默认)
b商业
e娱乐
t科技
s体育
h健康
m综合

POST 端点公共参数

以下参数适用于所有 POST 端点:

字段类型必填默认说明
keywordstring | string[]关键词(支持逗号分隔多关键词,最多 5 个)
startDatestring12 个月前起始日期(YYYY-MM-DD)
endDatestring今天结束日期(YYYY-MM-DD)
geostring""(全球)国家/地区代码,参见常用 geo
hlstring"en-US"语言代码,参见常用 hl
propertystring"web"web / news / images / youtube / froogle
categoryinteger0分类 ID,参见常用 category
timezoneinteger时区偏移(分钟),如 480 = UTC+8
resolutionstring"COUNTRY"interest-by-regionCOUNTRY/REGION/CITY/DMA

POST /api/googletrends/interest-over-time

查询关键词搜索热度随时间变化趋势,支持最多 5 个关键词对比。

bash
# 请将 km_xxx 替换为你的 API Key
curl -X POST "https://mcp.keepamore.com/api/googletrends/interest-over-time" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: km_xxx" \
  -d '{"keyword":"dress","geo":"US"}'
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/interest-over-time",
  {
    method: "POST",
    headers: { "Content-Type": "application/json", "X-API-Key": "km_xxx" },
    body: JSON.stringify({ keyword: "dress", geo: "US" }),
  },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.post(
    "https://mcp.keepamore.com/api/googletrends/interest-over-time",
    json={"keyword": "dress", "geo": "US"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->post('https://mcp.keepamore.com/api/googletrends/interest-over-time', [
    'headers' => ['Content-Type' => 'application/json', 'X-API-Key' => 'km_xxx'],
    'json'    => ['keyword' => 'dress', 'geo' => 'US'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

String json = "{\"keyword\":\"dress\",\"geo\":\"US\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/interest-over-time"))
    .header("Content-Type", "application/json")
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    body := bytes.NewBufferString(`{"keyword":"dress","geo":"US"}`)
    req, _ := http.NewRequest("POST", "https://mcp.keepamore.com/api/googletrends/interest-over-time", body)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    b, _ := io.ReadAll(resp.Body)
    fmt.Println(string(b))
}

POST /api/googletrends/interest-by-region

查询关键词按地区分布的热度,可指定地理粒度。

bash
# 请将 km_xxx 替换为你的 API Key
curl -X POST "https://mcp.keepamore.com/api/googletrends/interest-by-region" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: km_xxx" \
  -d '{"keyword":"bluetooth speaker","geo":"US","resolution":"REGION"}'
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/interest-by-region",
  {
    method: "POST",
    headers: { "Content-Type": "application/json", "X-API-Key": "km_xxx" },
    body: JSON.stringify({ keyword: "bluetooth speaker", geo: "US", resolution: "REGION" }),
  },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.post(
    "https://mcp.keepamore.com/api/googletrends/interest-by-region",
    json={"keyword": "bluetooth speaker", "geo": "US", "resolution": "REGION"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->post('https://mcp.keepamore.com/api/googletrends/interest-by-region', [
    'headers' => ['Content-Type' => 'application/json', 'X-API-Key' => 'km_xxx'],
    'json'    => ['keyword' => 'bluetooth speaker', 'geo' => 'US', 'resolution' => 'REGION'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

String json = "{\"keyword\":\"bluetooth speaker\",\"geo\":\"US\",\"resolution\":\"REGION\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/interest-by-region"))
    .header("Content-Type", "application/json")
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    body := bytes.NewBufferString(`{"keyword":"bluetooth speaker","geo":"US","resolution":"REGION"}`)
    req, _ := http.NewRequest("POST", "https://mcp.keepamore.com/api/googletrends/interest-by-region", body)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    b, _ := io.ReadAll(resp.Body)
    fmt.Println(string(b))
}

POST /api/googletrends/related-queries

查询与关键词相关的搜索查询(用户还搜索了什么),返回 Top 和 Rising 两部分。

bash
# 请将 km_xxx 替换为你的 API Key
curl -X POST "https://mcp.keepamore.com/api/googletrends/related-queries" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: km_xxx" \
  -d '{"keyword":"led desk lamp","geo":"US"}'
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/related-queries",
  {
    method: "POST",
    headers: { "Content-Type": "application/json", "X-API-Key": "km_xxx" },
    body: JSON.stringify({ keyword: "led desk lamp", geo: "US" }),
  },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.post(
    "https://mcp.keepamore.com/api/googletrends/related-queries",
    json={"keyword": "led desk lamp", "geo": "US"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->post('https://mcp.keepamore.com/api/googletrends/related-queries', [
    'headers' => ['Content-Type' => 'application/json', 'X-API-Key' => 'km_xxx'],
    'json'    => ['keyword' => 'led desk lamp', 'geo' => 'US'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

String json = "{\"keyword\":\"led desk lamp\",\"geo\":\"US\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/related-queries"))
    .header("Content-Type", "application/json")
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    body := bytes.NewBufferString(`{"keyword":"led desk lamp","geo":"US"}`)
    req, _ := http.NewRequest("POST", "https://mcp.keepamore.com/api/googletrends/related-queries", body)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    b, _ := io.ReadAll(resp.Body)
    fmt.Println(string(b))
}

POST /api/googletrends/related-topics

查询与关键词相关的热门话题,返回 Top 和 Rising 两部分。

bash
# 请将 km_xxx 替换为你的 API Key
curl -X POST "https://mcp.keepamore.com/api/googletrends/related-topics" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: km_xxx" \
  -d '{"keyword":"yoga mat","geo":"US"}'
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/related-topics",
  {
    method: "POST",
    headers: { "Content-Type": "application/json", "X-API-Key": "km_xxx" },
    body: JSON.stringify({ keyword: "yoga mat", geo: "US" }),
  },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.post(
    "https://mcp.keepamore.com/api/googletrends/related-topics",
    json={"keyword": "yoga mat", "geo": "US"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->post('https://mcp.keepamore.com/api/googletrends/related-topics', [
    'headers' => ['Content-Type' => 'application/json', 'X-API-Key' => 'km_xxx'],
    'json'    => ['keyword' => 'yoga mat', 'geo' => 'US'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

String json = "{\"keyword\":\"yoga mat\",\"geo\":\"US\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/related-topics"))
    .header("Content-Type", "application/json")
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    body := bytes.NewBufferString(`{"keyword":"yoga mat","geo":"US"}`)
    req, _ := http.NewRequest("POST", "https://mcp.keepamore.com/api/googletrends/related-topics", body)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    b, _ := io.ReadAll(resp.Body)
    fmt.Println(string(b))
}

获取每日热门搜索趋势,无需关键词。

查询参数

名称类型默认说明
geostring"US"国家/地区代码,参见常用 geo
hlstring"en-US"语言代码,参见常用 hl
trendDatestring今天日期(YYYY-MM-DD)
bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/googletrends/daily-trends?geo=US" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/daily-trends?geo=US",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/googletrends/daily-trends",
    params={"geo": "US"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/googletrends/daily-trends', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['geo' => 'US'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/daily-trends?geo=US"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/googletrends/daily-trends?geo=US"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

获取实时热门搜索趋势,数据更新频率高(分钟级)。

查询参数

名称类型默认说明
geostring"US"国家/地区代码,参见常用 geo
hlstring"en-US"语言代码,参见常用 hl
categorystring"all"分类,参见实时趋势分类
propertystring"web"web / news / images / youtube / froogle
timezoneinteger时区偏移(分钟),如 480 = UTC+8
bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/googletrends/real-time-trends?geo=US&category=t" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/googletrends/real-time-trends?geo=US&category=t",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/googletrends/real-time-trends",
    params={"geo": "US", "category": "t"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/googletrends/real-time-trends', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['geo' => 'US', 'category' => 't'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/googletrends/real-time-trends?geo=US&category=t"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/googletrends/real-time-trends?geo=US&category=t"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

对应 MCP 工具

HTTP 端点MCP 工具
POST /api/googletrends/interest-over-timegoogle_trends_interest_over_time
POST /api/googletrends/interest-by-regiongoogle_trends_interest_by_region
POST /api/googletrends/related-queriesgoogle_trends_related_queries
POST /api/googletrends/related-topicsgoogle_trends_related_topics
GET /api/googletrends/daily-trendsgoogle_trends_daily_trends
GET /api/googletrends/real-time-trendsgoogle_trends_real_time_trends