实时 Google AI 模式搜索结果页
curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"location_code": 123,
"location_name": "<string>",
"location_coordinate": "<string>",
"language_name": "<string>",
"language_code": "<string>",
"device": "<string>",
"calculate_rectangles": true,
"browser_screen_width": 123,
"browser_screen_height": 123,
"browser_screen_resolution_ratio": 123
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced"
payload = [
{
"keyword": "<string>",
"location_code": 123,
"location_name": "<string>",
"location_coordinate": "<string>",
"language_name": "<string>",
"language_code": "<string>",
"device": "<string>",
"calculate_rectangles": True,
"browser_screen_width": 123,
"browser_screen_height": 123,
"browser_screen_resolution_ratio": 123
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
location_code: 123,
location_name: '<string>',
location_coordinate: '<string>',
language_name: '<string>',
language_code: '<string>',
device: '<string>',
calculate_rectangles: true,
browser_screen_width: 123,
browser_screen_height: 123,
browser_screen_resolution_ratio: 123
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'location_code' => 123,
'location_name' => '<string>',
'location_coordinate' => '<string>',
'language_name' => '<string>',
'language_code' => '<string>',
'device' => '<string>',
'calculate_rectangles' => true,
'browser_screen_width' => 123,
'browser_screen_height' => 123,
'browser_screen_resolution_ratio' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks[].result": [
"<string>"
],
"tasks[].result[].keyword": "<string>",
"tasks[].result[].type": "<string>",
"tasks[].result[].se_domain": "<string>",
"tasks[].result[].location_code": 123,
"tasks[].result[].language_code": "<string>",
"tasks[].result[].check_url": "<string>",
"tasks[].result[].item_types": [
"<string>"
],
"tasks[].result[].items_count": 123,
"tasks[].result[].items": [
"<string>"
]
}AI 模式
实时 Google AI 模式搜索结果页
实时返回 Google AI Mode 搜索结果页结果。
POST
https://api.aisa.one/apis/v1
/
dataforseo
/
serp
/
google
/
ai_mode
/
live
/
advanced
实时 Google AI 模式搜索结果页
curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"location_code": 123,
"location_name": "<string>",
"location_coordinate": "<string>",
"language_name": "<string>",
"language_code": "<string>",
"device": "<string>",
"calculate_rectangles": true,
"browser_screen_width": 123,
"browser_screen_height": 123,
"browser_screen_resolution_ratio": 123
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced"
payload = [
{
"keyword": "<string>",
"location_code": 123,
"location_name": "<string>",
"location_coordinate": "<string>",
"language_name": "<string>",
"language_code": "<string>",
"device": "<string>",
"calculate_rectangles": True,
"browser_screen_width": 123,
"browser_screen_height": 123,
"browser_screen_resolution_ratio": 123
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
location_code: 123,
location_name: '<string>',
location_coordinate: '<string>',
language_name: '<string>',
language_code: '<string>',
device: '<string>',
calculate_rectangles: true,
browser_screen_width: 123,
browser_screen_height: 123,
browser_screen_resolution_ratio: 123
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'location_code' => 123,
'location_name' => '<string>',
'location_coordinate' => '<string>',
'language_name' => '<string>',
'language_code' => '<string>',
'device' => '<string>',
'calculate_rectangles' => true,
'browser_screen_width' => 123,
'browser_screen_height' => 123,
'browser_screen_resolution_ratio' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"location_code\": 123,\n \"location_name\": \"<string>\",\n \"location_coordinate\": \"<string>\",\n \"language_name\": \"<string>\",\n \"language_code\": \"<string>\",\n \"device\": \"<string>\",\n \"calculate_rectangles\": true,\n \"browser_screen_width\": 123,\n \"browser_screen_height\": 123,\n \"browser_screen_resolution_ratio\": 123\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks[].result": [
"<string>"
],
"tasks[].result[].keyword": "<string>",
"tasks[].result[].type": "<string>",
"tasks[].result[].se_domain": "<string>",
"tasks[].result[].location_code": 123,
"tasks[].result[].language_code": "<string>",
"tasks[].result[].check_url": "<string>",
"tasks[].result[].item_types": [
"<string>"
],
"tasks[].result[].items_count": 123,
"tasks[].result[].items": [
"<string>"
]
}实时返回 Google AI Mode 搜索结果页结果。每次 Live SERP 调用只能包含一个任务。
在你的 agent 里把这个端点跑起来 →
示例
curl -X POST "https://api.aisa.one/apis/v1/dataforseo/serp/google/ai_mode/live/advanced" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[{"keyword": "...", "location_code": "...", "location_name": "..."}]'
// 把整段复制给 Claude Code、Codex、Cursor 或任意 coding agent。
// 连接、授权、跑通这个例子需要的东西都在里面 ——
// 不用粘贴任何 key,浏览器里点一次 Allow 就好。
{
"operation_id": "post_dataforseo_serp_google_ai_mode_live",
"arguments": {},
"max_price_usd": 0.05
}
// ── for the agent ─────────────────────────────────────────────────────────
// Register the AIsa MCP server, then call its `use` tool with the JSON above.
// name aisa
// endpoint https://mcp.aisa.one/mcp
// transport streamable-http
// auth OAuth. The server publishes RFC 9728 metadata, so open a
// browser and the user clicks Allow once — nothing to paste.
// If AISA_API_KEY is set, send it as a bearer header instead.
// Use your own MCP mechanism, not a hand-edited config file:
// Codex codex mcp add aisa --url https://mcp.aisa.one/mcp
// Claude Code claude mcp add --transport http -s user aisa https://mcp.aisa.one/mcp
// Cursor / VS Code a "url" entry for https://mcp.aisa.one/mcp in the MCP config
// The server lists five tools over https://mcp.aisa.one/servers worth of APIs:
// search, get_details, use, batch_use, list_categories. search and
// get_details are free; use is billed per call and max_price_usd refuses
// anything above the cap before spending. This operation's full contract —
// every argument, the response shape, the price and the pitfalls — is at
// https://aisa.one/docs/zh/api-reference/dataforseo/post_dataforseo-serp-google-ai-mode-live-advanced.md
// Then run the call and show me the result.
第一次用? 把任意 MCP 客户端指向
https://mcp.aisa.one/mcp —— Claude Code、
Codex、Cursor、VS Code 都可以。鉴权走 OAuth:客户端打开浏览器,你点一次
Allow,不需要粘贴任何 key。各客户端的具体命令和每次调用的价格见
aisa.one/zh-cn/mcp。授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
请求体
application/json
关键词;最多可指定 700 个字符
搜索引擎位置代码;如果未指定 location_name 或 location_coordinate,则为必填项
搜索引擎位置的完整名称;如果未指定 location_code 或 location_coordinate,则此项为必填项
位置的 GPS 坐标;如果未指定 location_name 或 location_code,则为必填项
搜索引擎语言的完整名称;未指定 language_code 时必填
搜索引擎语言代码;未指定 language_name 时必填
设备类型:desktop 或 mobile
启用 SERP 中元素的像素排名计算
自定义浏览器屏幕宽度
自定义浏览器屏幕高度
用于矩形计算的屏幕分辨率比例
响应
成功响应
API 的当前版本
通用状态码
一般信息消息
执行时间(秒)
任务总成本(美元)
tasks 数组中的任务数量
返回错误的 tasks 数组中的任务数量
任务数组
实时 SERP 结果数组
POST 数组中接收的关键词
POST 数组中的搜索引擎类型
POST 数组中的搜索引擎域名
POST 数组中的位置代码
POST 数组中的语言代码
带优化参数的搜索 URL
SERP 中发现的搜索结果类型
items 数组中返回的结果数量
SERP 中找到的搜索结果元素