Skip to content

设置 Google Autocomplete 任务

POST /v3/serp/google/autocomplete/task_post

本接口使用 POST 方法,路径为 /v3/serp/google/autocomplete/task_post。用于提交 Google Autocomplete(搜索自动补)查询任务,获取指定、标位置、搜索客户端对应的自动补建议。

Google Autocomplete 会根据用户已的提供搜索建议。本平台将在任务完成后返回建议数据。每个请求使用 JSON 数组格式提交任务参数。

接口信息

  • 请求方法: POST
  • 请求地址: https://api.seermartech.cn/v3/serp/google/autocomplete/task_post
  • Content-Type: application/json
  • 认证方式: Authorization: Bearer smt_live_YOUR_KEY

平台限流以认证说明中的 30/60/120 次/分钟规则为准。单次请求任务数量限制的部分将返回错误码 40006

任务提交成功后,可以通过返回的任务 id 获取结果,也可以在请求中 pingback_urlpostback_url,由本平台在任务完成后主动通知。

如果通知服务器在 10 秒未响应,连接将因时中断,任务会转移到任务就绪列表中。

计费说明

在成功提交任务时计费。高优级任务可能产生额外费用。

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

请求参数

主要参数

参数类型说明
keywordstring查询,最长 700 个字符。请求中的 % 会被解码,字符 + 会被解码为空格。<br><br>如需在中使用 %,请编码为 %25;如需使用 +,请编码为 %2B
location_codeinteger条件填搜索位置代码。当未指定 location_name 时填。可通过 /v3/serp/google/locations 获取可用位置及代码。<br><br>示例:2840
language_codestring条件填搜索语言代码。当未指定 language_name 时填。指定此参数后,无需再指定 language_name。可通过 /v3/serp/google/languages 获取可用语言及代码。<br><br>示例:en
cursor_pointerinteger搜索框中的标位置,表示标在中的水平数值位置。调整标位置可以为同一获取不同的自动补建议。<br><br>最小值为 0。默认值为 keyword 的最后一个字符位置。
priorityinteger任务执行优级:<br>1:普通优级,默认值;<br>2:高优级。<br><br>高优级任务可能产生额外费用。
pingback_urlstring任务完成后的 GET 通知地址。本平台会向该地址发送请求。<br><br>可使用 $id$tag 占位符,本平台发送通知时会替换为任务 ID 和经过 URL 编码的标签值。<br><br>示例:https://your-server.com/pingscript?id=$id&tag=$tag<br><br>特殊字符会进行 URL 编码,例如 # 会编码为 %23
postback_urlstring用于接收任务结果的地址。任务完成后,本平台会向该地址发送结果的 POST 请求,数据采用 gzip 格式压缩。<br><br>可使用 $id$tag 占位符。<br><br>示例:https://your-server.com/postbackscript?id=$id&tag=$tag
postback_datastring条件填postback_url 返回数据的类型。指定 postback_url 时填。<br><br>可选值:advanced

附加参数

参数类型说明
clientstring自动补使用的搜索客户端。不同客户端可能返回不同的建议结果。<br><br>可选值:<br>chrome:在 Chrome 浏览器中打开 Google 搜索;<br>chrome-omni:Chrome 地址栏;<br>gws-wiz:Google 搜索首页;<br>gws-wiz-serp:Google 搜索结果页;<br>safari:在 Safari 浏览器中打开 Google 搜索;<br>firefox:在 Firefox 浏览器中打开 Google 搜索;<br>psy-ab:在 Chrome 浏览器中打开 Google 搜索时使用;<br>toolbar:返回 XML;<br>youtube:返回 JSONP;<br>gws-wiz-local:Google 本地搜索;<br>img:Google 图片搜索;<br>products-cc:Google 购物搜索。
location_namestring条件填搜索位置的完整名称。当未指定 location_code 时填。指定此参数后,无需再指定 location_code。<br><br>示例:London,England,United Kingdom
language_namestring条件填搜索语言的完整名称。当未指定 language_code 时填。指定此参数后,无需再指定 language_code。<br><br>示例:English
tagstring自定义任务标识,最长 255 个字符。可用于匹任务与结果。提交的值会出现在响应任务的 data 对象中。

##标位置示例

假设为 which query are s

标位置cursor_pointer位置示意
末尾16which query are s|
开头0|which query are s
中间位置9which que|ry are s

请求示例

curl

bash
curl --location --request POST \
  'https://api.seermartech.cn/v3/serp/google/autocomplete/task_post' \
  --header 'Authorization: Bearer smt_live_YOUR_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '[
    {
      "language_code": "en",
      "location_code": 2840,
      "keyword": "albert einstein",
      "cursor_pointer": 6
    },
    {
      "language_name": "English",
      "location_name": "United States",
      "keyword": "albert einstein",
      "cursor_pointer": 6,
      "tag": "some_string_123",
      "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
    }
  ]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/serp/google/autocomplete/task_post"

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

tasks = [
    {
        "language_code": "en",
        "location_code": 2840,
        "keyword": "albert einstein",
        "cursor_pointer": 6,
    },
    {
        "language_name": "English",
        "location_name": "United States",
        "keyword": "albert einstein",
        "cursor_pointer": 6,
        "tag": "some_string_123",
        "pingback_url": (
            "https://your-server.com/pingscript"
            "?id=$id&tag=$tag"
        ),
    },
]

response = requests.post(url, headers=headers, json=tasks)
data = response.json()

if data.get("status_code") == 20000:
    print(data)
else:
    print(
        f"请求失败,错误码:{data.get('status_code')},"
        f"错误信息:{data.get('status_message')}"
    )

TypeScript

typescript
import axios from "axios";

const tasks = [
  {
    language_code: "en",
    location_code: 2840,
    keyword: "albert einstein",
    cursor_pointer: 6,
  },
  {
    language_name: "English",
    location_name: "United States",
    keyword: "albert einstein",
    cursor_pointer: 6,
    tag: "some_string_123",
    pingback_url:
      "https://your-server.com/pingscript?id=$id&tag=$tag",
  },
];

axios
  .post(
    "https://api.seermartech.cn/v3/serp/google/autocomplete/task_post",
    tasks,
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error.response?.data || error.message);
  });

响应结构

接口返回 JSON 数据 tasks 数组已提交任务的信息。

json
{
  "version": "0.1.20231117",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.0639 sec.",
  "cost": 0.0006,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "0727f2e8-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "status_code": 20100,
      "status_message": "Task Created.",
      "time": "0.0123 sec.",
      "cost": 0.0006,
      "result_count": 0,
      "path": [
        "v3",
        "serp",
        "google",
        "autocomplete",
        "task_post"
      ],
      "data": {
        "api": "serp",
        "function": "task_post",
        "se": "google",
        "se_type": "autocomplete",
        "language_code": "en",
        "location_code": 2840,
        "keyword": "albert einstein",
        "cursor_pointer": 6,
        "device": "desktop",
        "os": "windows"
      },
      "result": null
    }
  ]
}

响应字段

顶层字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger请求整体状态码。成功通常为 20000
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 数组中的结果数量。任务提交接口通常为 0
patharray请求路径的组成部分。
dataobject请求中提交的任务参数。
resultarray | null任务结果数组。提交任务时通常为 null,需通过任务 ID 获取后续结果。

错误处理

  • 20000:请求成功。
  • 40006:单次请求提交的任务数 100 个。
  • tasks_error 大于 0:表示部分任务提交失败,应逐项检查 tasks 中对应任务的 status_codestatus_message
  • 建议根据 HTTP 状态码、顶层 status_code 以及单任务状态码分别设计异常处理逻辑。

实用场景

  • 批量采集联想词:围绕核心词提交多个自动补任务,扩展长尾库,支持选题和分组。
  • 比较不同标位置的搜索建议:调整 cursor_pointer 获取同一在不同位置的建议,分析用户可能补的查询意图。
  • 对比不同搜索客户端的联想结果:使用 client 参数比较 Chrome、Safari、移动端客户端的建议差异,优化跨终端 SEO 策略。
  • 按地区和语言挖掘本地化需求:组合 location_codelocation_namelanguage_codelanguage_name,发现不同市场的本地搜索需求。
  • 通过回调自动更新数据pingback_urlpostback_url,在任务完成后自动接收通知或结果,减少轮询并提高批处理效率。

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