Mod
Bu modelin 2 modu var. Aşağıdaki şema ve örnekler seçili moda göredir. API'de modu seçmek için isteğe category_id ekleyin (örnek istekte hazır).
API Referansı
Endpoint
https://kolayzeka.com/api/models/kling-1-5/generatecURL — JSON gövdesi
curl -X POST https://kolayzeka.com/api/models/kling-1-5/generate \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"input": {
"mode": "std",
"duration": "5",
"sound": "off",
"cfg_scale": 0.5,
"multi_shot": "false"
},
"category_id": 8,
"webhook_url": "https://your-server.com/hooks/kolayzeka"
}'cURL — multipart/form-data
curl -X POST https://kolayzeka.com/api/models/kling-1-5/generate \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -F 'input[mode]=std' \ -F 'input[duration]=5' \ -F 'input[sound]=off' \ -F 'input[cfg_scale]=0.5' \ -F 'input[multi_shot]=false' \ -F 'input[image]=@/path/to/image.jpg' \ -F 'input[image_tail]=@/path/to/image_tail.jpg' \ -F 'input[static_mask]=@/path/to/static_mask.jpg' \ -F 'webhook_url=https://your-server.com/hooks/kolayzeka'
Yanıt akışı (asenkron)
HTTP 202 + status: "queued" döner — bu yanıtta henüz sonuç yoktur. Nihai sonucu (status: "completed" + output_data) almak için GET https://kolayzeka.com/api/generations/{id} adresini sorgulayın veya bir webhook_url belirtin (webhook gövdesi bu nihai yanıtın aynısıdır).estimated_seconds = bu modun geçmiş çalıştırmalardan hesaplanan ortalama tamamlanma süresi (saniye); kuyruğa alınırken döner, null olabilir.
1 · POST yanıtı — kuyruğa alındı (HTTP 202)
{
"data": {
"id": "<uuid>",
"model": "kling-1-5",
"output_type": "video",
"source": "api",
"status": "queued",
"input_data": {
"mode": "std",
"duration": "5",
"sound": "off",
"cfg_scale": 0.5,
"multi_shot": "false"
},
"output_data": null,
"thumbnail_url": null,
"credit_cost": null,
"duration": null,
"estimated_seconds": 12,
"error_message": null,
"webhook_url": "https://your-server.com/hooks/kolayzeka",
"created_at": "2026-06-29T12:00:00.000000Z",
"updated_at": "2026-06-29T12:00:00.000000Z"
},
"success": true
}2 · Nihai sonuç (başarılı) — GET https://kolayzeka.com/api/generations/{id} veya webhook
{
"data": {
"id": "<uuid>",
"model": "kling-1-5",
"output_type": "video",
"source": "api",
"status": "completed",
"input_data": {
"mode": "std",
"duration": "5",
"sound": "off",
"cfg_scale": 0.5,
"multi_shot": "false"
},
"output_data": {
"result": "https://<s3-signed-url>/output.mp4"
},
"thumbnail_url": "https://<s3-signed-url>/thumb.jpg",
"credit_cost": 5,
"duration": 4.52,
"error_message": null,
"webhook_url": "https://your-server.com/hooks/kolayzeka",
"created_at": "2026-06-29T12:00:00.000000Z",
"updated_at": "2026-06-29T12:00:05.000000Z"
},
"success": true
}3 · Nihai sonuç (başarısız) — status: "failed"
{
"data": {
"id": "<uuid>",
"model": "kling-1-5",
"output_type": "video",
"source": "api",
"status": "failed",
"input_data": {
"mode": "std",
"duration": "5",
"sound": "off",
"cfg_scale": 0.5,
"multi_shot": "false"
},
"output_data": null,
"thumbnail_url": null,
"credit_cost": 0,
"duration": null,
"error_message": "Sağlayıcı isteği reddetti: ...",
"webhook_url": "https://your-server.com/hooks/kolayzeka",
"created_at": "2026-06-29T12:00:00.000000Z",
"updated_at": "2026-06-29T12:00:03.000000Z"
},
"success": true
}İstek anında reddedilirse (4xx/5xx) API { "success": false, "error": "…" } döndürür. Krediler yalnızca başarılı bir üretimde düşülür.
Üretim kuyruğa alındıktan sonra başarısız olursa terminal yanıt status: "failed" olur; sebep error_message alanındadır (webhook event'i generation.failed).
Kimlik Doğrulama
Tüm istekler Authorization başlığında bir Sanctum kişisel erişim token'ı gerektirir.
Authorization: Bearer YOUR_TOKENToken oluşturmak / yenilemek için Profil ayarları'na gidin.
İstek şeması
imageBaşlangıç Karesi
JSON gövdesinde string olarak herkese açık erişilebilir bir URL geçirin veya dosyayı multipart/form-data ile -F 'input[image]=@./file.jpg' kullanarak yükleyin. Kabul edilen formatlar: jpg, jpeg, png, webp.
image_tailBitiş Karesi (opsiyonel)
JSON gövdesinde string olarak herkese açık erişilebilir bir URL geçirin veya dosyayı multipart/form-data ile -F 'input[image_tail]=@./file.jpg' kullanarak yükleyin. Kabul edilen formatlar: jpg, jpeg, png, webp.
promptPozitif Prompt
negative_promptNegatif Prompt
modeKalite Modu
İzin verilen:stdpro
Varsayılan: std
durationSüre (saniye)
İzin verilen:3456789101112131415
Varsayılan: 5
soundNative Ses
İzin verilen:offon
Varsayılan: off
cfg_scaleCFG Ölçeği (özgürlük derecesi)
Varsayılan: 0.5
multi_shotÇok Sahne (Multi-shot)
İzin verilen:falsetrue
Varsayılan: false
shot_typeStoryboard Yöntemi
İzin verilen:customizeintelligence
multi_promptStoryboard Sahneler
element_listElement Listesi (maks. 3)
voice_listSes Listesi (JSON — [{voice_id}], maks. 2)
static_maskStatik Fırça Maskesi (Motion Brush)
JSON gövdesinde string olarak herkese açık erişilebilir bir URL geçirin veya dosyayı multipart/form-data ile -F 'input[static_mask]=@./file.jpg' kullanarak yükleyin. Kabul edilen formatlar: jpg, jpeg, png, webp.
dynamic_masksDinamik Fırça (Motion Brush)
camera_controlKamera Hareketi
Dosya girdileri
Bu model 3 dosya türünde alan bekliyor. Ya (a) dosyayı herkese açık bir yerde barındırıp URL'sini JSON içinde geçirin, ya da (b) baytları doğrudan multipart/form-data ile yükleyin.
imageJSON: "input": { "image": "https://…" }
Multipart: -F "input[image]=@./file"
image_tailJSON: "input": { "image_tail": "https://…" }
Multipart: -F "input[image_tail]=@./file"
static_maskJSON: "input": { "static_mask": "https://…" }
Multipart: -F "input[static_mask]=@./file"
Webhook
Üretim tamamlandığında (veya başarısız olduğunda) sunucudan sunucuya geri çağrı almak için herhangi bir isteğe bir webhook_url ekleyin. Uzun süren video üretimleri veya sürekli sorgulamadan kaçınmak için kullanışlıdır.
Uç noktanız, nihai üretim verisini içeren imzalı bir POST isteği alır.X-KolayZeka-Signature başlığını (sha256=<hex>) kullanarak özgünlüğü doğrulayın; bu değer, ham gövdeden HMAC-SHA256 ve hesabınızın Webhook Gizli Anahtarı ile hesaplanır.
Webhook Gizli Anahtarınızı nasıl alırsınız
Hesabınızın tek bir webhook imzalama gizli anahtarı vardır. Bunu Profil sayfasında oluşturup yönetin — hangi API token'ı isteği tetiklerse tetiklesin, bu tek değer adınıza gönderdiğimiz her webhook'u doğrular.
- Webhook imzalama gizli anahtarı kartını açın ve Oluştur'a tıklayın. Değer yalnızca bir kez gösterilir — kopyalayıp güvenli bir şekilde saklayın.
- Geçersiz kılmanız mı gerekiyor? Yeni bir gizli anahtar üretmek için Yenile'ye veya webhook gönderimlerini tamamen devre dışı bırakmak için İptal Et'e tıklayın. Önceki değer anında çalışmayı durdurur.
Oluşturulmuş gizli anahtarı olmayan hesaplar webhook gönderemez — biri oluşturulana kadar giden gönderimler atlanır.
Gönderilen başlıklar
X-KolayZeka-Event: generation.completed // veya generation.failed
X-KolayZeka-Signature: sha256=<hex>
User-Agent: KolayZeka-Webhook/1.0
İmza doğrulama (Node.js)
import crypto from 'node:crypto';
const expected = 'sha256=' + crypto
.createHmac('sha256', process.env.KOLAYZEKA_WEBHOOK_SECRET)
.update(rawBody)
.digest('hex');
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-kolayzeka-signature']))) {
return res.status(401).end();
}Özel / loopback / bulut-meta veri URL'leri gönderim sırasında reddedilir (SSRF koruması). Gönderim, ağ hatalarında veya 2xx olmayan yanıtlarda, geri çekilmeli olarak en fazla 5 kez yeniden denenir.
Hata yönetimi
Yetkisiz
Bearer token eksik veya geçersiz.
Ödeme Gerekli
Tahmini maliyet için yetersiz kredi.
Doğrulama Başarısız
Girdi zorunlu alanları içermiyor veya şemaya aykırı.
Geçersiz İstek
Sağlayıcı veriyi reddetti. Ayrıntılar için `error` alanına bakın.
Bulunamadı
Model slug mevcut değil veya aktif değil.
Sağlayıcı Hatası
Yukarı akış AI motoru hata döndürdü. Tekrar denemek genellikle güvenlidir.