主题
Bing 搜索量任务创建接口
接口说明
该接口用于创建 Bing 搜索量查询任务,支持返回以下数据:
- 最近一个月的搜索量
- 最多过去 24 个月的搜索量趋势
- 当前 CPC(每次点击费用)
- 付费搜索竞争度
这是标准异步模式的获取方式:创建任务,再在任务完成后获取结果。若不要求实时返回,建议优使用该模式。任务执行时间取决于系统负载。
如果你的业务需要即时结果,可改用 /v3/keywords_data/bing/search_volume/live/ 实时接口,无需分开调用 POST 和结果查询接口。
历史数据最长可追溯 24 个月。
请求地址
POST https://api.seermartech.cn/v3/keywords_data/bing/search_volume/task_post
计费说明
账户在创建任务时扣费。
参考价约 ¥0.8000 / 次。 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
补说明:
- 每分钟最多可发送 2000 次 API 调用
- 每次 POST 最多可 100 个任务
- 若单次 POST过 100 个任务,出部分会返回错误
40006 - 单个任务中的
keywords数组最多可传 1000 个 - 每个最大长度 100 个字符
- 按请求计费,而不是按数量计费:一个任务中传 1 个与传 1000 个,费用相同
请求格式
所有 POST 数据使用 UTF-8 编码的 JSON 格式提交。 请求体为 JSON 数组:
json
[
{
"location_name": "United States",
"keywords": [
"average page rpm adsense"
]
}
]任务结果获取方式
创建任务后,可通过以下方式获取结果:
- 使用返回的任务唯一标识
id查询已完成任务结果 - 创建任务时设置
postback_url,任务完成后由本平台主动推送结果 - 创建任务时设置
pingback_url,任务完成后由本平台发送完成通知
注意:
- 若你的服务器在 10 秒未响应回调请求,连接会因时中止
- 该任务会转对应的
tasks_ready列表,后续可自行获取结果 - 回调失败时,错误码和错误信息取决于你的服务端
请求参数
任务对象字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
keywords | array | 填。列表。最多 1000 个;每个最大 100 字符。系统会自动将转为小写,并按单个分别返回数据。 |
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 坐标。当未指定 location_name 或 location_code 时填。格式为 "latitude,longitude"。返回的数据将基于该坐标所属国家。示例:52.6178549,-155.352142 |
language_name | string | 搜索引擎语言名。当未指定 language_code 时填。支持值:English、French、German |
language_code | string | 搜索引擎语言代码。当未指定 language_name 时填。支持值:en、fr、de |
device | string | 可选。设备类型。可选值:all、mobile、desktop、tablet。默认值:all |
sort_by | string | 可选。结果排序字段,按降序排序。可选值:search_volume、cpc、competition、relevance。默认值:relevance |
date_from | string | 可选。时间范围起始日期。若不传,默认返回最近 12 个月数据。最早可设置为今天向前 24 个月。格式:yyyy-mm-dd。示例:2020-01-01。不建议对过去一年的日期使用自定义时间范围 |
date_to | string | 可选。时间范围结束日期。若不传,默认返回最近 12 个月数据。最小值为今天向前两年,最大值为今天向前一个月。格式:yyyy-mm-dd。示例:2020-03-15。不建议对过去一年的日期使用自定义时间范围 |
postback_url | string | 可选。结果推送地址。任务完成后,本平台会将 gzip 压缩的结果通过 POST 发送到该地址。支持在 URL 中使用 $id 和 $tag 占位符。示例:http://your-server.com/postbackscript?id=$id |
pingback_url | string | 可选。完成通知地址。任务完成后,本平台会向该地址发起 GET 请求。支持在 URL 中使用 $id 和 $tag 占位符。示例:http://your-server.com/pingscript?id=$id&tag=$tag |
search_partners | boolean | 可选。是否 Bing 搜索合作伙伴流量。设为 true 时,返回 Bing、Yahoo、AOL 及合作伙伴站点上的数据。默认值:false,返回 Bing、AOL、Yahoo 搜索网络数据 |
tag | string | 可选。自定义任务标识,最大 255 字符。可用于将任务与业务系统记录,返回结果中的 data 对象会原样带回该值 |
地区与语言说明
- 地区参数三选一:
location_name、location_code、location_coordinate - 语言参数二选一:
language_name、language_code
地区列表可通过以下接口获取:
/v3/keywords_data/bing/locations
响应结构
接口返回 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 数组中返回错误的任务数量 |
tasks | array | 任务结果数组 |
tasks 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时,单位秒 |
cost | float | 单个任务费用,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | URL 路径 |
data | object | 回显你在 POST 请求中提交的任务参数 |
result | array | 结果数组。对于任务创建接口,此处固定为 null |
状态与错误处理
- 创建成功时,任务级别通常返回:
20100:Task Created.- 顶层成功通常返回:
20000:Ok.- 若单次 POST 中任务数 100,出部分会返回:
40006
建议业务侧对 /v3/appendix/errors 中的状态码建立完整的异常处理机制。
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/keywords_data/bing/search_volume/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_name": "United States",
"keywords": [
"average page rpm adsense"
]
},
{
"language_code": "en",
"location_code": 2840,
"keywords": [
"adsense blank ads how long"
],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"keywords": [
"leads and prospects"
],
"postback_url": "https://your-server.com/postbackscript"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/bing/search_volume/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
payload = [
{
"location_name": "United States",
"keywords": [
"average page rpm adsense"
]
},
{
"language_code": "en",
"location_code": 2840,
"keywords": [
"adsense blank ads how long"
],
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"keywords": [
"leads and prospects"
],
"postback_url": "https://your-server.com/postbackscript"
}
]
response = requests.post(url, headers=headers, json=payload)
print(response.json)TypeScript
typescript
import axios from "axios";
const payload = [
{
location_name: "United States",
keywords: [
"average page rpm adsense"
]
},
{
language_code: "en",
location_code: 2840,
keywords: [
"adsense blank ads how long"
],
tag: "some_string_123",
pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
location_name: "United States",
language_name: "English",
keywords: [
"leads and prospects"
],
postback_url: "https://your-server.com/postbackscript"
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/keywords_data/bing/search_volume/task_post",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: payload
})
.then((response) => {
// 输出任务创建结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});响应示例
json
{
"version": "0.1.20200130",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0882 sec.",
"cost": 0.15,
"tasks_count": 3,
"tasks_error": 0,
"tasks": [
{
"id": "01302137-1535-0110-0000-af164848a289",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0020 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"bing",
"search_volume",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "search_volume",
"se": "bing",
"location_name": "London,England,United Kingdom",
"keywords": [
"average page rpm adsense"
]
},
"result": null
},
{
"id": "01302137-1535-0110-0000-af164848a289",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0020 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"bing",
"search_volume",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "search_volume",
"se": "bing",
"language_code": "en",
"location_code": 2840,
"keywords": [
"adsense blank ads how long"
],
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
"tag": "some_string_123"
},
"result": null
},
{
"id": "01302137-1535-0110-0000-6aa9f0d703d5",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0021 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"bing",
"search_volume",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "search_volume",
"se": "bing",
"location_name": "United States",
"language_name": "English",
"keywords": [
"leads and prospects"
],
"postback_url": "https://your-server.com/postbackscript"
},
"result": null
}
]
}使用建议
- 适合批量提交搜索量任务,后续统一获取结果
- 若需要控制成本,建议尽量把更多合并到单个任务中
- 若业务系统依赖自动回收结果,可优使用
postback_url或pingback_url - 对于过去一年的数据,通常不建议强行指定自定义时间范围,以影响结果使用一致性
实用场景
- 批量评估需求规模:一次提交大量,快速判断不同主题或词的搜索热度,为选题、投放和 SEO 规划提供依据。
- 监测趋势变化:利用最长 24 个月的历史趋势,识别季节性波动、热点抬升和需求衰退,排期与预算分。
- 对比不同地区搜索潜力:通过
location_name、location_code或坐标维度获取区域搜索量,帮助制定本地化 SEO 与区域投放策略。 - 分析移动端与桌面端差异:结合
device参数分别查看不同设备上的搜索需求,为移动优页面优化和落地页设计提供依据。 - 构建自动化数据回流链路:通过
postback_url或pingback_url在任务完成后自动接收通知或结果,减少人工轮询,提高数据采集效率。