查询生成任务的状态和结果。
GET https://api.apixo.ai/api/v1/statusTask/{model}?taskId={taskId}
提交任务时使用的模型 ID(如 nano-banana、flux-2)。
请求头
Bearer token 用于 API 认证。格式:Bearer YOUR_API_KEY
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz789",
"state": "success",
"resultJson": "{\"resultUrls\":[\"https://cdn.apixo.ai/output/abc123.jpg\"]}",
"costTime": 12500,
"createTime": 1704067200000,
"completeTime": 1704067212500
}
}
任务状态
| State | Description |
|---|
pending | 任务已接收,等待处理 |
processing | AI 模型正在处理任务 |
success | 生成成功完成 |
failed | 生成失败(查看错误详情) |
响应字段
当前任务状态:pending、processing、success 或 failed。
包含 resultUrls 数组的 JSON 字符串。仅当 state 为 success 时存在。使用 JSON.parse() 解析。
任务完成时间戳(Unix 毫秒)。仅在完成时存在。
错误码。仅当 state 为 failed 时存在。
可读的错误信息。仅当 state 为 failed 时存在。
各状态响应示例
Pending / Processing
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz789",
"state": "processing",
"createTime": 1704067200000
}
}
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz789",
"state": "success",
"resultJson": "{\"resultUrls\":[\"https://cdn.apixo.ai/output/abc123.jpg\"]}",
"costTime": 12500,
"createTime": 1704067200000,
"completeTime": 1704067212500
}
}
解析 resultJson:
const result = JSON.parse(data.resultJson);
const urls = result.resultUrls; // Array of generated content URLs
Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz789",
"state": "failed",
"failCode": "CONTENT_VIOLATION",
"failMsg": "Content violates usage policy",
"createTime": 1704067200000,
"completeTime": 1704067205000
}
}
HTTP 返回 200 且 state: "failed" 表示 API 请求成功,但任务本身失败。请查看 failCode 和 failMsg 了解原因。所有失败码见错误码。
结果 URL
resultUrls 数组包含生成内容的直接链接:
{
"resultUrls": [
"https://cdn.apixo.ai/output/abc123.jpg",
"https://cdn.apixo.ai/output/abc124.jpg"
]
}
结果 URL 24 小时后失效。请及时下载并保存重要输出。
curl "https://api.apixo.ai/api/v1/statusTask/nano-banana?taskId=task_abc123" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch(
'https://api.apixo.ai/api/v1/statusTask/nano-banana?taskId=task_abc123',
{
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
}
);
const { data } = await response.json();
if (data.state === 'success') {
const urls = JSON.parse(data.resultJson).resultUrls;
console.log('Generated:', urls);
}
import json
response = requests.get(
'https://api.apixo.ai/api/v1/statusTask/nano-banana',
params={'taskId': 'task_abc123'},
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
data = response.json()['data']
if data['state'] == 'success':
urls = json.loads(data['resultJson'])['resultUrls']
print(f'Generated: {urls}')
轮询示例
async function waitForResult(model, taskId, apiKey) {
const maxAttempts = 60;
const pollInterval = 3000; // 3 seconds
for (let i = 0; i < maxAttempts; i++) {
const response = await fetch(
`https://api.apixo.ai/api/v1/statusTask/${model}?taskId=${taskId}`,
{ headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const { data } = await response.json();
switch (data.state) {
case 'success':
return JSON.parse(data.resultJson).resultUrls;
case 'failed':
throw new Error(`${data.failCode}: ${data.failMsg}`);
default:
await new Promise(r => setTimeout(r, pollInterval));
}
}
throw new Error('Timeout waiting for result');
}
import time
import json
def wait_for_result(model: str, task_id: str, api_key: str) -> list[str]:
max_attempts = 60
poll_interval = 3 # seconds
for _ in range(max_attempts):
response = requests.get(
f'https://api.apixo.ai/api/v1/statusTask/{model}',
params={'taskId': task_id},
headers={'Authorization': f'Bearer {api_key}'},
)
data = response.json()['data']
if data['state'] == 'success':
return json.loads(data['resultJson'])['resultUrls']
elif data['state'] == 'failed':
raise Exception(f"{data['failCode']}: {data['failMsg']}")
time.sleep(poll_interval)
raise Exception('Timeout waiting for result')
错误响应
| Code | Description |
|---|
401 | API 密钥无效或缺失 |
404 | 任务不存在 |
429 | 超过速率限制 |
详见错误码的错误处理说明。