主题
创建 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
主要参数
| 字段 | 类型 | 说明 |
|---|---|---|
keyword | string | 填。搜索,最长 700 个字符。所有 %## 会被解码,+ 会被解码为空格。如需保留 %,请写为 %25;如需保留 +,请写为 %2B。如果该字段以下高级搜索运算符:allinanchor:、allintext:、allintitle:、allinurl:、cache:、define:、filetype:、id:、inanchor:、info:、intext:、intitle:、inurl:、link:、site:,则任务费用乘以 5。 |
location_code | integer | 搜索位置代码。如果未指定 location_name 或 location_coordinate,则该字段填。使用该字段时,无需再传 location_name 或 location_coordinate。可通过 /v3/serp/google/locations 获取可用位置代码。示例:2840 |
language_code | string | 搜索语言代码。如果未指定 language_name,则该字段填。使用该字段时,无需再传 language_name。可通过 /v3/serp/google/languages 获取可用语言代码。示例:en |
depth | integer | 解析深度,可选。表示需要获取的 SERP 结果数量。默认值:10;最大值:700。每 10 条结果通常按一个 SERP 计费;设置大于 10 时,如返回更多结果,可能产生额外费用。 |
device | string | 设备类型,可选。可选值:desktop、mobile。默认值:desktop |
load_async_ai_overview | boolean | 是否加载异步 AI Overview,可选。设为 true 时,即使该模块为异步加载,也会尝试获取 ai_overview 项;设为 false 时返回缓存中的 ai_overview。默认值:false。启用后额外收费参考价约 ¥0.0096 / 次;若不存在,或值为 false,额外费用会退回余额。 |
pingback_url | string | 任务完成通知地址,可选。任务完成后,平台会向该地址发送 GET 请求。支持使用 $id 和 $tag 变量。示例:http://your-server.com/pingscript?id=$id、http://your-server.com/pingscript?id=$id&tag=$tag |
postback_url | string | 结果推送地址,可选。任务完成后,平台会将结果以 gzip 压缩的 POST 请求推送到该地址。支持使用 $id 和 $tag 变量。 |
postback_data | string | 当指定 postback_url 时填。表示推送结果的数据类型。可选值:regular、advanced、html |
附加参数
| 字段 | 类型 | 说明 |
|---|---|---|
priority | integer | 任务优级,可选。1 = 普通优级(默认),2 = 高优级。高优级会额外收费。 |
location_name | string | 完整位置名称。如果未指定 location_code 或 location_coordinate,则该字段填。示例:London,England,United Kingdom |
location_coordinate | string | GPS 坐标,可选。若未指定 location_name 或 location_code,则该字段填。格式为 "latitude,longitude,radius"。latitude 和 longitude 最多 7 位小数;radius 最小 199(毫米),最大 199999(毫米)。示例:53.476225,-2.243572,200 |
language_name | string | 完整语言名称。如果未指定 language_code,则该字段填。示例:English |
tag | string | 自定义任务标识,可选,最长 255 字符。可用于后续结果匹,响应中的 data 对象会原样返回该值。 |
os | string | 设备操作系统,可选。若 device=desktop,可选 windows、macos,默认 windows;若 device=mobile,可选 android、ios,默认 android |
stop_crawl_on_match | array | 匹即停止抓取的目标数组,可选。最多可指定 10 个目标对象。若设置,响应将返回直到匹到 match_value 为止的 SERP 结果。将按抓取到满足条件前的每个 SERP 计费。 |
match_type | string | 当指定 stop_crawl_on_match 时填。匹类型。可选值:domain、with_subdomains、wildcard |
match_value | string | 当指定 stop_crawl_on_match 时填。要匹的域名、子域名或通模式。域名不要带协议头。示例:"本平台.com"、"/blog/post-*" |
max_crawl_pages | integer | 最大抓取页数,可选。最大值:100。按每页抓取计费(每页最多 10 个自然结果)。与 depth 搭使用。 |
search_param | string | 搜索查询附加参数,可选。可用于传递搜索引擎额外参数。以下参数不支持,若传会被自动忽略:lr、cr、as_qdr、as_sitesearch、as_occt、as_filetype |
remove_from_url | array | 从结果 URL 中移除指定参数,可选。最多支持 10 个参数。 |
expand_ai_overview | boolean | 是否展开 ai_overview,可选。设为 true 时会展开该。默认值:false。适用于 HTML 任务结果。 |
people_also_ask_click_depth | integer | 对 people_also_ask素的点击深度,可选。可获取更多 people_also_ask_element 项。取值范围:1 到 4。每次点击额外收费参考价约 ¥0.0024 / 次;若不存在或点击次数少于指定值,多余费用会退回余额。 |
group_organic_results | boolean | 是否合并自然结果,可选。true 时,related_result 将作为父自然结果的片段返回;false 时,related_result 作为单独的自然结果返回。默认值:true |
calculate_rectangles | boolean | 是否计算高级结果中的像素排名,可选。像素排名表示结果片段距屏幕左上角的距离。默认值:false。启用后额外收费参考价约 ¥0.0096 / 次 |
browser_screen_width | integer | 浏览器屏幕宽度,可选。用于按指定设备计算像素排名。范围:240-9999。默认值:桌面端 1920,Android 移动端 360,iOS 移动端 375。使用前需将 calculate_rectangles 设为 true |
browser_screen_height | integer | 浏览器屏幕高度,可选。范围:240-9999。默认值:桌面端 1080,Android 移动端 640,iOS 移动端 812。使用前需将 calculate_rectangles 设为 true |
browser_screen_resolution_ratio | integer | 浏览器屏幕分辨率比例,可选。范围:0.5-3。默认值:桌面端 1,Android 移动端 3,iOS 移动端 3。使用前需将 calculate_rectangles 设为 true |
url | string | 直接传搜索 URL,可选。平台会自动拆解为对应字段。但此方式处理难度最高,且要求 URL 中已准确语言和位置信息,通常不建议优使用。示例:https://www.google.co.uk/search?q=%20rank%20tracker%20api&hl=en&gl=GB&uule=w+CAIQIFISCXXeIa8LoNhHEZkq1d1aOpZS。同样不支持:lr、cr、as_qdr、as_sitesearch、as_occt、as_filetype |
target_search_mode | string | 目标匹模式,可选。需合 stop_crawl_on_match 使用。可选值:all、any。all 表示找到目标后停止,any 表示找到任一目标后停止。默认值:any |
find_targets_in | array | 指定在哪些 SERP素中查找目标,可选。需合 stop_crawl_on_match 使用。默认会检查所有 url 和 domain 字段的一级。可选值:organic、paid、local_pack、featured_snippet、events、google_flights、images、jobs、knowledge_graph、local_service、map、scholarly_articles、third_party_reviews、twitter。不能与 ignore_targets_in含相同类型 |
ignore_targets_in | array | 指定在哪些 SERP素中忽略目标匹,可选。需合 stop_crawl_on_match 使用。可选值同上,且不能与 find_targets_in 重复 |
se_domain | string | 搜索引擎域名,可选。通常平台会根据位置和语言自动选择对应域名;如有需要也可手动指定,例如:google.co.uk、google.com.au、google.de |
响应结构
服务端返回 JSON 数据, tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态信息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
tasks | array | 任务数组 |
tasks 数组字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 平台唯一任务 ID,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时 |
cost | float | 任务费用,单位 USD |
result_count | integer | result 数组个数 |
path | array | URL 路径 |
data | object | 你在 POST 请求中提交的参数 |
result | array | 结果数组;对于任务提交接口,此处通常为 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,用于跟踪站点在目标市场的搜索可见性变化。
- 抓取指定设备下的搜索结果:分别设置
desktop和mobile,对比移动端与桌面端排名差异,落地页和模板优化。 - 在品牌词监控中命中即停:结合
stop_crawl_on_match与目标域名,快速判断品牌官网或竞品是否出现在结果页,降低无效抓取成本。 - 采集 AI Overview 与 PAA 扩展结果:启用
load_async_ai_overview或people_also_ask_click_depth,用于分析搜索结果中的新型流量和问答覆盖机会。 - 计算 SERP 像素位置:通过
calculate_rectangles获取结果在页面中的像素排名,评估“第 1 名但首屏不可见”等真实问题。