Przejdź do głównej treści
Sprawdź status i wyniki zadania generowania.

Endpoint

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

Parametry

model
string
wymagane
Identyfikator modelu użyty przy zgłaszaniu zadania (np. nano-banana, flux-2).
taskId
string
wymagane
Task ID zwrócony z endpointu Generate Task.

Nagłówki

Authorization
string
wymagane
Token Bearer do uwierzytelniania API. Format: Bearer YOUR_API_KEY

Odpowiedź

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

Stany zadania

StateOpis
pendingZadanie otrzymane, oczekuje na przetworzenie
processingZadanie jest przetwarzane przez model AI
successGenerowanie zakończone pomyślnie
failedGenerowanie nie powiodło się (zobacz szczegóły błędu)

Pola odpowiedzi

taskId
string
Unikalny identyfikator zadania.
state
string
Aktualny stan zadania: pending, processing, success lub failed.
resultJson
string
Ciąg JSON zawierający tablicę resultUrls. Tylko gdy state to success. Parsuj przez JSON.parse().
costTime
integer
Czas przetwarzania w milisekundach. Tylko po zakończeniu.
createTime
integer
Znacznik czasu utworzenia zadania (Unix w milisekundach).
completeTime
integer
Znacznik czasu zakończenia zadania (Unix w milisekundach). Tylko po zakończeniu.
failCode
string
Kod błędu. Tylko gdy state to failed.
failMsg
string
Czytelna wiadomość błędu. Tylko gdy state to failed.

Odpowiedzi w zależności od stanu

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
  }
}
Parsowanie resultJson:
const result = JSON.parse(data.resultJson);
const urls = result.resultUrls; // Tablica URL-i wygenerowanej treści

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 z state: "failed" oznacza, że żądanie API powiodło się, ale samo zadanie nie. Sprawdź failCode i failMsg dla przyczyny. Wszystkie kody błędów patrz Błędy.

URL-e wyników

Tablica resultUrls zawiera bezpośrednie linki do wygenerowanej treści:
{
  "resultUrls": [
    "https://cdn.apixo.ai/output/abc123.jpg",
    "https://cdn.apixo.ai/output/abc124.jpg"
  ]
}
URL-e wyników wygasają po 24 godzinach. Pobierz i zapisz ważne wyniki niezwłocznie.

Przykłady

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

Przykład pollingu

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

Odpowiedzi błędów

KodOpis
401Nieprawidłowy lub brakujący klucz API
404Zadanie nie znalezione
429Przekroczony limit rate
Szczegóły obsługi błędów patrz Błędy.