主题
Keywords Data 任务 ID 列表
POST /v3/keywords_data/id_list
本接口使用 POST 方法,路径为 /v3/keywords_data/id_list,用于查询指定时间范围创建的 Keywords Data 任务 ID 及数据,已完成和未完成的任务。
查询时间范围最多可覆盖当前时间之前的个月;但任务数据对创建时间在当前时间之前一个月的任务提供。
- 请求频率限制:每分钟最多调用 10 次
- 单次返回数量:最多返回 1000 个任务 ID
- 请求格式:JSON 数组,编码为 UTF-8
- 接口费用:本接口不收取查询费用,响应中的
cost表示对应任务的历史计费金额。扣费以响应头X-SeerMarTech-Charge-CNY为准。
请求
请求地址
http
POST https://api.seermartech.cn/v3/keywords_data/id_list请求头
http
Authorization: Bearer smt_live_YOUR_KEY
Content-Type: application/json请求体
请求体是 JSON 数组,即使只查询一组条件,也需要使用数组格式:
json
[
{
"datetime_from": "2023-01-31 00:00:00 +00:00",
"datetime_to": "2023-02-01 00:00:00 +00:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": true
}
]请求参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
datetime_from | string | 是 | 结果筛选的开始时间。使用 UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。当 include_metadata 为 true 时,开始时间距当前时间不得一个月;当 include_metadata 为 false 时,最多可追溯个月。 |
datetime_to | string | 是 | 结果筛选的结束时间。不得晚于当前时间。使用 UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
limit | integer | 否 | 返回的最大任务 ID 数量。默认值为 1000,最大值为 1000。 |
offset | integer | 否 | 结果数组的偏移量。默认值为 0。例如设置为 10,将跳过结果中的前 10 个任务。 |
sort | string | 否 | 按任务执行时间排序。可选值:asc、desc。默认值为 asc。 |
include_metadata | boolean | 否 | 是否在响应中返回任务数据。默认值为 false。 |
时间格式示例
text
2023-01-15 12:57:46 +00:00响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用响应状态码。成功时通常为 20000。完整错误码请参考错误码说明。 |
status_message | string | 通用响应消息。 |
time | string | 本次请求的总执行时间,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
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 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求路径信息。 |
data | object | 创建任务时提交的参数。 |
result | array | 任务结果数组。 |
result 数组字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID。 |
url | string | 创建该任务时使用的 API 路径。 |
datetime_posted | string | 任务创建时间,使用 UTC 格式。 |
datetime_done | string | 任务完成时间,使用 UTC 格式。未完成任务可能不返回该字段或字段值为空。 |
status | string | 任务状态码或状态消息。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
metadata | object | 创建该任务时提交的任务参数。在 include_metadata 为 true 且任务创建时间符合限制时返回。 |
curl 示例
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/keywords_data/id_list" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"datetime_from": "2023-01-31 00:00:00 +00:00",
"datetime_to": "2023-02-01 00:00:00 +00:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": true
}
]'TypeScript 示例
typescript
import axios from "axios";
const postArray = [
{
datetime_from: "2023-01-31 00:00:00 +00:00",
datetime_to: "2023-02-01 00:00:00 +00:00",
limit: 100,
offset: 0,
sort: "desc",
include_metadata: true
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/keywords_data/id_list",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: postArray
})
.then((response) => {
// 处理响应数据
console.log(response.data);
})
.catch((error) => {
// 处理请求错误
console.error(error.response?.data || error.message);
});Python 示例
python
import requests
url = "https://api.seermartech.cn/v3/keywords_data/id_list"
post_data = [
{
"datetime_from": "2023-01-31 00:00:00 +00:00",
"datetime_to": "2023-02-01 00:00:00 +00:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": True
}
]
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.post(
url,
json=post_data,
headers=headers,
timeout=30
)
result = response.json()
if result.get("status_code") == 20000:
# 处理任务 ID 列表
print(result)
else:
print(
"请求失败,错误码:%s,错误信息:%s"
% (result.get("status_code"), result.get("status_message"))
)响应示例
json
{
"version": "0.1.20221214",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3599 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "02101728-4426-0367-0000-173638950cd5",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.075 sec.",
"cost": 0,
"result_count": 1,
"data": {
"api": "keywords_data",
"function": "id_list",
"datetime_from": "2023-01-11 00:00:00 +00:00",
"datetime_to": "2023-02-10 17:47:00 +00:00",
"limit": 100,
"sort": "desc",
"include_metadata": true
},
"result": [
{
"id": "02101728-4426-0367-0000-173638950cd5",
"url": "v3/keywords_data/google_ads/search_volume/live",
"datetime_posted": "2023-02-10 15:28:26 +00:00",
"datetime_done": "2023-02-10 15:28:26 +00:00",
"status": "20000",
"cost": 0.5400,
"metadata": {
"api": "keywords_data",
"function": "search_volume",
"se": "google_ads",
"language_code": "en",
"location_code": 2840,
"keywords": [
"seo tools",
"keyword research"
],
"date_from": "2021-08-01"
}
}
]
}
]
}状态码与错误处理
status_code = 20000:请求成功。tasks_error > 0:表示部分任务返回错误,需要进一步检查对应任务的status_code和status_message。- 任务级状态码位于
tasks[].status_code。 - 任务级错误说明位于
tasks[].status_message。 - 完整状态码和错误消息请参考错误码说明。
实用场景
- 检索历史任务 ID:按时间范围批量获取搜索量等任务的 ID,便于建立任务台账和后续结果追踪。
- 补偿未完成任务:筛选指定时间段未完成或异常的任务,触发重试和数据补采,降低数据缺失率。
- 审计任务执行记录:开启
include_metadata获取任务参数,核对语言、地区、和数据源是否符合投放计划。 - 同步多项目任务状态:结合
offset、limit和sort分页拉取任务列表,为 SEO 项目管理后台提供统一的执行进度视图。 - 核算数据成本:读取任务级
cost字段,按项目、数据源或时间段汇总历史研究费用,预算管理。