Przejdź do treści

Замовлення

Відстеження замовлень на генерацію, опитування їхнього статусу та читання результатів окремих завдань, включно з адресами файлів і категоріями помилок.

Кожен запит на генерацію створює замовлення. Замовлення об'єднує одне або кілька завдань — по одному на кожен ресурс, що генерується. Ці ендпоінти дозволяють стежити за цією роботою до завершення.

Обидва потребують скоупу content.read.

GET /api/external/orders

Список останніх замовлень акаунта, від найновіших. Без розбивки на завдання — для цього є ендпоінт деталей.

Параметри запиту

ПараметрТипОпис
statusstringФільтрування за статусом замовлення.
limitnumberСкільки повернути. Обмежено до [1, 50], за замовчуванням 20.
sincestringМітка часу ISO 8601; лише замовлення, створені пізніше.

Відповідь

{
  "orders": [
    {
      "orderId": "131a2aec-...",
      "status": "in_progress",
      "jobType": "video",
      "provider": "pollo",
      "model": "mixed",
      "jobsTotal": 2,
      "jobsCompleted": 1,
      "jobsFailed": 0,
      "createdAt": "2026-05-06T07:42:52.668Z",
      "updatedAt": "2026-05-06T07:43:18.016Z"
    }
  ],
  "limit": 20,
  "returned": 1
}

GET /api/external/orders/:id

Одне замовлення з повною розбивкою на завдання.

Параметри шляху

ПараметрТипОпис
idstringUUID замовлення, повернений під час його створення.

Відповідь

{
  "orderId": "131a2aec-...",
  "status": "completed",
  "jobType": "video",
  "provider": "pollo",
  "model": "mixed",
  "jobsTotal": 2,
  "jobsCompleted": 2,
  "jobsFailed": 0,
  "createdAt": "...",
  "updatedAt": "...",
  "jobs": [
    {
      "jobId": "...",
      "provider": "pollo",
      "model": "kling-2.6",
      "status": "completed",
      "attemptCount": 2,
      "outputUrl": "https://storage.../video.mp4",
      "errorCategory": null,
      "errorHint": null,
      "startedAt": "...",
      "completedAt": "..."
    }
  ]
}

Поля завдання

ПолеОпис
statuspending, in_progress, completed, failed, retry_pending, cancelled, expired.
attemptCountСкільки разів завдання запускалося. Значення понад 1 означає повторну спробу.
outputUrlЗгенерований ресурс. Заповнений лише для завдань completed, інакше null.
errorCategoryЧому завдання не вдалося — див. Категорії невдач завдань. null, якщо завдання не зазнало невдачі.
errorHintОдне речення з поясненням категорії. Показуйте його людині, не парсіть.

Опитування статусу

Замовлення завершуються асинхронно. Опитуйте ендпоінт деталей, доки status не стане completed, failed або cancelled.

Дві речі, які варто знати перед написанням циклу:

Невдале завдання не завжди остаточне. TRANSIENT_INFRA, RATE_LIMIT і PROVIDER_CAPACITY повторюються автоматично, тож завдання може повідомити одну з цих категорій і все одно успішно завершитися на пізнішій спробі. Дивіться на status і attemptCount, а не на саму наявність errorCategory.

Часткове завершення — це нормально. Замовлення з кількома завданнями може завершитися так, що частина буде completed, а частина failed. Читайте jobsCompleted і jobsFailed, а не припускайте, що замовлення працює за принципом «все або нічого».

Пам'ятайте про ліміт 60 запитів на хвилину — див. Ліміти запитів. Опитування кожні кілька секунд на замовлення цілком достатньо; генерація триває значно довше.

Помилки

КодПричина
400id не є коректним UUID або параметр запиту неправильний.
401Відсутній, недійсний або відкликаний ключ API.
403Ключ не має скоупу content.read.
404Замовлення не існує або належить іншому акаунту. Ці випадки навмисно нерозрізнювані.
429Перевищено ліміт запитів.