API Dokümantasyonu
Tek API, çok model. Panelinizle aynı kredi motorunu ve kuyruk altyapısını REST üzerinden kendi ürününüze entegre edin — kredi rezervasyonu, plan limitleri ve eşzamanlılık kuralları API çağrılarında da AYNEN uygulanır.
Kimlik Doğrulama
Tüm uçlar (/openapi.json hariç) Authorization header'ında Bearer anahtarı bekler. Anahtarınızı /panel/api sayfasından üretebilirsiniz — tam anahtar yalnızca üretim anında bir kez gösterilir.
Authorization: Bearer azk_live_xxxxxxxxxxxxxxxxxxxxxxxxPOST/generate
Yeni üretim işi oluşturur. İş kredi motoruna (rezervasyon) girer ve async kuyruğa alınır — istek senkron beklemez, sonucu GET /jobs/{id} ile poll edin.
curl -X POST https://video.azamol.ai/api/v1/generate \
-H "Authorization: Bearer azk_live_..." \
-H "Content-Type: application/json" \
-d '{
"capability": "text_to_image",
"model": "nano-banana-2",
"input": { "prompt": "stüdyo ışığında ürün fotoğrafı", "num_images": 1 }
}'
# → 202 Accepted
{ "job_id": "b6b1...", "durum": "queued" }Opsiyonel Idempotency-Key header'ı çift-charge korumasına karşı önerilir — aynı anahtarla ikinci istek, YENİDEN kredi rezerve etmeden önceki işin kimliğini döner.
GET/jobs/{id}
İş durumunu sorgular. Yalnızca işin sahibi görebilir — başka bir hesabın işi sorgulanırsa (kimlik sızıntısı önlemek için) 404 döner, 403 değil.
curl https://video.azamol.ai/api/v1/jobs/b6b1... \
-H "Authorization: Bearer azk_live_..."
# → 200 OK
{
"id": "b6b1...",
"status": "succeeded",
"result_url": "https://.../generations/....png",
"result_meta": { "creditsConsumed": 1 },
"error": null,
"created_at": "2026-07-01T10:00:00Z",
"completed_at": "2026-07-01T10:00:24Z"
}GET/models
Aktif capability/model listesini kredi birimleriyle birlikte döner. Liste sürekli güncellendiğinden burada statik olarak tekrarlanmaz — güncel model kimlikleri için bu uç kaynak alınmalıdır.
curl https://video.azamol.ai/api/v1/models -H "Authorization: Bearer azk_live_..."
# → 200 OK
{ "models": [
{ "capability": "text_to_image", "model_string": "nano-banana-2",
"display_name": "Nano Banana 2", "unit": "per_image", "credits_per_unit": 1 },
...
] }GET/credits
Anlık kredi bakiyenizi döner — panel ile aynı bakiye (tek kredi motoru).
curl https://video.azamol.ai/api/v1/credits -H "Authorization: Bearer azk_live_..."
# → 200 OK
{ "balance": 246 }Kredi Mantığı
Her iş, oluşturulduğu anda gerekli krediyi rezerve eder. Üretim başarıyla tamamlanınca gerçek tüketim kesinleşir (rezerve ile fark varsa iade/ek düşüm otomatik yapılır); iş başarısız olursa rezerve edilen kredi tam olarak iade edilir. Planınızın eşzamanlı iş limiti, çözünürlük tavanı ve filigran kuralı API üzerinden de panelle birebir aynı şekilde uygulanır — API bu kuralları atlamaz.
Hız Sınırı
v1'de fiili bir istek/dakika sınırlaması uygulanmaz; kaynak koruması eşzamanlı iş limitiniz üzerinden sağlanır. İleride plan bazlı hız sınırı eklenirse 429 (HIZ_SINIRI_ASILDI) ile bildirilecektir.
Hata Kodları
Hata gövdeleri her zaman şu biçimdedir: { "hata": "Türkçe mesaj", "hata_kodu": "KOD" }
| HTTP | hata_kodu | Açıklama |
|---|---|---|
| 400 | EKSIK_ALAN | capability veya model alanı eksik. |
| 400 | GECERSIZ_GOVDE | İstek gövdesi geçerli JSON değil. |
| 400 | MODEL_BULUNAMADI | Belirtilen capability/model kombinasyonu bulunamadı veya pasif. |
| 401 | GECERSIZ_ANAHTAR | Authorization header eksik, biçimsiz veya anahtar pasif/geçersiz. |
| 402 | KREDI_YETERSIZ | Hesap bakiyesi bu iş için yetersiz. |
| 403 | RELAX_IZNI_YOK | Plan Unlimited Relax özelliğine sahip değil. |
| 403 | TAKIM_UYELIGI_YOK | Belirtilen team_id'ye üyelik yok. |
| 404 | IS_BULUNAMADI | İş bulunamadı — veya başka bir hesaba ait (kimlik bilgisi sızdırılmaz). |
| 429 | RELAX_KUYRUK_DOLU | Relax kuyruğu dolu, daha sonra tekrar deneyin. |
| 500 | SUNUCU_HATASI | Beklenmeyen sunucu hatası. |
| 503 | API_YAPILANDIRILMAMIS | API henüz etkin değil — daha sonra tekrar deneyin. |