Skip to content

获取 Bing URL 建议已完成任务

本接口使用 GET 方法,请求路径为:

/v3/keywords_data/bing/keyword_suggestions_for_url/tasks_ready

用于获取已完成但尚未领取的 Bing URL 建议任务列表。使用标准任务提交方式且未设置 postback_url 时,可通过本接口获取已完成任务的 id,再调用对应的任务结果获取接口领取结果。

> 已完成任务队列可能存在短暂延迟。若系统需要每分钟领取 1000 个任务,建议优使用回调方式接收结果,并将本接口用于获取回调失败任务的 ID。

请求信息

  • 请求方法GET
  • 请求地址https://api.seermartech.cn/v3/keywords_data/bing/keyword_suggestions_for_url/tasks_ready
  • 认证方式:Bearer Token
  • 请求体:无
  • 返回格式:JSON

计费与调用限制

  • 获取已完成任务列表不产生费用。
  • 每个任务在被领取前都会持续保留在列表中。
  • 每分钟最多调用 20 次。
  • 每次调用最多返回过去 3 天完成的 1000 个任务。
  • 已领取的任务不会再次出现在列表中。
  • 完成后 3 天仍未领取的任务将从列表中移除。
  • 如果提交任务时设置了 postback_url,任务通常不会出现在本接口返回列表中。
  • 当向回调地址发送请求失败,且对方返回的 HTTP 状态码小于 200 或大于 300 时,该任务才可能出现在已完成任务列表中。

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

响应字段

顶层字段

字段类型说明
versionstring当前 API 版本
status_codeinteger请求级状态码
status_messagestring请求级状态说明
timestring请求执行时间,单位为秒
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中返回错误的任务数量
tasksarray已完成任务信息数组

tasks 数组字段

字段类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,通常处于 1000060000 范围
status_messagestring任务状态说明
timestring任务执行时间,单位为秒
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的数量
patharray请求 URL 路径
dataobject任务请求中传的参数
resultarray已完成任务结果列表

tasks[].result 字段

字段类型说明
idstring已完成任务的唯一标识,UUID 格式
sestring创建任务时指定的搜索引擎,此处为 bing
functionstring任务类型,此处为 keyword_suggestions_for_url
date_postedstring任务提交时间,采用 UTC 格式
tagstring用户自定义任务标识
endpointstring用于领取该任务结果的接口地址

请求示例

cURL

bash
curl --location --request GET \
  "https://api.seermartech.cn/v3/keywords_data/bing/keyword_suggestions_for_url/tasks_ready" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json"

Python

python
import requests

url = "https://api.seermartech.cn/v3/keywords_data/bing/keyword_suggestions_for_url/tasks_ready"

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

response = requests.get(url, headers=headers)

if response.status_code == 200:
    result = response.json()
    if result.get("status_code") == 20000:
        # 处理已完成任务列表
        print(result)
    else:
        print(
            "请求失败,状态码:%s,说明:%s"
            % (result.get("status_code"), result.get("status_message"))
        )
else:
    print("HTTP 请求失败:%s" % response.status_code)

TypeScript

typescript
import axios from "axios";

axios
  .get(
    "https://api.seermartech.cn/v3/keywords_data/bing/keyword_suggestions_for_url/tasks_ready",
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    const result = response.data;

    if (result.status_code === 20000) {
      // 处理已完成任务列表
      console.log(result);
    } else {
      console.error(
        `请求失败,状态码:${result.status_code},说明:${result.status_message}`
      );
    }
  })
  .catch((error) => {
    console.error("请求异常:", error);
  });

响应示例

json
{
  "version": "0.1.20240801",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.1638 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "01234567-89ab-cdef-0123-456789abcdef",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.8421 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "keywords_data",
        "bing",
        "keyword_suggestions_for_url",
        "tasks_ready"
      ],
      "data": {
        "api": "keywords_data",
        "function": "keyword_suggestions_for_url",
        "se": "bing"
      },
      "result": [
        {
          "id": "01234567-89ab-cdef-0123-456789abcdef",
          "se": "bing",
          "function": "keyword_suggestions_for_url",
          "date_posted": "2024-08-01 12:00:00 +00:00",
          "tag": "seo-project-001",
          "endpoint": "/v3/keywords_data/bing/keyword_suggestions_for_url/task_get"
        }
      ]
    }
  ]
}

状态码处理

请在客户端实现完善的异常处理机制,同时检查以下字段:

  • HTTP 状态码,用于判断网络层请求是否成功。
  • 顶层 status_code,用于判断本次接口调用是否成功。
  • tasks[].status_code,用于判断单个已完成任务是否可正常领取。
  • status_message,用于记录或展示错误原因。

当顶层 status_code20000 时,表示请求成功。成功响应中的 tasks 可能为空数组,表示当前没有可领取的已完成任务。

实用场景

  • 轮询未设置回调的已完成任务:定期获取任务 ID 并领取建议结果,适用于无法部署回调接收服务的系统。
  • 补偿回调失败任务:识别回调投递失败后重新队列的任务,降低数据丢失风险。
  • 构建任务领取队列:按任务完成状态批量拉取任务并交给后续处理流程,提高 SEO 数据采集效率。
  • 监控建议任务积压:统计领取任务数量和错误数量,及时发现采集链路延迟或异常。
  • 管理多站点研究流程:结合 tag 区分不同网站、项目或客户,便于将完成结果准确分发到对应业务。

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