Skip to content

设置 ChatGPT LLM Scraper 任务

本接口通过 ChatGPT LLM Scraper 获取 ChatGPT 搜索结果。结果会根据指定的地区和语言返回。

请求方法与路径:

http
POST https://api.seermartech.cn/v3/ai_optimization/chat_gpt/llm_scraper/task_post

本接口支持两种任务优级:

  • 1:普通优级,默认值
  • 2:高优级,执行速度更快,需额外计费

计费说明

本接口在成功提交任务时计费。

示例响应中的任务费用为 0.0012 美,按参考汇率折算,参考价约为 ¥0.0086 / 任务。高优级任务会产生额外费用。

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

请求说明

  • 请求方法:POST
  • 请求体格式:JSON 数组,编码为 UTF-8
  • 单次请求最多 100 个任务 平台限流以认证说明中的 30/60/120 次/分钟规则为准
  • 单次请求 100 个任务时,出部分将返回错误码 40006
  • 任务提交成功后,可通过返回的任务 id 查询结果
  • 也可以通过 postback_urlpingback_url 接收任务完成通知

如果回调服务器在 10 秒未返回响应,连接将因时中断,任务会转移到“处理任务”列表。错误码和错误信息取决于回调服务器的。

请求头

http
Authorization: Bearer smt_live_YOUR_KEY
Content-Type: application/json

请求参数

请求体为任务对象数组:

参数类型说明
keywordstring要提交给 ChatGPT 的查询,最长 2000 个字符。参数中的 %## 会被解码,字符 + 会被解码为空格。如需传递 %,请编码为 %25;如需传递 +,请编码为 %2B
priorityinteger任务优级:1 为普通优级,默认值;2 为高优级,需额外计费。
location_namestring条件填搜索地区的完整名称。未提供 location_code 时填写。填写此参数后无需再填写 location_code
location_codeinteger条件填搜索地区代码。未提供 location_name 时填写。填写此参数后无需再填写 location_name
language_namestring条件填搜索语言的完整名称。未提供 language_code 时填写。填写此参数后无需再填写 language_code
language_codestring条件填搜索语言代码。未提供 language_name 时填写。填写此参数后无需再填写 language_name
force_web_searchboolean是否强制 AI 代理执行联网搜索并引用当前网页信息。默认值为 false。即使设置为 true,也不保证响应一定网页来源引用。
expand_citationsboolean是否在 HTML 结果中返回展开后的引用栏。启用此参数前,同时将 force_web_search 设置为 true。默认值为 false
tagstring自定义任务标识,最长 255 个字符。可用于任务与结果,提交的值会出现在响应的 data 对象中。
postback_urlstring任务完成后接收结果的 URL。本平台会向该地址发送 gzip 压缩结果的 POST 请求。
postback_datastring条件填指定 postback_url 时填。可选值:advancedhtml
pingback_urlstring任务完成后的通知 URL。本平台会向该地址发送 GET 请求。

地区参数

可通过以下接口获取可用地区及代码:

http
GET https://api.seermartech.cn/v3/ai_optimization/chat_gpt/llm_scraper/locations

示例:

json
{
  "location_name": "United States",
  "location_code": 2840
}

语言参数

可通过以下接口获取可用语言及代码:

http
GET https://api.seermartech.cn/v3/ai_optimization/chat_gpt/llm_scraper/languages

回调 URL 占位符

postback_urlpingback_url 支持以下占位符:

  • $id:任务 ID
  • $tag:经过 URL 编码的任务标签

示例:

text
https://your-server.com/postbackscript?id=$id&tag=$tag
https://your-server.com/pingscript?id=$id&tag=$tag

发送请求前,系统会将占位符替换为值。URL 中的特殊字符会进行 URL 编码,例如 # 会编码为 %23

请求示例

cURL

bash
curl --location --request POST \
  "https://api.seermartech.cn/v3/ai_optimization/chat_gpt/llm_scraper/task_post" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '[
    {
      "language_code": "en",
      "location_code": 2840,
      "keyword": "what is chatgpt"
    },
    {
      "language_name": "English",
      "location_name": "United States",
      "keyword": "what is chatgpt",
      "priority": 2,
      "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/ai_optimization/chat_gpt/llm_scraper/task_post"

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

post_data = [
    {
        "language_code": "en",
        "location_code": 2840,
        "keyword": "what is chatgpt",
    },
    {
        "language_name": "English",
        "location_name": "United States",
        "keyword": "what is chatgpt",
        "priority": 2,
        "tag": "some_string_123",
        "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
    },
]

response = requests.post(url, headers=headers, json=post_data, timeout=30)
result = response.json()

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

TypeScript

typescript
import axios from "axios";

const postData = [
  {
    language_code: "en",
    location_code: 2840,
    keyword: "what is chatgpt",
  },
  {
    language_name: "English",
    location_name: "United States",
    keyword: "what is chatgpt",
    priority: 2,
    tag: "some_string_123",
    pingback_url:
      "https://your-server.com/pingscript?id=$id&tag=$tag",
  },
];

axios
  .post(
    "https://api.seermartech.cn/v3/ai_optimization/chat_gpt/llm_scraper/task_post",
    postData,
    {
      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 数据提交任务的信息。

字段类型说明
versionstring当前 API 版本。
status_codeinteger接口总体状态码。20000 表示请求成功。
status_messagestring接口总体状态信息。
timestring接口执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量。
tasks_errorintegertasks 数组中返回错误的任务数量。
tasksarray已提交任务列表。
tasks[].idstring系统生成的唯一任务 ID,UUID 格式。
tasks[].status_codeinteger当前任务状态码,通常在 1000060000 范围。
tasks[].status_messagestring当前任务状态信息。
tasks[].timestring当前任务执行耗时,单位为秒。
tasks[].costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks[].result_countintegerresult 数组中的数量。提交任务接口通常为 0
tasks[].patharrayAPI 请求路径。
tasks[].dataobject提交任务时使用的参数。
tasks[].resultarray/null任务结果。任务提交接口返回 null,需要通过任务查询接口获取最终结果。

响应示例

json
{
  "version": "0.1.20250526",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.0764 sec.",
  "cost": 0.0086,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": " Marbella",
      "status_code": 20100,
      "status_message": "Task Created.",
      "time": "0.0200 sec.",
      "cost": 0.0086,
      "result_count": 0,
      "path": [
        "v3",
        "ai_optimization",
        "chat_gpt",
        "llm_scraper",
        "task_post"
      ],
      "data": {
        "api": "ai_optimization",
        "function": "task_post",
        "se": "chatgpt",
        "se_type": "llm_scraper",
        "language_code": "en",
        "location_code": 2840,
        "keyword": "what is chatgpt",
        "device": "desktop",
        "os": "windows"
      },
      "result": null
    }
  ]
}

> 示例中的 tasks[0].id 应为系统返回的 UUID 字符串。请保存该 ID,并使用对应的任务查询接口获取最终结果。

状态码与错误处理

  • 20000:请求成功
  • 40006:单次请求提交的任务数量 100 个
  • tasks_error 大于 0:部分任务提交失败
  • tasks[].status_code:表示单个任务的处理状态

建议在客户端同时检查以下字段:

  1. HTTP 状态码
  2. 顶层 status_code
  3. 顶层 tasks_error
  4. 每个任务的 status_codestatus_message

实用场景

  • 批量提交用户问题:按指定国家、地区和语言采集 ChatGPT 对目标问题的回答,为 AI 搜索可见性分析提供标准化样本。
  • 比较不同地区的 AI 答案:使用不同的 location_code 提交相同,识别地域化回答差异, SEO 和本地化策略。
  • 监测品牌或产品提及:通过 tag 标记品牌、产品或主题任务,持续追踪在 ChatGPT 回答中的出现。
  • 强制采集联网回答:启用 force_web_search 获取基于当前网页信息的回答,用于分析 AI 搜索结果中的引用和来源覆盖。
  • 构建异步数据流水线postback_urlpingback_url 接收任务完成通知,降低轮询成本并及时触发后续解析、库和报告流程。

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