主题
为网站创建推荐任务
POST /v3/keywords_data/bing/keywords_for_site/task_post
接口概览
该接口用于为指定网站或网页创建“推荐”异步任务。任务完成后,您可以获得与目标站点的列表,以及这些的核心搜索营销指标:
- 最近 1 个月的搜索量
- 最多 24 个月的搜索量趋势
- 当前 CPC(单次点击成本)
- 付费搜索竞争度
单次请求最多可返回 3000 个。
这是标准异步获取方式:创建任务,再在任务完成后获取结果。如果您的业务不要求实时返回,这是更推荐的调用模式,执行时间取决于系统负载。
如果需要实时返回结果,可改用对应的 实时(Live)接口;Live 模式无需拆分 POST 与 GET 两步调用。
历史数据支持近 24 个月。
请求地址
POST https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_site/task_post
计费说明
该接口按“创建任务”计费,而不是按返回数量计费。无论最终返回 1 个还是 3000 个,请求价格一致。
参考价约 ¥0.8000 / 次 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求规则
- 请求体为 UTF-8 编码的 JSON
- POST 请求体格式为 JSON 数组:
[{ ... }] - 单次 POST 最多可提交 100 个任务
- 接口调用频率上限:2000 次/分钟
- 如果单次 POST 中任务数 100,出部分将返回错误码
40006
您可以通过任务唯一标识 id 获取已完成任务的结果。 如果在创建任务时指定 postback_url 或 pingback_url,本平台也可以在任务完成后主动回调您的服务。
回调说明
postback_url:任务完成后,平台会向该地址发送 POST 请求,结果数据为 gzip 压缩pingback_url:任务完成后,平台会向该地址发送 GET 通知- URL 中可使用
$id和$tag占位符,平台回调前会自动替换 - 如果您的服务器在 10 秒 未响应,请求会因时中止,任务将对应的
tasks_ready列表,之后可自行轮询获取结果
请求参数
以下为创建任务时可用字段。
| 字段名 | 类型 | 说明 |
|---|---|---|
target | string | 填。要分析的网页 URL 或域名,用于扫描并生成。 |
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。地域列表可通过 /v3/keywords_data/bing/locations 获取。 |
location_coordinate | string | 地理坐标,格式为 "latitude,longitude"。若未传 location_name 或 location_code,则此字段填。传了该字段后,无需再传 location_name 或 location_code。数据将按坐标所属国家返回。示例:52.6178549,-155.352142 |
language_name | string | 搜索语言名称。若未传 language_code,则此字段填。支持:English、French、German |
language_code | string | 搜索语言代码。若未传 language_name,则此字段填。支持:en、fr、de |
keywords_negative | array | 可选。排除数组,结果中会忽略这些词。最多支持 200 个排除词,系统会自动转为小写。 |
device | string | 可选。设备类型。可选值:all、mobile、desktop、tablet。默认值:all |
sort_by | string | 可选。结果排序字段,按降序排序。可选值:search_volume、cpc、competition、relevance。默认值:relevance |
date_from | string | 可选。时间范围起始日期,格式:yyyy-mm-dd。最早可设为当前日期往前 24 个月。若不传,默认返回最近 12 个月数据。示例:2020-01-01。注意:不建议对过去一年的数据自定义时间范围。 |
date_to | string | 可选。时间范围结束日期,格式:yyyy-mm-dd。若不传,默认返回最近 12 个月数据。最小值为当前日期往前两年,最大值为当前日期往前一个月。示例:2020-03-15。注意:不建议对过去一年的数据自定义时间范围。 |
postback_url | string | 可选。任务完成后接收结果的回调地址。平台将以 POST 方式推送 gzip 压缩结果。支持在 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 对象会返回该值。 |
响应说明
接口返回 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 | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态说明 |
time | string | 任务处理耗时,单位秒 |
cost | float | 单个任务成本,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | 当前接口路径 |
data | object | 回显您在请求中提交的参数 |
result | array / null | 对于 task_post 提交接口,此处通常为 null,结果需后续查询或回调 |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_site/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"location_name": "United States",
"target": "example.com"
},
{
"language_code": "en",
"location_code": 2840,
"target": "example.com",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"target": "example.com",
"postback_url": "https://your-server.com/postbackscript"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_site/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# POST 请求体为 JSON 数组
payload = [
{
"location_name": "United States",
"target": "example.com"
},
{
"language_code": "en",
"location_code": 2840,
"target": "example.com",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
"location_name": "United States",
"language_name": "English",
"target": "example.com",
"postback_url": "https://your-server.com/postbackscript"
}
]
response = requests.post(url, headers=headers, json=payload, timeout=30)
print(response.status_code)
print(response.json)TypeScript
typescript
import axios from "axios";
// POST 请求体为 JSON 数组
const postArray = [
{
location_name: "United States",
target: "example.com"
},
{
language_code: "en",
location_code: 2840,
target: "example.com",
tag: "some_string_123",
pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
},
{
location_name: "United States",
language_name: "English",
target: "example.com",
postback_url: "https://your-server.com/postbackscript"
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/keywords_data/bing/keywords_for_site/task_post",
headers: {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: postArray
}).then((response) => {
console.log(response.data);
}).catch((error) => {
console.error(error);
});响应示例
json
{
"version": "0.1.20200923",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0587 sec.",
"cost": 0.05,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0312 sec.",
"cost": 0.05,
"result_count": 0,
"path": [
"v3",
"keywords_data",
"bing",
"keywords_for_site",
"task_post"
],
"data": {
"api": "keywords_data",
"function": "keywords_for_site",
"se": "bing",
"language_code": "en",
"location_code": 2840,
"target": "example.com"
},
"result": null
}
]
}状态码与异常处理
- 顶层
status_code = 20000通常表示请求成功 - 单个任务的
status_code用于判断该任务是否创建成功 - 当任务数单次限制时,出部分返回
40006 - 建议业务侧同时处理:
- HTTP 请求失败
- 顶层状态码异常
- 单任务状态码异常
- 回调时或回调地址不可达
完整错误码体系请参考 /v3/appendix/errors。
使用建议
- 异步场景优使用本接口:适合批量建任务、离线分析、定时跑数。
- 结果获取方式提前规划:可按
id轮询,也可使用pingback_url/postback_url自动接收结果。 - 时间范围谨自定义:虽然支持最长 24 个月历史,但对过去一年的数据不建议强行指定自定义时间范围。
- 控制批量大小:单请求不要 100 个任务,以
40006错误。 - 善用排除词:通过
keywords_negative去掉品牌词、无词、低价值词,可提高结果可用性。
实用场景
- 挖掘站点:竞品域名或目标页面,批量获取搜索词,用于扩展 SEO 词库与选题。
- 评估商业价值:结合搜索量、CPC 和竞争度,识别更适合投放或自然优化的高价值。
- 监控趋势变化:基于近 24 个月趋势数据,判断热度上升或下滑,为排期和季节性运营提供依据。
- 过滤无流量方向:通过
keywords_negative排除不词,输出更聚焦的集合,减少后续人工洗成本。 - 分析多地域多语言机会:针对不同国家、地区和语言分别建任务,识别化 SEO 或本地化投放的机会点。