İçeriğe geç
AZAMOL VIDEO STUDIO
REST API · v1

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_xxxxxxxxxxxxxxxxxxxxxxxx

POST/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" }

HTTPhata_koduAçıklama
400EKSIK_ALANcapability veya model alanı eksik.
400GECERSIZ_GOVDEİstek gövdesi geçerli JSON değil.
400MODEL_BULUNAMADIBelirtilen capability/model kombinasyonu bulunamadı veya pasif.
401GECERSIZ_ANAHTARAuthorization header eksik, biçimsiz veya anahtar pasif/geçersiz.
402KREDI_YETERSIZHesap bakiyesi bu iş için yetersiz.
403RELAX_IZNI_YOKPlan Unlimited Relax özelliğine sahip değil.
403TAKIM_UYELIGI_YOKBelirtilen team_id'ye üyelik yok.
404IS_BULUNAMADIİş bulunamadı — veya başka bir hesaba ait (kimlik bilgisi sızdırılmaz).
429RELAX_KUYRUK_DOLURelax kuyruğu dolu, daha sonra tekrar deneyin.
500SUNUCU_HATASIBeklenmeyen sunucu hatası.
503API_YAPILANDIRILMAMISAPI henüz etkin değil — daha sonra tekrar deneyin.