主题
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 端点:
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
keyword | string | string[] | ✅ | — | 关键词(支持逗号分隔多关键词,最多 5 个) |
startDate | string | 12 个月前 | 起始日期(YYYY-MM-DD) | |
endDate | string | 今天 | 结束日期(YYYY-MM-DD) | |
geo | string | ""(全球) | 国家/地区代码,参见常用 geo | |
hl | string | "en-US" | 语言代码,参见常用 hl | |
property | string | "web" | web / news / images / youtube / froogle | |
category | integer | 0 | 分类 ID,参见常用 category | |
timezone | integer | — | 时区偏移(分钟),如 480 = UTC+8 | |
resolution | string | "COUNTRY" | 仅 interest-by-region:COUNTRY/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))
}GET /api/googletrends/daily-trends
获取每日热门搜索趋势,无需关键词。
查询参数:
| 名称 | 类型 | 默认 | 说明 |
|---|---|---|---|
geo | string | "US" | 国家/地区代码,参见常用 geo |
hl | string | "en-US" | 语言代码,参见常用 hl |
trendDate | string | 今天 | 日期(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))
}GET /api/googletrends/real-time-trends
获取实时热门搜索趋势,数据更新频率高(分钟级)。
查询参数:
| 名称 | 类型 | 默认 | 说明 |
|---|---|---|---|
geo | string | "US" | 国家/地区代码,参见常用 geo |
hl | string | "en-US" | 语言代码,参见常用 hl |
category | string | "all" | 分类,参见实时趋势分类 |
property | string | "web" | web / news / images / youtube / froogle |
timezone | integer | — | 时区偏移(分钟),如 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-time | google_trends_interest_over_time |
POST /api/googletrends/interest-by-region | google_trends_interest_by_region |
POST /api/googletrends/related-queries | google_trends_related_queries |
POST /api/googletrends/related-topics | google_trends_related_topics |
GET /api/googletrends/daily-trends | google_trends_daily_trends |
GET /api/googletrends/real-time-trends | google_trends_real_time_trends |
