curl --request POST \
--url https://api.aibase.cn/v1/openapi/tasks \
--header "AIBase-API-Key: ${AIBASE_API_KEY}" \
--header 'AIBase-Request-Id: req-20260908-000001' \
--header 'Content-Type: application/json' \
--data '{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}'
import os
import time
import requests
api_key = os.environ["AIBASE_API_KEY"]
headers = {
"AIBase-API-Key": api_key,
"Content-Type": "application/json",
}
# 1. 提交异步任务
res = requests.post(
"https://api.aibase.cn/v1/openapi/tasks",
headers=headers,
json={
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
},
timeout=30,
)
res.raise_for_status()
submit_payload = res.json()
task_id = submit_payload["data"]["taskId"]
print("任务已提交,taskId:", task_id)
# 2. 轮询任务结果(建议 10 秒间隔)
while True:
time.sleep(10)
query_res = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
query_payload = query_res.json()
status = query_payload["data"]["status"]
if status == 2: # SUCCESS
print("查询成功,GEO 排名结果:")
print(query_payload["data"]["result"])
break
elif status == 1: # PENDING
print("大模型分析中,等待下一次查询...")
else:
raise RuntimeError(f"任务终止,状态码: {status}")
import { setTimeout } from "node:timers/promises";
const apiKey = process.env.AIBASE_API_KEY;
const headers = {
"AIBase-API-Key": apiKey,
"Content-Type": "application/json",
};
// 1. 提交任务
const res = await fetch("https://api.aibase.cn/v1/openapi/tasks", {
method: "POST",
headers,
body: JSON.stringify({
apiCode: "geo.ranking",
data: {
keyword: "性价比高的智能手机推荐",
brandKeyword: ["小米", "华为", "苹果"],
platforms: ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
}),
});
const { data: { taskId } } = await res.json();
// 2. 轮询结果
while (true) {
await setTimeout(10000);
const check = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: { "AIBase-API-Key": apiKey },
});
const json = await check.json();
if (json.data?.status === 2) {
console.log("最终结果:", json.data.result);
break;
}
}
// 第一步:向统一入口 POST 提交任务
HttpRequest submitReq = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}
"""))
.build();
// 发送请求后解析返回的 taskId,随后按 10 秒间隔调用 GET /v1/openapi/tasks/{taskId}
{
"code": 200,
"msg": "成功",
"data": {
"requestId": "599b2f8f39078d",
"taskId": "task_d77143abc87642d4842ff588197faa89"
},
"timeStamp": 1789550182642
}
GEO 排名查询工具
检测指定 AI 咨询问题在多个大模型平台中的品牌推荐、曝光、排名、情感及来源引用情况。
POST
/
v1
/
openapi
/
tasks
curl --request POST \
--url https://api.aibase.cn/v1/openapi/tasks \
--header "AIBase-API-Key: ${AIBASE_API_KEY}" \
--header 'AIBase-Request-Id: req-20260908-000001' \
--header 'Content-Type: application/json' \
--data '{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}'
import os
import time
import requests
api_key = os.environ["AIBASE_API_KEY"]
headers = {
"AIBase-API-Key": api_key,
"Content-Type": "application/json",
}
# 1. 提交异步任务
res = requests.post(
"https://api.aibase.cn/v1/openapi/tasks",
headers=headers,
json={
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
},
timeout=30,
)
res.raise_for_status()
submit_payload = res.json()
task_id = submit_payload["data"]["taskId"]
print("任务已提交,taskId:", task_id)
# 2. 轮询任务结果(建议 10 秒间隔)
while True:
time.sleep(10)
query_res = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
query_payload = query_res.json()
status = query_payload["data"]["status"]
if status == 2: # SUCCESS
print("查询成功,GEO 排名结果:")
print(query_payload["data"]["result"])
break
elif status == 1: # PENDING
print("大模型分析中,等待下一次查询...")
else:
raise RuntimeError(f"任务终止,状态码: {status}")
import { setTimeout } from "node:timers/promises";
const apiKey = process.env.AIBASE_API_KEY;
const headers = {
"AIBase-API-Key": apiKey,
"Content-Type": "application/json",
};
// 1. 提交任务
const res = await fetch("https://api.aibase.cn/v1/openapi/tasks", {
method: "POST",
headers,
body: JSON.stringify({
apiCode: "geo.ranking",
data: {
keyword: "性价比高的智能手机推荐",
brandKeyword: ["小米", "华为", "苹果"],
platforms: ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
}),
});
const { data: { taskId } } = await res.json();
// 2. 轮询结果
while (true) {
await setTimeout(10000);
const check = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: { "AIBase-API-Key": apiKey },
});
const json = await check.json();
if (json.data?.status === 2) {
console.log("最终结果:", json.data.result);
break;
}
}
// 第一步:向统一入口 POST 提交任务
HttpRequest submitReq = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}
"""))
.build();
// 发送请求后解析返回的 taskId,随后按 10 秒间隔调用 GET /v1/openapi/tasks/{taskId}
{
"code": 200,
"msg": "成功",
"data": {
"requestId": "599b2f8f39078d",
"taskId": "task_d77143abc87642d4842ff588197faa89"
},
"timeStamp": 1789550182642
}
GEO 排名查询工具用于检测指定 AI 咨询问题在多个主流大模型平台(如 DeepSeek、火山引擎、百度、腾讯、阿里云等)中的品牌推荐表现、曝光次数、排序位置、情感倾向以及引用来源链接。
执行模式:ASYNC · 异步。
本接口采用异步任务模式:向统一入口提交请求后,平台先返回
requestId 和 taskId;随后使用 taskId 轮询 异步任务查询接口(建议每隔 10 秒查询一次)获取最终结果。接口速查
| 项目 | 当前接口约定 |
|---|---|
| 接口状态 | 已上线 |
| 请求方式 | POST |
| 请求地址 | https://api.aibase.cn/v1/openapi/tasks |
| 业务标识 | geo.ranking |
| 执行模式 | ASYNC · 异步(需轮询结果) |
| 身份认证 | Header AIBase-API-Key |
| 请求格式 | application/json |
请求头
string
required
AIBase 开放平台 API Key,例如
AIBase_xxx。请仅在服务端保存和使用。string
required
固定为
application/json。string
可选的客户端请求追踪标识。
请求体
string
required
固定为
geo.ranking。object
required
当前业务接口的参数对象。
string
required
AI 咨询的问题,例如
"性价比高的智能手机推荐"。string[]
required
品牌关键词列表,用于检测是否在大模型回答中命中并推荐,例如
["小米", "华为", "苹果"]。string[]
required
参与检测的各大模型平台编码列表,例如
["deepseek", "volcengine", "baidu", "tencent", "aliyun"]。curl --request POST \
--url https://api.aibase.cn/v1/openapi/tasks \
--header "AIBase-API-Key: ${AIBASE_API_KEY}" \
--header 'AIBase-Request-Id: req-20260908-000001' \
--header 'Content-Type: application/json' \
--data '{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}'
import os
import time
import requests
api_key = os.environ["AIBASE_API_KEY"]
headers = {
"AIBase-API-Key": api_key,
"Content-Type": "application/json",
}
# 1. 提交异步任务
res = requests.post(
"https://api.aibase.cn/v1/openapi/tasks",
headers=headers,
json={
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
},
timeout=30,
)
res.raise_for_status()
submit_payload = res.json()
task_id = submit_payload["data"]["taskId"]
print("任务已提交,taskId:", task_id)
# 2. 轮询任务结果(建议 10 秒间隔)
while True:
time.sleep(10)
query_res = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
query_payload = query_res.json()
status = query_payload["data"]["status"]
if status == 2: # SUCCESS
print("查询成功,GEO 排名结果:")
print(query_payload["data"]["result"])
break
elif status == 1: # PENDING
print("大模型分析中,等待下一次查询...")
else:
raise RuntimeError(f"任务终止,状态码: {status}")
import { setTimeout } from "node:timers/promises";
const apiKey = process.env.AIBASE_API_KEY;
const headers = {
"AIBase-API-Key": apiKey,
"Content-Type": "application/json",
};
// 1. 提交任务
const res = await fetch("https://api.aibase.cn/v1/openapi/tasks", {
method: "POST",
headers,
body: JSON.stringify({
apiCode: "geo.ranking",
data: {
keyword: "性价比高的智能手机推荐",
brandKeyword: ["小米", "华为", "苹果"],
platforms: ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
},
}),
});
const { data: { taskId } } = await res.json();
// 2. 轮询结果
while (true) {
await setTimeout(10000);
const check = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: { "AIBase-API-Key": apiKey },
});
const json = await check.json();
if (json.data?.status === 2) {
console.log("最终结果:", json.data.result);
break;
}
}
// 第一步:向统一入口 POST 提交任务
HttpRequest submitReq = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"apiCode": "geo.ranking",
"data": {
"keyword": "性价比高的智能手机推荐",
"brandKeyword": ["小米", "华为", "苹果"],
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"]
}
}
"""))
.build();
// 发送请求后解析返回的 taskId,随后按 10 秒间隔调用 GET /v1/openapi/tasks/{taskId}
第一步:提交任务响应
向POST /v1/openapi/tasks 提交后,直接返回 requestId 和 taskId:
{
"code": 200,
"msg": "成功",
"data": {
"requestId": "599b2f8f39078d",
"taskId": "task_d77143abc87642d4842ff588197faa89"
},
"timeStamp": 1789550182642
}
第二步:最终结果字段说明(GET 查询返回)
轮询任务查询接口,当status = 2 时,data.result 包含完整的 GEO 排名数据:
string
required
本次检测使用的 AI 咨询问题。
string
required
请求中的品牌关键词,结果示例中为 JSON 字符串格式。
string[]
required
本次检测的大模型平台编码列表。
integer
required
本次任务的平台总数。
integer
required
已完成分析处理的平台数量。
integer
required
处理失败的平台数量。
string
required
本次请求时间,格式为
yyyy-MM-dd HH:mm:ss。integer
required
请求对应的平台总数。
integer
required
请求范围内品牌被推荐的总次数。
integer
required
请求范围内品牌总曝光/可见次数。
number
required
品牌推荐率(百分比数值)。
object[]
required
各平台的详细检测明细列表。
string
required
大模型平台编码(如
deepseek、volcengine 等)。string
required
该平台使用的提示词/问题。
string
required
该平台对应的品牌词。
string
required
该平台监控状态,一般为
completed 或 failed。integer
required
是否被推荐:
1 已推荐,0 未推荐。integer
required
品牌曝光/可见次数。
integer
required
品牌推荐次数。
integer
required
引用来源条数,即
sourceRecords 的数量。integer
required
目标品牌排名位置;未找到时为
0。string
大模型生成的原文回答(文本可能较长;未抓取到时为
null)。object[]
required
该平台回答中被提及的所有品牌记录列表。
string
required
被提及的品牌名称。
string
required
情感倾向(如
正向、中性、负向)。integer
required
该品牌被提及次数。
integer
required
情感倾向得分(0 ~ 100)。
integer
required
该品牌在回答中的排名位置。
object[]
required
该平台回答中引用的来源网页列表。
string
required
来源网站名称。
string
required
来源文章或网页标题。
string
required
来源网页链接。
string
required
来源域名。
integer
required
该来源在引用列表中的排序序号。
{
"keyword": "性价比高的智能手机推荐",
"brandKeyword": "[\"小米\",\"华为\",\"苹果\"]",
"platforms": ["deepseek", "volcengine", "baidu", "tencent", "aliyun"],
"totalPlatforms": 5,
"completedPlatforms": 5,
"failedPlatforms": 0,
"requestTime": "2026-09-17 09:00:00",
"requestTotalPlatforms": 15,
"requestRecommendedCount": 9,
"requestTotalExposureCount": 24,
"requestRecommendationRate": 60.00,
"data": [
{
"requestId": "geo_20260917_abcdef",
"platform": "deepseek",
"keyword": "性价比高的智能手机推荐",
"brandKeyword": "小米",
"status": "completed",
"isRecommended": 1,
"exposureCount": 5,
"recommendCount": 2,
"countSourceRecord": 2,
"position": 2,
"resultContent": "……大模型原文……",
"brandRecords": [
{
"brandName": "小米",
"sentiment": "正向",
"visibilityCount": 5,
"sentimentScore": 80,
"position": 2
}
],
"sourceRecords": [
{
"websiteName": "小米官网",
"title": "小米手机",
"url": "https://www.mi.com",
"domain": "mi.com",
"ranking": 1
}
]
}
]
}
类型定义
- TypeScript
export interface GeoRankingResult {
keyword: string;
brandKeyword: string;
platforms: string[];
totalPlatforms: number;
completedPlatforms: number;
failedPlatforms: number;
requestTime: string;
requestTotalPlatforms: number;
requestRecommendedCount: number;
requestTotalExposureCount: number;
requestRecommendationRate: number;
data: PlatformRankingDetail[];
}
export interface PlatformRankingDetail {
requestId?: string;
platform: string;
keyword: string;
brandKeyword: string;
status: "completed" | "failed" | string;
isRecommended: number;
exposureCount: number;
recommendCount: number;
countSourceRecord: number;
position: number;
resultContent: string | null;
brandRecords: BrandRecord[];
sourceRecords: SourceRecord[];
}
export interface BrandRecord {
brandName: string;
sentiment: string;
visibilityCount: number;
sentimentScore: number;
position: number;
}
export interface SourceRecord {
websiteName: string;
title: string;
url: string;
domain: string;
ranking: number;
}
接入注意事项
- 不可直接从第一步获取排名结果:提交请求后,必须从返回中取得
data.taskId,再通过任务查询接口轮询。 - 推荐 10 秒轮询间隔:由于涉及多个大模型平台实时生成与分析,接口平均耗时在数秒至数十秒之间,请勿频繁发起查询。
- 平台与品牌列表:
platforms和brandKeyword为数组类型,平台编码请使用标准枚举(如deepseek、volcengine、baidu、tencent、aliyun)。 - 大模型原文处理:
resultContent字段为大模型回答原文,文本可能较长,建议在数据存储和网络传输时做好合理预算与兼容。