Przejdź do treści

Packshots

Перегляд, генерація та керування зображеннями пакшотів для ваших продуктів.

GET /api/external/packshots

Повертає список згенерованих зображень пакшотів.

Заголовки

ЗаголовокОбов'язковийОпис
X-Api-KeyТакВаш API key у форматі mk_live_xxx.secret

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

ПолеТипОбов'язковийОпис
statusFilterstringНіФільтр за статусом: all (за замовчуванням) або approved

Відповідь

{
  "packshots": [
    {
      "id": "ps_abc123",
      "name": "White T-Shirt Packshot",
      "thumbnail": "https://cdn.example.com/packshots/thumb_abc123.jpg",
      "status": "DONE",
      "voting": "APPROVED",
      "createdAt": "2026-03-20T15:00:00.000Z"
    }
  ],
  "count": 1
}

Відповіді з помилками

КодЗначення
401Відсутній або недійсний API key
500Внутрішня помилка сервера

Примітки

  • Цей ендпоінт не витрачає кредити.
  • Використовуйте statusFilter=approved для отримання лише схвалених пакшотів.

Приклад

curl -X GET "https://qamera.ai/api/external/packshots?statusFilter=approved" \
  -H "X-Api-Key: mk_live_abc123.secret456"

POST /api/external/packshots/register-ideas

Реєструє нове завдання генерації пакшотів. Кредити резервуються негайно та витрачаються після завершення обробки.

Заголовки

ЗаголовокОбов'язковийОпис
X-Api-KeyТакВаш API key у форматі mk_live_xxx.secret
Content-TypeТакapplication/json

Тіло запиту

ПолеТипОбов'язковийОпис
config.product.idstringТакID продукту для генерації пакшотів
config.preset.idstringНіID пресета для застосування
config.scenery.idstringНіID декорації/фону для використання
config.model.idstringНіID ШІ-моделі для використання
countnumberНіКількість пакшотів для генерації (за замовчуванням: 10, максимум: 50)

Відповідь

{
  "createdRecordIds": ["ps_001", "ps_002", "ps_003"],
  "batchId": "batch_abc123",
  "orderId": "order_xyz789",
  "reservationId": "res_def456",
  "creditsReserved": 30
}

Відповіді з помилками

КодЗначення
400Недійсне тіло запиту або відсутні обов'язкові поля
401Відсутній або недійсний API key
402Недостатньо кредитів
500Внутрішня помилка сервера

Примітки

  • Обробка відбувається асинхронно. Завдання публікується в чергу повідомлень та обробляється воркером.
  • Відстежуйте статус згенерованих пакшотів за допомогою GET-ендпоінта.
  • Кредити резервуються при створенні, витрачаються після успішної обробки та повертаються у разі невдачі.
  • Кожен запит генерує correlationId для трасування логів.
  • Максимум 50 пакшотів за запит.

Приклад

curl -X POST "https://qamera.ai/api/external/packshots/register-ideas" \
  -H "X-Api-Key: mk_live_abc123.secret456" \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "product": { "id": "prod_abc123" },
      "preset": { "id": "preset_xyz" },
      "scenery": { "id": "scenery_001" }
    },
    "count": 10
  }'

POST /api/external/packshots/update-packshot

Схвалення, відхилення або архівування згенерованого пакшота.

Заголовки

ЗаголовокОбов'язковийОпис
X-Api-KeyТакВаш API key у форматі mk_live_xxx.secret
Content-TypeТакapplication/json

Тіло запиту

ПолеТипОбов'язковийОпис
recordIdstringТакID пакшота для оновлення
VotingstringНіВстановіть APPROVED або REJECTED. Відхилення очищає голос і залишає пакшот у списку.
statusstringНіВстановіть ARCHIVE для архівування пакшота

Відповідь

{
  "success": true
}

Відповіді з помилками

КодЗначення
400Недійсне тіло запиту, відсутній recordId або поле, яке цей ендпоінт не приймає
401Відсутній або недійсний API key
404Пакшот не знайдено
500Внутрішня помилка сервера

Примітки

  • Встановлення Voting у значення APPROVED позначає пакшот як схвалений.
  • Встановлення Voting у значення REJECTED очищає голос і повертає пакшот у стан без оцінки. Пакшот залишається у списку — архівує лише status: ARCHIVE.
  • Встановлення status у значення ARCHIVE архівує пакшот незалежно від статусу голосування.
  • Три поля вище — це все тіло запиту. Будь-яке інше поле отримує відповідь 400 із його назвою, тому значення, яке цей ендпоінт не зберігає, ніколи не буде прийняте й відкинуте.
  • Цей ендпоінт не витрачає кредити.

Приклад

curl -X POST "https://qamera.ai/api/external/packshots/update-packshot" \
  -H "X-Api-Key: mk_live_abc123.secret456" \
  -H "Content-Type: application/json" \
  -d '{
    "recordId": "ps_abc123",
    "Voting": "APPROVED"
  }'