Skip to content

创建 WordPress V2 SERP 任务

GET /v3/serp/wp/v2/task_post

本接口用于提交 WordPress 搜索结果页(SERP)采集任务。默认返回前 10 条搜索结果,结果会根据你指定的位置与语言返回。

支持两种执行优级:

  • 1:普通优级
  • 2:高优级

接口地址

POST https://api.seermartech.cn/v3/serp/wp/v2/task_post

计费说明

该接口在创建任务时计费。

  • 基础参考价约 ¥0.0240 / 次
  • 若启用异步 AI Overview 抓取:额外参考价约 ¥0.0096 / 次
  • 若启用像素排名计算:额外参考价约 ¥0.0096 / 次
  • people_also_ask_click_depth 每次点击额外参考价约 ¥0.0024 / 次
  • 若中特定高级搜索运算符,任务费用会按 5 倍计算
  • depth > 10,若搜索引擎返回 10 条结果,可能产生额外扣费
  • 高优级任务会额外收费
  • 使用 max_crawl_pages 时,按抓取页数计费

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

请求格式

  • 请求体为 UTF-8 编码的 JSON
  • POST 请求体格式为:[{ ... }]
  • 单次请求最多可 100 个任务
  • 每分钟最多可发送 2000 次 API 调用
  • 如果单次 POST 请求中任务数 100,出的任务会返回错误 40006

结果获取方式

任务创建成功后,可通过返回的唯一任务标识 id 获取结果。

你也可以在创建任务时指定以下回调方式:

  • pingback_url:任务完成后,以 GET 请求通知你的服务端
  • postback_url:任务完成后,将结果以 gzip 压缩的 POST 请求推送到你的服务端

注意事项:

  • 可在回调 URL 中使用 $id$tag
  • 平台会在回调前自动替换为值
  • 若你的服务端 10 秒未响应,连接会因时中断,任务会转对应的 Tasks Ready 列表
  • 回调 URL 中的特殊字符会进行 URL 编码,例如 # 会被编码为 %23

主要参数

字段类型说明
keywordstring。搜索,最长 700 个字符。所有 %## 会被解码,+ 会被解码为空格。如需保留 %,请写为 %25;如需保留 +,请写为 %2B。如果该字段以下高级搜索运算符:allinanchor:allintext:allintitle:allinurl:cache:define:filetype:id:inanchor:info:intext:intitle:inurl:link:site:,则任务费用乘以 5
location_codeinteger搜索位置代码。如果未指定 location_namelocation_coordinate,则该字段。使用该字段时,无需再传 location_namelocation_coordinate。可通过 /v3/serp/google/locations 获取可用位置代码。示例:2840
language_codestring搜索语言代码。如果未指定 language_name,则该字段。使用该字段时,无需再传 language_name。可通过 /v3/serp/google/languages 获取可用语言代码。示例:en
depthinteger解析深度,可选。表示需要获取的 SERP 结果数量。默认值:10;最大值:700每 10 条结果通常按一个 SERP 计费;设置大于 10 时,如返回更多结果,可能产生额外费用。
devicestring设备类型,可选。可选值:desktopmobile。默认值:desktop
load_async_ai_overviewboolean是否加载异步 AI Overview,可选。设为 true 时,即使该模块为异步加载,也会尝试获取 ai_overview 项;设为 false 时返回缓存中的 ai_overview。默认值:false启用后额外收费参考价约 ¥0.0096 / 次;若不存在,或值为 false,额外费用会退回余额。
pingback_urlstring任务完成通知地址,可选。任务完成后,平台会向该地址发送 GET 请求。支持使用 $id$tag 变量。示例:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
postback_urlstring结果推送地址,可选。任务完成后,平台会将结果以 gzip 压缩的 POST 请求推送到该地址。支持使用 $id$tag 变量。
postback_datastring当指定 postback_url。表示推送结果的数据类型。可选值:regularadvancedhtml

附加参数

字段类型说明
priorityinteger任务优级,可选。1 = 普通优级(默认),2 = 高优级。高优级会额外收费。
location_namestring完整位置名称。如果未指定 location_codelocation_coordinate,则该字段。示例:London,England,United Kingdom
location_coordinatestringGPS 坐标,可选。若未指定 location_namelocation_code,则该字段。格式为 "latitude,longitude,radius"latitudelongitude 最多 7 位小数;radius 最小 199(毫米),最大 199999(毫米)。示例:53.476225,-2.243572,200
language_namestring完整语言名称。如果未指定 language_code,则该字段。示例:English
tagstring自定义任务标识,可选,最长 255 字符。可用于后续结果匹,响应中的 data 对象会原样返回该值。
osstring设备操作系统,可选。若 device=desktop,可选 windowsmacos,默认 windows;若 device=mobile,可选 androidios,默认 android
stop_crawl_on_matcharray匹即停止抓取的目标数组,可选。最多可指定 10 个目标对象。若设置,响应将返回直到匹到 match_value 为止的 SERP 结果。将按抓取到满足条件前的每个 SERP 计费。
match_typestring当指定 stop_crawl_on_match 时填。匹类型。可选值:domainwith_subdomainswildcard
match_valuestring当指定 stop_crawl_on_match 时填。要匹的域名、子域名或通模式。域名不要带协议头。示例:"本平台.com""/blog/post-*"
max_crawl_pagesinteger最大抓取页数,可选。最大值:100。按每页抓取计费(每页最多 10 个自然结果)。与 depth 搭使用。
search_paramstring搜索查询附加参数,可选。可用于传递搜索引擎额外参数。以下参数不支持,若传会被自动忽略:lrcras_qdras_sitesearchas_occtas_filetype
remove_from_urlarray从结果 URL 中移除指定参数,可选。最多支持 10 个参数
expand_ai_overviewboolean是否展开 ai_overview,可选。设为 true 时会展开该。默认值:false适用于 HTML 任务结果
people_also_ask_click_depthintegerpeople_also_ask素的点击深度,可选。可获取更多 people_also_ask_element 项。取值范围:14。每次点击额外收费参考价约 ¥0.0024 / 次;若不存在或点击次数少于指定值,多余费用会退回余额。
group_organic_resultsboolean是否合并自然结果,可选。true 时,related_result 将作为父自然结果的片段返回;false 时,related_result 作为单独的自然结果返回。默认值:true
calculate_rectanglesboolean是否计算高级结果中的像素排名,可选。像素排名表示结果片段距屏幕左上角的距离。默认值:false启用后额外收费参考价约 ¥0.0096 / 次
browser_screen_widthinteger浏览器屏幕宽度,可选。用于按指定设备计算像素排名。范围:240-9999。默认值:桌面端 1920,Android 移动端 360,iOS 移动端 375。使用前需将 calculate_rectangles 设为 true
browser_screen_heightinteger浏览器屏幕高度,可选。范围:240-9999。默认值:桌面端 1080,Android 移动端 640,iOS 移动端 812。使用前需将 calculate_rectangles 设为 true
browser_screen_resolution_ratiointeger浏览器屏幕分辨率比例,可选。范围:0.5-3。默认值:桌面端 1,Android 移动端 3,iOS 移动端 3。使用前需将 calculate_rectangles 设为 true
urlstring直接传搜索 URL,可选。平台会自动拆解为对应字段。但此方式处理难度最高,且要求 URL 中已准确语言和位置信息,通常不建议优使用。示例:https://www.google.co.uk/search?q=%20rank%20tracker%20api&hl=en&gl=GB&uule=w+CAIQIFISCXXeIa8LoNhHEZkq1d1aOpZS。同样不支持:lrcras_qdras_sitesearchas_occtas_filetype
target_search_modestring目标匹模式,可选。需合 stop_crawl_on_match 使用。可选值:allanyall 表示找到目标后停止,any 表示找到任一目标后停止。默认值:any
find_targets_inarray指定在哪些 SERP素中查找目标,可选。需合 stop_crawl_on_match 使用。默认会检查所有 urldomain 字段的一级。可选值:organicpaidlocal_packfeatured_snippeteventsgoogle_flightsimagesjobsknowledge_graphlocal_servicemapscholarly_articlesthird_party_reviewstwitter不能与 ignore_targets_in含相同类型
ignore_targets_inarray指定在哪些 SERP素中忽略目标匹,可选。需合 stop_crawl_on_match 使用。可选值同上,且不能与 find_targets_in 重复
se_domainstring搜索引擎域名,可选。通常平台会根据位置和语言自动选择对应域名;如有需要也可手动指定,例如:google.co.ukgoogle.com.augoogle.de

响应结构

服务端返回 JSON 数据, tasks 数组。

顶层字段

字段类型说明
versionstring当前 API 版本
status_codeinteger通用状态码
status_messagestring通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务数组

tasks 数组字段

字段类型说明
idstring平台唯一任务 ID,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态信息
timestring任务执行耗时
costfloat任务费用,单位 USD
result_countintegerresult 数组个数
patharrayURL 路径
dataobject你在 POST 请求中提交的参数
resultarray结果数组;对于任务提交接口,此处通常为 null

常见状态说明

  • 20000:请求成功
  • 20100:任务已创建
  • 40006:单次请求中的任务数 100

建议在接时完整处理状态码、时和回调异常场景。

请求示例

cURL

bash
curl --location --request POST 'https://api.seermartech.cn/v3/serp/wp/v2/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"
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/serp/wp/v2/task_post"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

# POST 请求体为 JSON 数组
payload = [
 {
 "language_code": "en",
 "location_code": 2840,
 "keyword": "albert einstein"
 },
 {
 "language_name": "English",
 "location_name": "United States",
 "keyword": "albert einstein",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 },
 {
 "url": "https://www.google.co.uk/search?q=albert%20einstein&hl=en&gl=GB&uule=w+CAIQIFISCXXeIa8LoNhHEZkq1d1aOpZS",
 "postback_data": "html",
 "postback_url": "https://your-server.com/postbackscript"
 }
]

response = requests.post(url, headers=headers, json=payload, timeout=30)
print(response.json)

TypeScript

typescript
import axios from "axios";

// POST 请求体为 JSON 数组
const postArray = [
 {
 language_code: "en",
 location_code: 2840,
 keyword: "albert einstein"
 },
 {
 language_name: "English",
 location_name: "United States",
 keyword: "albert einstein",
 priority: 2,
 tag: "some_string_123",
 pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
 },
 {
 url: "https://www.google.co.uk/search?q=albert%20einstein&hl=en&gl=GB&uule=w+CAIQIFISCXXeIa8LoNhHEZkq1d1aOpZS",
 postback_data: "html",
 postback_url: "https://your-server.com/postbackscript"
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/serp/wp/v2/task_post",
 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);
 });

响应示例

json
{
 "version": "0.1.20200129",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0818 sec.",
 "cost": 0.0045,
 "tasks_count": 3,
 "tasks_error": 0,
 "tasks": [
 {
 "id": "01291721-1535-0066-0000-2e7a8bf7302b",
 "status_code": 20100,
 "status_message": "Task Created.",
 "time": "0.0041 sec.",
 "cost": 0.0015,
 "result_count": 0,
 "path": [
 "v3",
 "serp",
 "wp",
 "v2",
 "task_post"
 ],
 "data": {
 "api": "serp",
 "function": "task_post",
 "se": "wp",
 "se_type": "v2",
 "language_code": "en",
 "location_code": 2840,
 "keyword": "albert enstein",
 "device": "desktop",
 "os": "windows"
 },
 "result": null
 },
 {
 "id": "01291721-1535-0066-0000-2e7a8bf7302c",
 "status_code": 20100,
 "status_message": "Task Created.",
 "time": "0.0050 sec.",
 "cost": 0.0015,
 "result_count": 0,
 "path": [
 "v3",
 "serp",
 "wp",
 "v2",
 "task_post"
 ],
 "data": {
 "api": "serp",
 "function": "task_post",
 "se": "wp",
 "se_type": "v2",
 "language_name": "English",
 "location_name": "United States",
 "keyword": "albert enstein",
 "priority": 2,
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
 "tag": "some_string_123",
 "device": "desktop",
 "os": "windows"
 },
 "result": null
 },
 {
 "id": "01291721-1535-0066-0000-ed3110168d43",
 "status_code": 20100,
 "status_message": "Task Created.",
 "time": "0.0040 sec.",
 "cost": 0.0015,
 "result_count": 0,
 "path": [
 "v3",
 "serp",
 "wp",
 "v2",
 "task_post"
 ],
 "data": {
 "api": "serp",
 "function": "task_post",
 "se": "wp",
 "se_type": "v2",
 "url": "https://www.google.co.uk/search?q=albert%20einstein&hl=en&gl=GB&uule=w+CAIQIFISCXXeIa8LoNhHEZkq1d1aOpZS",
 "postback_data": "html",
 "postback_url": "https://your-server.com/postbackscript",
 "device": "desktop",
 "os": "windows"
 },
 "result": null
 }
 ]
}

实用场景

  • 批量提交监控任务:按国家、城市、语言维度持续采集 WordPress SERP,用于跟踪站点在目标市场的搜索可见性变化。
  • 抓取指定设备下的搜索结果:分别设置 desktopmobile,对比移动端与桌面端排名差异,落地页和模板优化。
  • 在品牌词监控中命中即停:结合 stop_crawl_on_match 与目标域名,快速判断品牌官网或竞品是否出现在结果页,降低无效抓取成本。
  • 采集 AI Overview 与 PAA 扩展结果:启用 load_async_ai_overviewpeople_also_ask_click_depth,用于分析搜索结果中的新型流量和问答覆盖机会。
  • 计算 SERP 像素位置:通过 calculate_rectangles 获取结果在页面中的像素排名,评估“第 1 名但首屏不可见”等真实问题。

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