Перейти к основному содержанию
Запрос статуса и результатов задачи генерации.

Endpoint

GET https://api.apixo.ai/api/v1/statusTask/{model}?taskId={taskId}

Parameters

model
string
обязательно
ID модели, использованный при отправке задачи (например, nano-banana, flux-2).
taskId
string
обязательно
Task ID, возвращённый эндпоинтом Создание задачи.

Headers

Authorization
string
обязательно
Bearer token для аутентификации API. Формат: Bearer YOUR_API_KEY

Response

{
  "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
  }
}

Состояния задачи

StateDescription
pendingЗадача получена, ожидает обработки
processingЗадача обрабатывается AI-моделью
successГенерация успешно завершена
failedГенерация завершилась с ошибкой (см. детали ошибки)

Поля ответа

taskId
string
Уникальный идентификатор задачи.
state
string
Текущее состояние задачи: pending, processing, success или failed.
resultJson
string
JSON-строка с массивом resultUrls. Присутствует только при state = success. Парсите через JSON.parse().
costTime
integer
Время обработки в миллисекундах. Присутствует только при завершении.
createTime
integer
Timestamp создания задачи (Unix миллисекунды).
completeTime
integer
Timestamp завершения задачи (Unix миллисекунды). Присутствует только при завершении.
failCode
string
Код ошибки. Присутствует только при state = failed.
failMsg
string
Читаемое сообщение об ошибке. Присутствует только при state = failed.

State-Specific Responses

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; // Массив URL сгенерированного контента

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. См. Ошибки для всех кодов сбоя.

Result URLs

Массив resultUrls содержит прямые ссылки на сгенерированный контент:
{
  "resultUrls": [
    "https://cdn.apixo.ai/output/abc123.jpg",
    "https://cdn.apixo.ai/output/abc124.jpg"
  ]
}
Result URLs истекают через 24 часа. Скачивайте и сохраняйте важные результаты своевременно.

Examples

curl "https://api.apixo.ai/api/v1/statusTask/nano-banana?taskId=task_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Polling Example

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');
}

Error Responses

CodeDescription
401Недействительный или отсутствующий API key
404Задача не найдена
429Превышен лимит запросов
См. Ошибки для подробной обработки ошибок.