Skip to content

按任务 ID 获取 Google Extended Reviews 结果

接口说明

用于根据任务 ID 获取 Google Extended Reviews 任务结果。

返回结果与您在创建任务时指定的本地商家名称、搜索引擎、位置和语言参数严格对应。本平台会尽可能高精度地模拟指定的位置与搜索环境,因此返回通常可与任务提交时的搜索结果保持一致。

您可以通过响应中的 check_url 使用无痕模式打开对应页面,核验结果性。需要注意的是,用户偏好、搜索历史及个性化因素不会被纳入模拟,因此这些因素不会体现在返回结果中。

请求方式

GET https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{id}

计费说明

账户在创建任务时扣费;任务结果在 30 天可重复获取。

扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

路径参数

参数名类型说明
idstring任务唯一标识符,UUID 格式。创建任务后,可在 30 天随时使用该 ID 获取结果。

返回结构

接口返回 JSON 数据,顶层 tasks 数组,每个任务对象对应一次任务结果。

沙箱调试

可使用以下沙箱地址查看该端点支持的完整字段结构,返回为模拟数据,不会产生费用:

https://sandbox.seermartech.cn/v3/business_data/google/extended_reviews/task_get/00000000-0000-0000-0000-000000000000

响应字段说明

顶层字段

字段名类型说明
versionstring当前 API 版本号
status_codeinteger局状态码,完整列表见 /v3/appendix/errors
status_messagestring局状态信息,完整列表见 /v3/appendix/errors
timestring执行耗时,单位秒
costfloat本次请求涉及任务总成本,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中返回错误的任务数量
tasksarray任务结果数组

建议在生产环境中基于 status_code 和任务级状态码实现完整的异常处理机制。

tasks[] 字段

字段名类型说明
idstring任务 ID,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000,完整列表见 /v3/appendix/errors
status_messagestring任务状态说明
timestring任务执行耗时,单位秒
costfloat任务成本,单位 USD
result_countintegerresult 数组中的数量
patharray请求路径
dataobject创建任务时提交的原始参数
resultarray结果数组

tasks[].result[] 字段

字段名类型说明
keywordstringPOST 提交时的;返回时会对 %## 进行解码,+ 会被解码为空格
typestringPOST 中指定的搜索引擎类型
se_domainstringPOST 中指定的搜索引擎域名
location_codeintegerPOST 中指定的位置代码
language_codestringPOST 中指定的语言代码
check_urlstring搜索结果直达链接,可用于核验返回结果准确性
datetimestring获取结果的时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
titlestringSERP 中 reviews 模块标题,即被采集商家的名称
sub_titlestringreviews 模块副标题,通常为地址等附加信息
ratingobject商家评分信息
feature_idstringSERP 中 reviews素的唯一标识符
place_idstring商家地点的唯一标识符
cidstring平台定义的本地商家唯一 ID
reviews_countinteger评论总数
items_countintegeritems 数组中的评论数量;如需更多评论,应在创建任务时增加 depth
itemsarray评论列表

rating 字段

字段名类型说明
rating_typestring评分类型,可能值:Max5PercentsCustomMax
valuefloat平均评分
votes_countinteger投票数
rating_maxinteger当前评分类型的满分值

items[] 字段

字段名类型说明
typestring评论类型,固定可能值:google_extended_reviews_search
rank_groupinteger在相同 type素组的位置
rank_absoluteinteger在评论中的绝对排名
positionstring评论在 SERP 中的位置,文档定义值为 right
xpathstring评论的 XPath
review_textstring评论正文
original_review_textstring评论原文;不应用自动翻译
time_agostring相对发布时间,如 “2 weeks ago”
timestampstring评论发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
ratingobject评论提交的评分
reviews_countinteger评论累计提交的评论数
photos_countinteger评论累计上传的数
local_guideboolean是否为本地向导用户
profile_namestring评论昵称
profile_urlstring评论主页链接
review_urlstring评论链接
profile_image_urlstring评论头像链接
owner_answerstring商家回复
original_owner_answerstring商家回复原文;不应用自动翻译
owner_time_agostring商家回复的相对发布时间
owner_timestampstring商家回复时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
review_idstring评论唯一标识
imagesarray评论附带图片
review_highlightsarray评论高亮标签,被评价维度与评价结果
sourceobject评论来源信息

items[].rating 字段

字段名类型说明
rating_typestring评分类型,可为 Max5CustomMax
valuefloat评分值
votes_countinteger该评论获得的反馈数量
rating_maxinteger评分满分;例如 Max5 的满分为 5

items[].images[] 字段

字段名类型说明
typestring素类型,固定为 images_element
altstring图片 alt 文本
image_urlstring评论图片地址

items[].review_highlights[] 字段

字段名类型说明
featurestring被评价的维度
assessmentstring对该维度的评价结果

items[].source 字段

字段名类型说明
titlestring评论来源名称
imagestring来源图片
domainstring来源域名

请求示例

cURL

bash
id="04011058-0696-0199-0000-2196151a15cb"

curl --location --request GET "https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"

Python

python
import requests

task_id = "05211333-2692-0298-0000-047fc45592ce"
url = f"https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{task_id}"

headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json)

TypeScript

typescript
import axios from "axios";

const taskId = "02231934-2604-0066-2000-570459f04879";

axios({
 method: "get",
 url: `https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${taskId}`,
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json",
 },
})
 .then((response) => {
 // 返回任务结果
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

获取已完成任务后逐个获取结果

该接口常与 /v3/business_data/google/extended_reviews/tasks_ready合使用:获取已完成任务列表,再按任务 ID 调用本接口拉取。

Python

python
import requests

headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/business_data/google/extended_reviews/tasks_ready"
ready_resp = requests.get(ready_url, headers=headers).json

results = []

if ready_resp.get("status_code") == 20000:
 for task in ready_resp.get("tasks", []):
 for item in task.get("result", []) or []:
 task_id = item.get("id")
 if task_id:
 # 2. 按任务 ID 获取结果
 result_url = f"https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{task_id}"
 result_resp = requests.get(result_url, headers=headers).json
 results.append(result_resp)

 print(results)
else:
 print(f'error. Code: {ready_resp.get("status_code")} Message: {ready_resp.get("status_message")}')

TypeScript

typescript
import axios from "axios";

const headers = {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json",
};

async function fetchExtendedReviewsResults {
 try {
 // 1. 获取已完成任务列表
 const readyResponse = await axios.get(
 "https://api.seermartech.cn/v3/business_data/google/extended_reviews/tasks_ready",
 { headers }
 );

 const tasksInfo = readyResponse.data;
 const taskResponses: any[] = [];

 if (tasksInfo.status_code === 20000) {
 for (const task of tasksInfo.tasks || []) {
 for (const item of task.result || []) {
 if (item.id) {
 // 2. 按任务 ID 获取结果
 const taskGetResponse = await axios.get(
 `https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${item.id}`,
 { headers }
 );
 taskResponses.push(taskGetResponse.data);
 }
 }
 }

 if (taskResponses.length > 0) {
 console.log(taskResponses);
 } else {
 console.log("No completed tasks");
 }
 } else {
 console.log(`error. Code: ${tasksInfo.status_code} Message: ${tasksInfo.status_message}`);
 }
 } catch (error) {
 console.error(error);
 }
}

fetchExtendedReviewsResults;

响应示例

json
{
 "version": "0.1.20241028",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0798 sec.",
 "cost": 0,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "se_type": "extended_reviews",
 "se": "google",
 "api": "business_data",
 "function": "extended_reviews",
 "location_name": "London,England,United Kingdom",
 "language_name": "english",
 "cid": "17626775537598922320",
 "device": "desktop",
 "os": "windows"
 },
 "result": [
 {
 "review_highlights": [],
 "source": {
 "title": "Google",
 "image": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
 "domain": "www.google.com"
 }
 },
 {
 "type": "google_extended_reviews_search",
 "rank_group": 2,
 "rank_absolute": 2,
 "position": "left",
 "xpath": null,
 "review_text": "Booked this last minute. We stayed for 1 night and paid £242.",
 "original_review_text": null,
 "time_ago": "2 weeks ago",
 "timestamp": "2024-10-13 17:10:32 +00:00",
 "rating": {
 "rating_type": "Max5",
 "value": 3,
 "votes_count": null,
 "rating_max": 5
 },
 "reviews_count": 5,
 "photos_count": null,
 "local_guide": false,
 "profile_name": "H K",
 "profile_url": "https://www.google.com/maps/contrib/102701210192886520050/reviews?hl=en-GB",
 "review_url": "https://www.google.com/maps/reviews/data=!4m8...",
 "profile_image_url": "https://lh3.googleusercontent.com/a/ACg8ocLqRnc2bmgjmTnVBfpp-Lcu23T1vZgR1Tjo7Ktn6gZQQVLH5g=s64-c-rp-mo-br100",
 "owner_answer": null,
 "original_owner_answer": null,
 "owner_time_ago": null,
 "owner_timestamp": null,
 "review_id": "ChdDSUhNMG9nS0VJQ0FnSUNYdE9yeXFnRRAB",
 "images": null,
 "review_highlights": [],
 "source": {
 "title": "Google",
 "image": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
 "domain": "www.google.com"
 }
 }
 ]
 }
 ]
}

状态码说明

状态码范围含义
20000请求成功
10000-60000任务级状态码范围,表示处理状态、参数问题或异常

完整错误码与信息说明请参考 /v3/appendix/errors

使用建议

  • 通过创建任务接口提交采集请求,再保存返回的任务 ID。
  • 结果建议通过 /v3/business_data/google/extended_reviews/tasks_ready 批量发现已完成任务后,再调用本接口逐个拉取。
  • 若需要更多评论记录,请在创建任务时增加 depth 参数。
  • 对于多语言评论,可结合 original_review_textreview_text 对比使用。
  • 商家回复分析可重点 owner_answerowner_timestamp 等字段。

实用场景

  • 监控门店口碑变化:持续拉取单个门店的最新评论、评分和评论总量,及时发现评分下滑或负面反馈集中出现的时间段。
  • 分析用户评价重点:提取 review_textreview_highlights 和评分字段,识别用户最常提及的服务、设施、位置等优缺点。
  • 评估商家回复效率:结合 owner_answerowner_time_agoowner_timestamp,统计门店是否回复评论以及回复时效,优化本地运营。
  • 建立竞品评论对比库:按 cidplace_id 获取多个商家的评论,横向比较评分、评论密度、负面主题和用户满意度。
  • 构建本地 SEO 预警机制:当出现低分评论、差评激增或特定负面时自动预警,帮助品牌及时处理本地搜索声誉问题。

统一入口:官网 · LLM API · 控制台