Приклади curl
Шпаргалка з готовими викликами curl для кожного ендпойнту API інтеграції плагінів.
Це шпаргалка — лише сам виклик, без пояснень. Покрокові посібники з відповідями та обробкою помилок ви знайдете в основних процесах.
Замініть mk_live_… на ключ API вашої інсталяції. Базова адреса — https://qamera.ai.
/me
curl https://qamera.ai/api/v1/plugin/me \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Завантажте файл
curl -X POST https://qamera.ai/api/v1/plugin/assets/upload \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Content-Type: application/json" \
-d '{ "mode": "presigned", "filename": "shoe.jpg", "content_type": "image/jpeg", "size_bytes": 482310 }'
curl -X PUT "$PRESIGNED_URL" --upload-file shoe.jpg \
-H "Content-Type: image/jpeg"
Зареєструйте джерельне фото
curl -X POST https://qamera.ai/api/v1/plugin/images \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Content-Type: application/json" \
-d '{
"images": [
{ "external_ref": "sklep1:zdjecie-101", "product_ref": "SKU-001", "product_metadata": { "display_name": "Buty model X" }, "asset_id": "00000000-0000-0000-0000-000000000010" }
]
}'
Зареєструйте пакшот (прийнятий одразу)
curl -X POST https://qamera.ai/api/v1/plugin/packshots \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Content-Type: application/json" \
-d '{
"packshots": [
{ "external_ref": "sklep1:packshot-42", "product_ref": "SKU-001", "product_metadata": { "display_name": "Buty model X" }, "asset_id": "00000000-0000-0000-0000-000000000010" }
]
}'
Надішліть сесію (один продукт × 4 зображення)
curl -X POST https://qamera.ai/api/v1/plugin/jobs \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Idempotency-Key: order_12345-submit" \
-H "Content-Type: application/json" \
-d '{
"session_config": {
"model_id": "00000000-0000-0000-0000-000000000aaa",
"scenery_id": "00000000-0000-0000-0000-000000000bbb",
"preset_id": "preset_minimal",
"aspect_ratio": "4:5",
"suggestions": "naturalne światło"
},
"subjects": [
{
"product_label": "Buty model X",
"product_ref": "SKU-001",
"images_count": 4,
"ai_model": "google/gemini-3-pro-image"
}
],
"external_metadata": { "sku": "SKU-001" }
}'
Без packshot_asset_id сесія використовує найновіший прийнятий пакшот продукту. Продукт без прийнятого пакшота → 422 packshot_not_approved (навчальний матеріал).
Замовте варіанти пакшота
curl -X POST https://qamera.ai/api/v1/plugin/jobs \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Idempotency-Key: packshoty-SKU-001" \
-H "Content-Type: application/json" \
-d '{
"job_type": "packshot",
"session_config": { "aspect_ratio": "1:1" },
"subjects": [
{
"packshot_asset_id": "00000000-0000-0000-0000-000000000010",
"product_label": "Buty model X",
"product_ref": "SKU-001",
"images_count": 3,
"ai_model": "byteplus/seedream-4.5",
"auto_register_packshot": true,
"packshot_external_ref": "sklep1:packshot-kandydat"
}
]
}'
Надішліть batch
curl -X POST https://qamera.ai/api/v1/plugin/jobs/batch \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Content-Type: application/json" \
-d '{
"batches": [
{
"session_config": { "aspect_ratio": "4:5" },
"subjects": [
{ "product_label": "A", "product_ref": "SKU-A", "images_count": 4, "ai_model": "google/gemini-3-pro-image" }
]
},
{
"session_config": { "aspect_ratio": "9:16" },
"subjects": [
{ "product_label": "B", "product_ref": "SKU-B", "images_count": 4, "ai_model": "google/gemini-3-pro-image" }
]
}
]
}'
Ліміти: 100 сесій і 5000 зображень загалом. Відповідь: HTTP 207 з результатом для кожної сесії (навчальний матеріал).
Перевірте завдання
curl https://qamera.ai/api/v1/plugin/jobs/00000000-0000-0000-0000-0000000000a1 \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Список завдань (останні 25 завершених)
curl "https://qamera.ai/api/v1/plugin/jobs?status=completed&limit=25" \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Оновіть адреси для завантаження
curl -X POST https://qamera.ai/api/v1/plugin/jobs/00000000-0000-0000-0000-0000000000a1/refresh-url \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Скасуйте завдання, що очікує
curl -X DELETE https://qamera.ai/api/v1/plugin/jobs/00000000-0000-0000-0000-0000000000a1 \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Прийміть або відхиліть завершене завдання
curl -X POST https://qamera.ai/api/v1/plugin/jobs/00000000-0000-0000-0000-0000000000a1/accept \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" curl -X POST https://qamera.ai/api/v1/plugin/jobs/00000000-0000-0000-0000-0000000000a1/reject \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Зверніть увагу: для завдання packshot прийняття затверджує пакшот продукту; для завдання photo_shoot це лише зворотний зв'язок (деталі).
Отримайте повну сесію (замовлення)
curl https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099 \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Клонуйте сесію
# 1:1 — ті самі продукти й кількість зображень
curl -X POST https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099/clone \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Idempotency-Key: clone-99-runda2" \
-H "Content-Type: application/json" \
-d '{}'
# інша кількість зображень для продукту
curl -X POST https://qamera.ai/api/v1/plugin/orders/00000000-0000-0000-0000-000000000099/clone \
-H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" \
-H "Idempotency-Key: clone-99-runda3" \
-H "Content-Type: application/json" \
-d '{ "subjects": [ { "product_ref": "SKU-001", "images_count": 8 } ] }'
Idempotency-Key під час клонування обов'язковий (навчальний матеріал).
Список стилів (пресетів)
curl https://qamera.ai/api/v1/plugin/presets \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Довідкові дані
curl https://qamera.ai/api/v1/plugin/models -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" curl https://qamera.ai/api/v1/plugin/sceneries -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" curl https://qamera.ai/api/v1/plugin/ai-models -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" curl https://qamera.ai/api/v1/plugin/aspect-ratios -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy" curl https://qamera.ai/api/v1/plugin/pricing -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Замініть секрет HMAC
curl -X POST https://qamera.ai/api/v1/plugin/installations/00000000-0000-0000-0000-0000000000f1/rotate-hmac \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Відповідь містить новий webhook_hmac_secret (показаний лише раз); старий діє ще 48 годин.
Надішліть повідомлення webhook повторно
curl -X POST https://qamera.ai/api/v1/plugin/webhooks/00000000-0000-0000-0000-0000000000d1/replay \ -H "X-Api-Key: mk_live_xxxxxxxx.yyyyyyyy"
Типові помилки
| HTTP | Код | Коли |
|---|---|---|
401 | unauthorized | Відсутній, хибний або відкликаний ключ |
403 | forbidden | Ключ не має потрібного дозволу |
409 | idempotency_conflict | Той самий Idempotency-Key, інше body |
409 | job_not_completed | refresh-url/оцінка до завершення завдання |
409 | job_not_cancelable | Скасування після завершення |
422 | packshot_not_approved | Продукт без прийнятого пакшота |
402 | quota_exceeded | Обліковий запис без кредитів |
429 | rate_limit_exceeded | Ліміт запитів вичерпано; дотримуйтесь Retry-After |
503 | — | Доступ beta ще не ввімкнено для облікового запису |
Повний перелік: перелік помилок.