主题
提交 Google 商家问答采集任务
接口概述
该接口用于提交 Google 商家问答(Questions and Answers)采集任务,返回指定商家实体下的问答信息概览。任务完成后,可获取与该商家的问题、回答,以及时间戳、用户信息等数据。
返回结果受所选地点和语言影响。地点与语言的可选值可分别通过以下接口获取:
/v3/business_data/google/locations/v3/business_data/google/languages
请求方式
POST https://api.seermartech.cn/v3/business_data/google/questions_and_answers/task_post
计费说明
创建任务即产生费用。
- 问答数据按每 20 条问题计费
- 每个问题最多返回 5 条回答
depth默认值为20,如设置20,且游返回了更多结果,可能产生额外费用- 若设置的
depth高于返回的问题数,差额会自动退回到账户余额 - 高优级任务(
priority=2)会额外收费 - 扣费以响应头
X-SeerMarTech-Charge-CNY为准
按文中示例响应估算,参考价约 ¥0.0120 / 次;费用取决于任务参数与返回结果量。
使用说明
- 所有 POST 数据使用
JSON(UTF-8 编码) - 请求体格式为 JSON 数组:
[{ ... }] - 单次 POST 最多可提交 100 个任务
- 接口调用频率上限为 2000 次/分钟
- 若单次请求中任务数 100,出部分将返回错误码
40006
任务提交成功后,可通过返回的唯一任务标识 id 获取结果。 如果在创建任务时指定了 postback_url 或 pingback_url,本平台也可在任务完成后主动回调结果或通知。
注意:如果回调目标服务器在 10 秒未响应,请求会因时中断,该任务会转
/v3/business_data/google/my_business_info/tasks_ready/列表中后续拉取。错误码和错误信息取决于你的服务器。
请求参数
| 字段名 | 类型 | 填 | 说明 |
|---|---|---|---|
keyword | string | 是 | 商家名称。建议填写本地商家名称。最大长度 700 个字符。字段中的 %## 会被解码,+ 会被解码为空格;如果需要传字面量 %,请使用 %25。该字段也支持传商家标识:cid:194604053573767737 或 place_id:GhIJQWDl0CIeQUARxks3icF8U8A |
priority | integer | 否 | 任务优级。1 = 普通优级(默认),2 = 高优级。高优级会额外收费 |
location_name | string | 条件填 | 搜索引擎地点名。若未提供 location_code 或 location_coordinate,则填。使用该字段时无需再传 location_code 或 location_coordinate。示例:London,England,United Kingdom |
location_code | integer | 条件填 | 搜索引擎地点编码。若未提供 location_name 或 location_coordinate,则填。使用该字段时无需再传 location_name 或 location_coordinate。示例:2840 |
location_coordinate | string | 条件填 | GPS 坐标,格式为 latitude,longitude,radius。若未提供 location_name 或 location_code,则填。latitude 与 longitude 最多 7 位小数;radius 最小值 199.9(毫米),最大值 199999(毫米)。示例:53.476225,-2.243572,200 |
language_name | string | 条件填 | 搜索语言名称。若未提供 language_code,则填。使用该字段时无需再传 language_code。示例:English |
language_code | string | 条件填 | 搜索语言代码。若未提供 language_name,则填。使用该字段时无需再传 language_name。示例:en |
depth | integer | 否 | 解析深度,即结果中返回的问题条数。默认 20,最大 700 |
tag | string | 否 | 自定义任务标识,最大长度 255。可用于请求与结果匹,响应的 data 对象中会原样返回 |
postback_url | string | 否 | 任务完成后,本平台会向该地址发送完整结果的 POST 请求,结果为 gzip 压缩格式。可使用 $id 和 $tag 占位符,例如:http://your-server.com/postbackscript?id=$id&tag=$tag。特殊字符会进行 URL 编码 |
pingback_url | string | 否 | 任务完成后,本平台会向该地址发送 GET 通知。可使用 $id 和 $tag 占位符,例如:http://your-server.com/pingscript?id=$id&tag=$tag。特殊字符会进行 URL 编码 |
地点与语言参数说明
以下参数为互斥,三选一 / 二选一:
- 地点参数三选一:
location_name/location_code/location_coordinate - 语言参数二选一:
language_name/language_code
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/business_data/google/questions_and_answers/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_code": 1013962,
"language_code": "en",
"keyword": "The Last Bookstore"
},
{
"location_name": "Los Angeles,California,United States",
"language_name": "English",
"keyword": "The Last Bookstore",
"priority": 2,
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/business_data/google/questions_and_answers/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 请求体为 JSON 数组
payload = [
{
"location_name": "Los Angeles,California,United States",
"language_name": "English",
"keyword": "The Last Bookstore",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
}
]
response = requests.post(url, headers=headers, json=payload)
data = response.json
if data.get("status_code") == 20000:
print(data)
else:
print(f'error. Code: {data.get("status_code")} Message: {data.get("status_message")}')TypeScript
typescript
const url = 'https://api.seermartech.cn/v3/business_data/google/questions_and_answers/task_post';
const payload = [
{
location_name: 'Los Angeles,California,United States',
language_name: 'English',
keyword: 'The Last Bookstore',
tag: 'some_string_123',
pingback_url: 'https://your-server.com/pingscript?id=$id&tag=$tag'
}
];
fetch(url, {
method: 'POST',
headers: {
'Authorization': 'Bearer smt_live_YOUR_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
})
.then(res => res.json)
.then(data => {
if (data.status_code === 20000) {
console.log(data);
} else {
console.error(`error. Code: ${data.status_code} Message: ${data.status_message}`);
}
});响应结构
接口返回 JSON 对象 tasks 数组本次提交的任务信息。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码,完整列表见 /v3/appendix/errors |
status_message | string | 通用状态信息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
tasks | array | 任务数组 |
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 平台唯一任务 ID,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时 |
cost | float | 该任务费用,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | URL 路径 |
data | object | 回显创建任务时传的参数 |
result | array | null | 结果数组。对于任务提交接口,该字段通常为 null |
响应示例
json
{
"version": "0.1.20240422",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2147 sec.",
"cost": 0.00075,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "a6d0b8f4-4a6b-4d81-9f2a-1234567890ab",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0031 sec.",
"cost": 0.00075,
"result_count": 0,
"path": [
"v3",
"business_data",
"google",
"questions_and_answers",
"task_post"
],
"data": {
"api": "business_data",
"function": "questions_and_answers",
"language_code": "en",
"location_name": "Los Angeles,California,United States",
"keyword": "The Last Bookstore",
"se_type": "questions_and_answers",
"se": "google",
"device": "desktop",
"os": "windows"
},
"result": null
}
]
}回调说明
postback_url
- 任务完成后,本平台会向你指定的地址发送
POST请求 - 返回为
gzip压缩结果 - 支持在 URL 中使用:
$id:任务 ID$tag:URL 编码后的自定义标签
示例:
http://your-server.com/postbackscript?id=$idhttp://your-server.com/postbackscript?id=$id&tag=$tag
pingback_url
- 任务完成后,本平台会向你指定的地址发送
GET请求 - 用于通知任务完成,便于你再自行获取结果
- 同样支持
$id和$tag占位符
示例:
http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
常见状态与错误处理
20000:请求成功20100:任务已创建40006:单次 POST 中的任务数 100
建议为以下设计异常处理机制:
- 提交参数缺失或格式错误
- 地点与语言参数不匹
- 回调地址时或不可达
- 任务量出单次提交限制
- 结果拉取与异步回调流程并发导致的重复处理
完整错误码可参考:/v3/appendix/errors
实用场景
- 采集门店问答:批量获取指定商家的用户提问与官方/用户回答,用于本地商家口碑与服务点分析。
- 监控高频咨询问题:识别用户反复提问的营业时间、停车、预约、价格等问题,帮助优化门店运营与 FAQ。
- 对比竞品问答表现:抓取同区域竞品商家的问答数据,对比用户主题,制定差异化本地 SEO 策略。
- 发现负面或未回复问题:结合任务结果追踪长期未回复、敏感或影响转化的问题,及时推动客服或门店处理。
- 构建本地搜索知识库:将不同城市、不同语言环境下的商家问答统一沉淀,支持本地化生成、知识整理与洞察分析。