Skip to content

keywords_data/bing/search_volume_history/tasks_ready

GET /v3/keywords_data/bing/search_volume_history/tasks_ready

获取 Bing「搜索量历史」已完成任务

请求方式: GET
请求路径: /v3/keywords_data/bing/search_volume_history/tasks_ready

本接口用于获取已完成但尚未被收取的「搜索量历史」任务列表。使用标准任务提交方式且未设置 postback_url 时,可通过本接口获取所有已完成任务的 id,然后调用对应的任务结果接口获取详细结果。

注意事项

  • 获取已完成任务列表不收取费用,参考价约 ¥0 / 次。
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
  • 每个任务在被成功收取前都会保留在列表中。
  • 每分钟最多调用 20 次。
  • 每次调用最多返回过去 3 天完成的 1000 个任务。
  • 已经被收取的任务不会再次出现在列表中。
  • 任务完成后 3 天仍未被收取,也不会继续出现在列表中。
  • 如果提交任务时设置了 postback_url,任务通常不会出现在本列表中。当向你的服务器推送失败,且服务器返回的 HTTP 状态码小于 200 或大于 300 时,任务才可能重新出现在列表中。
  • 由于系统架构原因,已完成任务队列可能存在短暂更新延迟。若系统需要每分钟收取 1000 个任务,建议优使用 pingback/postback 机制,并将本接口用于获取推送失败任务的 ID。

请求参数

本接口为 GET 请求,无需请求体和查询参数。

认证方式

请求头使用 Bearer Token:

http
Authorization: Bearer smt_live_YOUR_KEY

响应字段

接口返回 JSON 格式数据,顶层 tasks 数组。

顶层字段

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

tasks 数组字段

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

tasks[].data 常见字段

字段名类型说明
apistringAPI 模块名称,例如 keywords_data
functionstring任务类型,例如 search_volume_history
sestring搜索引擎,例如 bing

tasks[].result 字段

字段名类型说明
idstring已完成任务的唯一标识,UUID 格式
sestring创建任务时指定的搜索引擎
functionstring任务类型
date_postedstring任务提交时间,使用 UTC 格式
endpointstring用于收取任务结果的 URL 路径

curl 示例

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

PHP 示例

php
<?php

$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://api.seermartech.cn/v3/keywords_data/bing/search_volume_history/tasks_ready',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer smt_live_YOUR_KEY',
        'Content-Type: application/json',
    ],
]);

$response = curl_exec($ch);

if ($response === false) {
    echo '请求失败:' . curl_error($ch);
} else {
    $result = json_decode($response, true);

    if (($result['status_code'] ?? null) === 20000) {
        print_r($result);
    } else {
        echo '错误码:' . ($result['status_code'] ?? '未知');
        echo ',错误信息:' . ($result['status_message'] ?? '未知');
    }
}

curl_close($ch);

TypeScript 示例

typescript
import axios from 'axios';

axios({
  method: 'get',
  url: 'https://api.seermartech.cn/v3/keywords_data/bing/search_volume_history/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.tasks);
    } else {
      console.error(
        `错误码:${result.status_code},错误信息:${result.status_message}`,
      );
    }
  })
  .catch((error) => {
    console.error('请求失败:', error.message);
  });

Python 示例

python
import requests

url = (
    "https://api.seermartech.cn/"
    "v3/keywords_data/bing/search_volume_history/tasks_ready"
)

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

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

if result.get("status_code") == 20000:
    print("已完成任务:", result.get("tasks", []))
else:
    print(
        "错误码:%s,错误信息:%s"
        % (result.get("status_code"), result.get("status_message"))
    )

C# 示例

csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

public static class ApiDemo
{
    public static async Task GetTasksReady()
    {
        using var httpClient = new HttpClient();

        httpClient.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue(
                "Bearer",
                "smt_live_YOUR_KEY"
            );

        var url =
            "https://api.seermartech.cn/v3/keywords_data/" +
            "bing/search_volume_history/tasks_ready";

        var response = await httpClient.GetAsync(url);
        var responseText = await response.Content.ReadAsStringAsync();

        if (response.IsSuccessStatusCode)
        {
            Console.WriteLine(responseText);
        }
        else
        {
            Console.WriteLine(
                $"HTTP 请求失败:{(int)response.StatusCode} {response.ReasonPhrase}"
            );
        }
    }
}

响应示例

json
{
  "version": "0.1.20240626",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.1358 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "01234567-89ab-cdef-0123-456789abcdef",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.4210 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "keywords_data",
        "bing",
        "search_volume_history",
        "tasks_ready"
      ],
      "data": {
        "api": "keywords_data",
        "function": "search_volume_history",
        "se": "bing"
      },
      "result": [
        {
          "id": "98765432-10fe-dcba-9876-543210fedcba",
          "se": "bing",
          "function": "search_volume_history",
          "date_posted": "2024-06-26 08:30:00 +00:00",
          "endpoint": "/v3/keywords_data/bing/search_volume_history/task_get/98765432-10fe-dcba-9876-543210fedcba"
        }
      ]
    }
  ]
}

状态码与异常处理

建议客户端至少处理以下:

  • status_code = 20000:请求成功。
  • 顶层 status_code20000:请求级错误,应根据 status_message 和错误码进行处理。
  • tasks_error > 0:部分任务返回错误,应逐项检查 tasks[].status_code
  • tasks 为空数组:当前没有符合条件的未收取任务,或任务队列尚未完成更新。
  • HTTP 请求时或网络错误:建议使用有限次数的重试,并每分钟 20 次的调用限制。

实用场景

  • 轮询未设置回调地址的已完成任务:定期获取任务 ID 并收取 Bing 搜索量历史结果,遗漏异步任务。
  • 补偿推送失败的任务:识别未成功推送到业务服务器的任务,并通过任务结果接口进行补偿获取。
  • 构建任务收取队列:任务完成状态批量拉取结果,提升搜索量数据处理的自动化程度。
  • 监控异步任务处理延迟:结合 date_postedtime 和轮询时间分析任务完成及收取延迟,优化数据管道调度。
  • 同步 SEO 历史趋势:批量收取 Bing 历史搜索量,为规划、优级排序和市场趋势分析提供数据支持。

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