curl --request GET \
--url https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89 \
--header "AIBase-API-Key: ${AIBASE_API_KEY}"
import os
import requests
api_key = os.environ["AIBASE_API_KEY"]
task_id = "task_d77143abc87642d4842ff588197faa89"
response = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
payload = response.json()
print("当前任务状态:", payload["data"]["status"])
if payload["data"]["status"] == 2:
print("业务结果:", payload["data"]["result"])
const apiKey = process.env.AIBASE_API_KEY;
const taskId = "task_d77143abc87642d4842ff588197faa89";
const response = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: {
"AIBase-API-Key": apiKey,
},
});
const payload = await response.json();
console.log("任务状态:", payload.data?.status);
if (payload.data?.status === 2) {
console.log("业务结果:", payload.data.result);
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 2,
"statusDesc": "成功",
"result": {}
},
"timeStamp": 1789551724519
}
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 1,
"statusDesc": "待执行",
"result": null
},
"timeStamp": 1789551710000
}
{
"code": 404,
"msg": "任务不存在或已过期",
"data": null,
"timeStamp": 1789551724519
}
异步任务查询
根据任务 ID 轮询异步任务的执行状态与最终业务结果。
GET
/
v1
/
openapi
/
tasks
/
{taskId}
curl --request GET \
--url https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89 \
--header "AIBase-API-Key: ${AIBASE_API_KEY}"
import os
import requests
api_key = os.environ["AIBASE_API_KEY"]
task_id = "task_d77143abc87642d4842ff588197faa89"
response = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
payload = response.json()
print("当前任务状态:", payload["data"]["status"])
if payload["data"]["status"] == 2:
print("业务结果:", payload["data"]["result"])
const apiKey = process.env.AIBASE_API_KEY;
const taskId = "task_d77143abc87642d4842ff588197faa89";
const response = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: {
"AIBase-API-Key": apiKey,
},
});
const payload = await response.json();
console.log("任务状态:", payload.data?.status);
if (payload.data?.status === 2) {
console.log("业务结果:", payload.data.result);
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 2,
"statusDesc": "成功",
"result": {}
},
"timeStamp": 1789551724519
}
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 1,
"statusDesc": "待执行",
"result": null
},
"timeStamp": 1789551710000
}
{
"code": 404,
"msg": "任务不存在或已过期",
"data": null,
"timeStamp": 1789551724519
}
通过统一任务入口提交
ASYNC 模式的业务接口(如 GEO 排名查询、GEO 排名监测、品牌得分检测、推广链接检测等)后,服务端会先返回唯一的 taskId。调用方通过本接口轮询查询任务的实时处理进度并在成功后获取业务结果。
推荐轮询间隔: 建议每隔 10 秒 查询一次本接口。任务未完成前不建议高频请求。
接口速查
| 项目 | 当前接口约定 |
|---|---|
| 请求方式 | GET |
| 请求地址 | https://api.aibase.cn/v1/openapi/tasks/{taskId} |
| 身份认证 | Header AIBase-API-Key |
| 执行模式 | 通用任务查询端点 |
| 推荐轮询间隔 | 10 秒 |
请求头
string
required
AIBase 开放平台 API Key,例如
AIBase_xxx。请仅在服务端保存和使用。string
可选的客户端请求追踪标识。
路径参数
string
required
提交异步任务时由平台返回的唯一任务标识,例如
task_d77143abc87642d4842ff588197faa89。curl --request GET \
--url https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89 \
--header "AIBase-API-Key: ${AIBASE_API_KEY}"
import os
import requests
api_key = os.environ["AIBASE_API_KEY"]
task_id = "task_d77143abc87642d4842ff588197faa89"
response = requests.get(
f"https://api.aibase.cn/v1/openapi/tasks/{task_id}",
headers={"AIBase-API-Key": api_key},
timeout=30,
)
payload = response.json()
print("当前任务状态:", payload["data"]["status"])
if payload["data"]["status"] == 2:
print("业务结果:", payload["data"]["result"])
const apiKey = process.env.AIBASE_API_KEY;
const taskId = "task_d77143abc87642d4842ff588197faa89";
const response = await fetch(`https://api.aibase.cn/v1/openapi/tasks/${taskId}`, {
headers: {
"AIBase-API-Key": apiKey,
},
});
const payload = await response.json();
console.log("任务状态:", payload.data?.status);
if (payload.data?.status === 2) {
console.log("业务结果:", payload.data.result);
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.aibase.cn/v1/openapi/tasks/task_d77143abc87642d4842ff588197faa89"))
.header("AIBase-API-Key", System.getenv("AIBASE_API_KEY"))
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
响应参数
integer
required
业务状态码。
200 表示查询接口请求成功。string
required
响应说明。
object
required
任务详情数据。
string
required
任务唯一标识。
integer
required
任务处理状态枚举值(详见下方状态表)。
string
required
任务状态文字说明,如
成功、待执行、失败 等。object
业务返回结果。仅在
status = 2(SUCCESS)时返回完整的具体业务数据,字段结构由对应的 apiCode 决定。integer
required
服务端响应时间戳,单位毫秒。
status 状态码字典
| status | 状态标识 | 说明 | 建议处理逻辑 |
|---|---|---|---|
1 | PENDING | 任务待执行或正在处理中 | 等待 10 秒后发起下一次查询 |
2 | SUCCESS | 任务已成功完成 | 终止轮询,从 data.result 读取具体业务数据 |
3 | FAILED | 任务处理失败 | 终止轮询,记录失败原因或触发重试流程 |
4 | TIMEOUT | 任务执行超时 | 终止轮询,记录超时 |
5 | CANCELLED | 任务已被取消 | 终止轮询 |
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 2,
"statusDesc": "成功",
"result": {}
},
"timeStamp": 1789551724519
}
{
"code": 200,
"msg": "成功",
"data": {
"taskId": "task_d77143abc87642d4842ff588197faa89",
"status": 1,
"statusDesc": "待执行",
"result": null
},
"timeStamp": 1789551710000
}
{
"code": 404,
"msg": "任务不存在或已过期",
"data": null,
"timeStamp": 1789551724519
}
接入注意事项
- 不可仅依据固定轮询次数判断:大模型生成与多平台检测耗时受网络和模型并发负载影响,请务必根据返回的
status状态枚举决定是否结束轮询。 - 遵守 10 秒轮询间隔:高频轮询会白白消耗客户端计算与网络资源,并可能触发平台的并发限流规则。
- 结合超时熔断控制:在业务侧编写循环等待逻辑时,建议加入最大等待时间(例如 5 分钟),超过时间仍为
status = 1则主动熔断报警。