SERP API 的 Google 地理位置列表
curl --request GET \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/locations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/locations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/locations', 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/locations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/locations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/dataforseo/serp/google/locations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/locations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
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[].location_code": 123,
"tasks[].result[].location_name": "<string>",
"tasks[].result[].location_code_parent": 123,
"tasks[].result[].country_iso_code": "<string>",
"tasks[].result[].location_type": "<string>"
}地理位置与语言
SERP API 的 Google 地理位置列表
SERP API 的 Google 地理位置列表。
GET
https://api.aisa.one/apis/v1
/
dataforseo
/
serp
/
google
/
locations
SERP API 的 Google 地理位置列表
curl --request GET \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/locations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/locations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/locations', 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/locations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/locations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/dataforseo/serp/google/locations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/locations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
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[].location_code": 123,
"tasks[].result[].location_name": "<string>",
"tasks[].result[].location_code_parent": 123,
"tasks[].result[].country_iso_code": "<string>",
"tasks[].result[].location_type": "<string>"
}返回 Google SERP API 支持的全部地理位置,用于在提交 SERP 任务时解析
在你的 agent 里把这个端点跑起来 →
location_code。每条记录包含 location_code、location_name、location_code_parent、country_iso_code 与 location_type。💰 上游免费 —— DataForSEO 对该字典端点不收费;AIsa 按家族统一 flat 价 $0.012 计费。响应为 DataForSEO 标准信封:数据在 tasks[0].result,结果状态在 tasks[0].status_code —— 请求被拒仍返回 HTTP 200。
示例
curl -X GET "https://api.aisa.one/apis/v1/dataforseo/serp/google/locations" \
-H "Authorization: Bearer YOUR_API_KEY"
// 把整段复制给 Claude Code、Codex、Cursor 或任意 coding agent。
// 连接、授权、跑通这个例子需要的东西都在里面 ——
// 不用粘贴任何 key,浏览器里点一次 Allow 就好。
{
"operation_id": "get_dataforseo_serp_google_locations",
"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/get_dataforseo-serp-google-locations.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.
响应
Successful response
The current version of the API
General status code
General informational message
Execution time, seconds
Total tasks cost, USD (0 for these free dictionary endpoints)
The number of tasks in the tasks array
The number of tasks in the tasks array returned with an error
Array of tasks
可用地理位置数组
地理位置代码 —— 提交 SERP 任务时作为 location_code 传入
地理位置全称
上级地理位置代码(如城市所属国家)
国家 ISO 代码
地理位置类型(国家、地区、城市等)