Google 地图 Search
curl --request POST \
--url https://api.socq.ai/v1/google-maps/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"location": "<string>",
"query": "<string>",
"country": "<string>",
"latitude": 0,
"longitude": 0,
"results_limit": 100,
"zoom_level": 10
}
'import requests
url = "https://api.socq.ai/v1/google-maps/search"
payload = {
"location": "<string>",
"query": "<string>",
"country": "<string>",
"latitude": 0,
"longitude": 0,
"results_limit": 100,
"zoom_level": 10
}
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({
location: '<string>',
query: '<string>',
country: '<string>',
latitude: 0,
longitude: 0,
results_limit: 100,
zoom_level: 10
})
};
fetch('https://api.socq.ai/v1/google-maps/search', 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.socq.ai/v1/google-maps/search",
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([
'location' => '<string>',
'query' => '<string>',
'country' => '<string>',
'latitude' => 0,
'longitude' => 0,
'results_limit' => 100,
'zoom_level' => 10
]),
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.socq.ai/v1/google-maps/search"
payload := strings.NewReader("{\n \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\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.socq.ai/v1/google-maps/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/google-maps/search")
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 \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>"
}
}{
"code": 422,
"error": {
"message": "<string>",
"type": "<string>",
"details": {}
}
}Google 地图 Search
获取 Google 地图 的标准化公开 Search 数据。
POST
/
v1
/
google-maps
/
search
Google 地图 Search
curl --request POST \
--url https://api.socq.ai/v1/google-maps/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"location": "<string>",
"query": "<string>",
"country": "<string>",
"latitude": 0,
"longitude": 0,
"results_limit": 100,
"zoom_level": 10
}
'import requests
url = "https://api.socq.ai/v1/google-maps/search"
payload = {
"location": "<string>",
"query": "<string>",
"country": "<string>",
"latitude": 0,
"longitude": 0,
"results_limit": 100,
"zoom_level": 10
}
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({
location: '<string>',
query: '<string>',
country: '<string>',
latitude: 0,
longitude: 0,
results_limit: 100,
zoom_level: 10
})
};
fetch('https://api.socq.ai/v1/google-maps/search', 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.socq.ai/v1/google-maps/search",
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([
'location' => '<string>',
'query' => '<string>',
'country' => '<string>',
'latitude' => 0,
'longitude' => 0,
'results_limit' => 100,
'zoom_level' => 10
]),
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.socq.ai/v1/google-maps/search"
payload := strings.NewReader("{\n \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\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.socq.ai/v1/google-maps/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/google-maps/search")
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 \"location\": \"<string>\",\n \"query\": \"<string>\",\n \"country\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"results_limit\": 100,\n \"zoom_level\": 10\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>"
}
}{
"code": 422,
"error": {
"message": "<string>",
"type": "<string>",
"details": {}
}
}Google 地图 Search
获取 Google 地图 的标准化公开 Search 数据。 成功返回的每条标准结果扣除0.15 积分。列表接口按 results_limit 预扣并按实际结果结算。
请求体
{
"query": "coffee",
"location": "New York, NY",
"country": "US",
"results_limit": 3
}
请求限制
query和location是必填字符串;country、latitude、longitude、zoom_level和results_limit为选填字段。latitude和longitude是彼此独立的数值输入;当前运行时只校验其数值类型,不限制数值范围。zoom_level必须是0到21的整数。results_limit必须是1到2,000的整数,默认值为100。
通过 MCP 使用
| 接口 | 值 |
|---|---|
| REST | POST /v1/google-maps/search |
| Compact MCP | socq_execute with endpoint: "google-maps/search" |
| Typed MCP | socq_google_maps_search |
| Exact-tool URL | https://api.socq.ai/mcp?tools=google_maps_search |
| CLI | socq google-maps search |
请求成功后会返回
task_id。使用 socq_get_task 查询任务,成功后从 results.items 读取标准化结果。结果字段
| 字段 | 类型 | 可为空 | 说明 |
|---|---|---|---|
id | string | 是 | 当前结果项的唯一标识。 |
platform | string | 否 | 结果所属的平台,例如 instagram 或 linkedin。 |
resource | string | 否 | 该结果对应的 SocQ 资源,例如 videos 或 comments。 |
type | string | 否 | 结果项的类别,例如 video、post 或 comment。 |
url | string | 是 | 结果项的公开访问地址(如可获得)。 |
published_at | string | 是 | 源内容的发布时间(如可获得),使用 ISO 8601 格式。 |
collected_at | string | 否 | SocQ 采集或处理该结果的时间,使用 ISO 8601 格式。 |
name | string | 是 | 地点或商家名称。 |
text | string | 是 | 结果项的主要文本内容。 |
category | string | 是 | 结果项所属分类。 |
address | string | 是 | 公开街道地址或格式化地址。 |
phone | string | 是 | 公开联系电话。 |
website | string | 是 | 账号、公司或广告主关联的网站。 |
rating | number | 是 | 平台报告的评分值。 |
reviews_count | integer | 是 | 评价数量。 |
location | object | 是 | 结果关联的地理位置信息。 |
location | object | 否 | 标准结果中的字段值。 |
location.name | string | 是 | 便于阅读的地点名称。 |
location.city | string | 是 | 城市名称。 |
location.region | string | 是 | 地区、州或省份名称。 |
location.country | string | 是 | 国家或地区名称或代码。 |
location.latitude | number | 是 | 十进制度格式的纬度。 |
location.longitude | number | 是 | 十进制度格式的经度。 |
任务完成响应
{
"code": 200,
"message": "success",
"data": {
"task_id": "task_example",
"public_id": "google-maps/search",
"status": "succeeded",
"result_count": 0,
"credits_amount": 0,
"results": {
"schema_id": "place",
"schema_version": "1.0",
"items": [],
"limit": 20,
"next_cursor": null,
"has_more": false
}
}
}
授权
bearerAuthapiKeyAuth
使用 Authorization: Bearer <token> 请求头进行身份验证。
请求体
application/json
请求参数。
Minimum string length:
1搜索关键词。
Minimum string length:
1国家或地区筛选条件。
Minimum string length:
1可选的纬度数值;当前运行时只校验其为数值,不限制数值范围。
必填范围:
-90 <= x <= 90可选的经度数值;当前运行时只校验其为数值,不限制数值范围。
必填范围:
-180 <= x <= 180最多保存的结果数,实际结果可能少于该值。
必填范围:
1 <= x <= 2000请求参数。
必填范围:
0 <= x <= 21⌘I

