Packshots
Перегляд, генерація та керування зображеннями пакшотів для ваших продуктів.
GET /api/external/packshots
Повертає список згенерованих зображень пакшотів.
Заголовки
| Заголовок | Обов'язковий | Опис |
|---|---|---|
| X-Api-Key | Так | Ваш API key у форматі mk_live_xxx.secret |
Параметри запиту
| Поле | Тип | Обов'язковий | Опис |
|---|---|---|---|
| statusFilter | string | Ні | Фільтр за статусом: 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.id | string | Так | ID продукту для генерації пакшотів |
| config.preset.id | string | Ні | ID пресета для застосування |
| config.scenery.id | string | Ні | ID декорації/фону для використання |
| config.model.id | string | Ні | ID ШІ-моделі для використання |
| count | number | Ні | Кількість пакшотів для генерації (за замовчуванням: 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 |
Тіло запиту
| Поле | Тип | Обов'язковий | Опис |
|---|---|---|---|
| recordId | string | Так | ID пакшота для оновлення |
| Voting | string | Ні | Встановіть APPROVED або REJECTED. Відхилення очищає голос і залишає пакшот у списку. |
| status | string | Ні | Встановіть 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"
}'