Developer Platform

Depiar API Referans

Dünyanın en gerçekçi yapay zeka ses teknolojilerini projelerinize entegre edin. Ses sentezleme, ses klonlama, AI müzik cover ve tam otomatik video dublaj özelliklerini RESTful API üzerinden kullanın.

Base URL

https://api.depiar.com

Tüm istekler bu temel URL üzerinden yapılır. Yanıtlar JSON formatındadır.

Yetkilendirme

Tüm API istekleri Authorization header'ı ile yetkilendirilmelidir. API anahtarınızı Bearer token olarak gönderin.

Güvenlik: API anahtarlarınızı asla frontend kodunda veya açık kaynak kodlarda paylaşmayın. Sunucu taraflı (backend) kullanın.
API Anahtarı Almak İçin:
1. Giriş yapın veya hesap oluşturun
2. Dashboard → API Yönetimi sayfasına gidin
3. "Yeni Anahtar Oluştur" butonuna tıklayın
curl https://api.depiar.com/api/tts \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json"

Text to Speech

Metni gerçekçi yapay zeka sesleriyle konuşmaya dönüştürün. 16 dil desteği.

POST/api/tts

Ses Sentezle

Metni belirtilen ses modeli ile sese dönüştürür.

Parametreler

textstringZorunlu

Sese dönüştürülecek metin (maks. 5000 karakter).

voiceIdstringZorunlu

Kullanılacak ses modelinin benzersiz ID değeri.

langstring

ISO 639-1 dil kodu. Varsayılan: tr

curl -X POST https://api.depiar.com/api/tts \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Yapay zeka ile seslendirme.",
    "voiceId": "clx_abc123",
    "lang": "tr"
  }'
Response
{
  "id": "tts_8xjd93kd",
  "userId": "usr_abc123",
  "text": "Yapay zeka ile seslendirme.",
  "voiceId": "clx_abc123",
  "voiceName": "Ahmet - Profesyonel",
  "audioUrl": "https://api.depiar.com/uploads/tts/tts_usr_abc123_uuid.wav",
  "createdAt": "2026-05-10T00:15:00.000Z"
}
GET/api/tts

TTS Geçmişini Listele

Hesabınıza ait tüm sentez geçmişini döndürür.

Parametreler

limitinteger

Sayfa başına döndürülecek kayıt sayısı. Varsayılan: 20, Maks: 100

offsetinteger

Atlanacak kayıt sayısı (sayfalama için). Varsayılan: 0

curl https://api.depiar.com/api/tts \
  -H "Authorization: Bearer sk_your_api_key"
Response
{
  "data": [
    {
      "id": "tts_8xjd93kd",
      "text": "Merhaba dünya",
      "voiceName": "Ahmet",
      "audioUrl": "https://api.depiar.com/uploads/tts/tts_xxx.wav",
      "createdAt": "2026-05-10T00:15:00.000Z"
    }
  ],
  "pagination": { "total": 15, "limit": 20, "offset": 0, "hasMore": false }
}
DELETE/api/tts?id={id}

TTS Kaydını Sil

Belirtilen sentez kaydını ve ses dosyasını sunucudan kalıcı olarak siler.

Parametreler

idstringZorunlu

Silinecek TTS kaydının benzersiz ID değeri.

curl -X DELETE "https://api.depiar.com/api/tts?id=tts_8xjd93kd" \
  -H "Authorization: Bearer sk_your_api_key"
Response
{ "success": true }
POST/api/enhance-script

Senaryo İyileştirme (AI)

Düz metni yapay zeka ile profesyonel bir TTS senaryosuna dönüştürür. Duraklamalar, vurgular ve doğal nidalar ekleyerek seslendirme kalitesini artırır.

Parametreler

textstringZorunlu

İyileştirilecek metin. En az 5 kelime olmalıdır.

curl -X POST https://api.depiar.com/api/enhance-script \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "text": "Merhaba bu bir test metnidir yapay zeka ile seslendirme yapacağız" }'
Response
{ "enhancedText": "Merhaba... bu bir TEST metnidir. Yapay zeka ile... SESLENDİRME yapacağız." }

Ses Kütüphanesi

Ses modellerinizi yönetin. Yeni sesler yükleyin, klonlayın veya mevcut modelleri listeleyin ve silin.

GET/api/voices

Sesleri Listele

Hesabınızdaki tüm ses modellerini (klonlanmış ve eğitilmiş) döndürür.

Parametreler

limitinteger

Sayfa başına döndürülecek kayıt sayısı. Varsayılan: 50, Maks: 100

offsetinteger

Atlanacak kayıt sayısı. Varsayılan: 0

curl https://api.depiar.com/api/voices \
  -H "Authorization: Bearer sk_your_api_key"
Response
{
  "data": [
    {
      "id": "clx_abc123",
      "name": "Ahmet - Profesyonel",
      "type": "PRO",
      "status": "READY",
      "audioPath": "https://api.depiar.com/uploads/voices/ahmet.wav",
      "createdAt": "2026-05-09T10:00:00.000Z"
    }
  ],
  "pagination": { "total": 3, "limit": 50, "offset": 0, "hasMore": false }
}
POST/api/voices

Yeni Ses Modeli Yükle

Yeni bir ses dosyası yükleyerek klonlama veya eğitim başlatır. multipart/form-data kullanır.

Parametreler

namestringZorunlu

Ses modelinin adı.

typestring

STANDARD veya PRO. Varsayılan: STANDARD

webhookUrlstring

PRO model eğitimi bittiğinde sonuçların iletileceği bildirim URL'si.

filefileZorunlu

Ses dosyası (.wav, .mp3). Min. 10 saniye önerilir.

curl -X POST https://api.depiar.com/api/voices \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "name=Yeni Ses" \
  -F "type=STANDARD" \
  -F "file=@/path/to/voice.wav"
Response
{
  "id": "clx_new456",
  "name": "Yeni Ses",
  "type": "STANDARD",
  "audioPath": "/uploads/voices/new.wav",
  "createdAt": "2026-05-10T12:00:00.000Z"
}

/* 
  PRO Model Eğitimi Bittiğinde Webhook Payload Şeması:
  {
    "projectId": "clx_new456", // Ses modeli ID'si
    "status": "completed", // veya "failed"
    "event": "project.completed",
    "timestamp": "2026-05-10T12:00:00.000Z"
  }
*/
DELETE/api/voices/{id}

Ses Modelini Sil

Belirtilen ses modelini ve ilişkili dosyalarını kalıcı olarak siler.

Parametreler

idstringZorunlu

Silinecek ses modelinin ID değeri (URL parametresi).

curl -X DELETE https://api.depiar.com/api/voices/clx_abc123 \
  -H "Authorization: Bearer sk_your_api_key"
Response
{ "success": true }
GET/api/voices/system

Sistem Seslerini Listele

Platforma entegre edilmiş genel kullanıma açık sistem seslerini listeler.

Parametreler

langstring

Dile göre filtreleme (örn: tr, en)

curl https://api.depiar.com/api/voices/system?lang=tr \
  -H "Authorization: Bearer sk_your_api_key"
Response
{
  "data": [
    { "id": "sys_tr_ahmet", "name": "Ahmet (Türkçe - Erkek)", "language": "tr", "gender": "male", "previewUrl": "/samples/ahmet.mp3" }
  ],
  "total": 1
}

AI Cover Studio

Şarkı yükleyerek yapay zeka ile cover üretin. RVC (Retrieval-based Voice Conversion) teknolojisi ile profesyonel sonuçlar.

Not: Cover endpoint'i multipart/form-data kabul eder. Ses dosyasını file alanı ile gönderin.
POST/api/cover

AI Cover Oluştur

Bir şarkı dosyası yükleyin, vokalleri otomatik ayırıp seçilen ses modeliyle (RVC) yeni bir cover üretir.

Parametreler

voiceIdstringZorunlu

Kullanılacak ses modelinin ID değeri.

filefileZorunlu

Orijinal şarkı dosyası (.mp3, .wav).

pitchinteger

Perde ayarı (yarım ton). Varsayılan: 0

isolateVocalsboolean

Vokalleri otomatik ayır. Varsayılan: true

webhookUrlstring

İşlem tamamlandığında sonucun gönderileceği bildirim URL'si. (Önerilir: İşlem uzun sürebilir)

curl -X POST https://api.depiar.com/api/cover \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "voiceId=clx_abc123" \
  -F "pitch=0" \
  -F "isolateVocals=true" \
  -F "file=@/path/to/song.mp3"
Response
{
  "message": "Cover işlemi arka planda başlatıldı.",
  "status": "PROCESSING"
}
GET/api/cover

Cover Geçmişini Listele

Hesabınıza ait tüm AI Cover üretimlerini döndürür.

Parametreler

limitinteger

Sayfa başına döndürülecek kayıt sayısı. Varsayılan: 20

offsetinteger

Atlanacak kayıt sayısı. Varsayılan: 0

curl https://api.depiar.com/api/cover \
  -H "Authorization: Bearer sk_your_api_key"
Response
{
  "data": [
    { "id": "cov_xyz789", "voiceName": "Ahmet", "audioUrl": "https://api.depiar.com/uploads/covers/cover_xxx.wav", "mixedAudioUrl": "https://api.depiar.com/uploads/covers/mixed_xxx.wav" }
  ],
  "pagination": { "total": 2, "limit": 20, "offset": 0, "hasMore": false }
}
DELETE/api/cover?id={id}

Cover Kaydını Sil

Belirtilen cover kaydını ve dosyalarını siler.

Parametreler

idstringZorunlu

Silinecek cover kaydının ID değeri.

curl -X DELETE "https://api.depiar.com/api/cover?id=cov_xyz789" \
  -H "Authorization: Bearer sk_your_api_key"
Response
{ "success": true }

Altyazı & Dublaj Pipeline

Videoları 3 adımda tam otomatik dublajlayın: Altyazı Ayıkla → Çevir → Senkronize Seslendir.

1
Extract
2
Translate
3
TTS
POST/api/upload

Tam Otomatik Video Dublaj (Webhook)

Videoyu tek seferde yükler ve arka planda sırasıyla deşifre, çeviri ve seslendirme (sentez) işlemlerini otomatik tamamlar. Uzun işlemler için webhook destekler.

Parametreler

filefileZorunlu

Orijinal video veya ses dosyası (maks. 500 MB).

sourceLangstring

Orijinal dil kodu. Örn: en

targetLangstring

Hedef dil kodu. Örn: tr

autoDubboolean

true gönderildiğinde manuel düzenleme beklemeden tam otomatik dublajı tamamlar.

webhookUrlstring

İşlem tamamlandığında sonucun gönderileceği URL.

speakerCountstring

Konuşmacı sayısı (1, 2, 3) veya "auto". Varsayılan: auto

curl -X POST https://api.depiar.com/api/upload \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "file=@/path/to/video.mp4" \
  -F "sourceLang=en" \
  -F "targetLang=tr" \
  -F "autoDub=true" \
  -F "webhookUrl=https://your-domain.com/webhook/dub"
Response
{
  "message": "Dosya başarıyla yüklendi ve yapay zeka motorunda işleniyor.",
  "project": {
    "id": "cuid_12345",
    "name": "video.mp4",
    "status": "PROCESSING"
  }
}
POST/api/subtitle/extract

Adım 1: Altyazı Ayıkla

YouTube URL veya .srt/.vtt dosyası göndererek zaman damgalı altyazı verisi çıkarır.

Parametreler

urlstring

YouTube video URL (JSON body ile).

filefile

.srt veya .vtt dosyası (multipart/form-data ile).

# YouTube URL ile:
curl -X POST https://api.depiar.com/api/subtitle/extract \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ" }'

# Dosya yükleme ile:
curl -X POST https://api.depiar.com/api/subtitle/extract \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "file=@/path/to/subtitle.srt"
Response
{
  "source": "youtube",
  "videoTitle": "Video Başlığı",
  "videoDuration": 245,
  "originalLang": "en",
  "isAutoGenerated": false,
  "availableLanguages": { "manual": ["en"], "auto": ["en","tr"] },
  "format": "srt",
  "entries": [
    { "index": 1, "startTime": 0.5, "endTime": 3.2, "text": "Hello world" },
    { "index": 2, "startTime": 3.5, "endTime": 6.1, "text": "Welcome to the video" }
  ],
  "totalEntries": 2
}
POST/api/subtitle/translate

Adım 2: Altyazı Çevir

Ayıklanan altyazıları LLaMA-3 ile hedef dillere bağlama uygun çevirir.

Parametreler

entriesarrayZorunlu

Extract adımından dönen entries dizisi.

targetLanguagesarrayZorunlu

Hedef dil kodları dizisi. Örn: ["tr","de"]

sourceLangstring

Kaynak dil kodu.

webhookUrlstring

Çeviri uzun sürerse timeout yememek için sonuçların gönderileceği adres.

curl -X POST https://api.depiar.com/api/subtitle/translate \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "entries": [{"index":1,"startTime":0.5,"endTime":3.2,"text":"Hello"}],
    "targetLanguages": ["tr"],
    "sourceLang": "en",
    "webhookUrl": "https://yourapp.com/webhook"
  }'
Response
{
  "success": true,
  "translations": {
    "tr": {
      "language": "tr",
      "languageName": "Türkçe",
      "entries": [{ "index": 1, "startTime": 0.5, "endTime": 3.2, "text": "Merhaba" }],
      "srtContent": "1\n00:00:00,500 --> 00:00:03,200\nMerhaba\n",
      "translatedCount": 1,
      "totalCount": 1
    }
  },
  "languageCount": 1
}

/* 
  Eğer webhookUrl kullanıldıysa yanıt: { "status": "PROCESSING" } döner. 
  Webhook Payload Şeması:
  {
    "event": "translation.completed",
    "status": "completed",
    "translations": { ...aynı yapı... },
    "languageCount": 1
  }
*/
POST/api/subtitle/tts

Adım 3: Senkronize Dublaj

Çevrilen altyazıları seçilen sesle konuşmaya çevirir. Orijinal videonun zaman damgalarına milisaniye hassasiyetinde uyar.

Parametreler

entriesarrayZorunlu

Çevrilmiş entries dizisi (Translate adımından).

voiceIdstringZorunlu

Dublaj için kullanılacak ses modeli ID değeri.

langstring

Hedef dil kodu. Varsayılan: tr

curl -X POST https://api.depiar.com/api/subtitle/tts \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "entries": [{"index":1,"startTime":0.5,"endTime":3.2,"text":"Merhaba"}],
    "voiceId": "clx_abc123",
    "lang": "tr"
  }'
Response
{
  "success": true,
  "audioUrl": "/uploads/subtitles/tts/subtitle_tts_xxx.mp3",
  "totalDuration": 246,
  "segmentsProcessed": 42,
  "segmentsTotal": 45
}
GET/api/subtitle/history

Altyazı Geçmişi

Tüm altyazı projelerinizi listeler.

Parametreler

limitinteger

Sayfa başına döndürülecek kayıt sayısı. Varsayılan: 20

offsetinteger

Atlanacak kayıt sayısı. Varsayılan: 0

curl https://api.depiar.com/api/subtitle/history \
  -H "Authorization: Bearer sk_your_api_key"
Response
{
  "data": [
    { "id": "sub_123", "title": "Video", "sourceLang": "en", "targetLang": "tr", "srtUrl": "https://api.depiar.com/uploads/subtitles/sub.srt", "audioUrl": null }
  ],
  "pagination": { "total": 1, "limit": 20, "offset": 0, "hasMore": false }
}
DELETE/api/subtitle/history?id={id}

Altyazı Projesini Sil

Belirtilen altyazı projesini ve ilişkili dosyaları siler.

Parametreler

idstringZorunlu

Silinecek proje ID değeri.

curl -X DELETE "https://api.depiar.com/api/subtitle/history?id=sub_123" \
  -H "Authorization: Bearer sk_your_api_key"
Response
{ "success": true }

Zaman Aşımı & Büyük Dosyalar

Yapay zeka modelleri (özellikle Video Dublaj ve Altyazı Çıkarma) çok uzun sürebilir. İstemci (client) tarafındaki kütüphanelerin HTTP Timeout sürelerini en az 180-300 saniye yapmanız kritik öneme sahiptir.

Büyük Dosya Yönetimi (VAD Chunking): API sunucularımız OOM (RAM) çökmelerine karşı özel Stream (Akış) teknolojisi ile korunmaktadır. 1 Saatlik uzun videoları tek parça gönderseniz bile, sunucumuz dosyayı 5 dakikalık mantıksal (sessizlik bazlı) parçalara bölerek sırayla işler ve başarıyla birleştirir.

Yine de aşırı büyük dosyalar için işlemlerin süresi videonun uzunluğuna göre artacağından dolayı, ilerleyen güncellemelerde uzun işlemler için Webhook altyapısı devreye alınacaktır.

curl --max-time 180 https://api.depiar.com/api/cover \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "file=@/path/to/song.mp3"

Hata Kodları

API standart HTTP durum kodlarını kullanır. Hata durumunda aşağıdaki standart JSON şemasıyla detaylı mesaj döndürülür.

# Örnek Hata Yanıtı (400 Bad Request):
{
  "error": {
    "code": "invalid_request_error",
    "message": "voiceId parametresi zorunludur.",
    "param": "voiceId"
  }
}
KodHTTP TürüJSON Kodu (`error.code`)Açıklama
400Bad Requestinvalid_request_errorİstek parametreleri eksik veya geçersiz.
401Unauthorizedauthentication_errorAPI anahtarı eksik veya geçersiz.
402Payment Requiredinsufficient_balanceBakiye yetersiz. Cüzdanınıza bakiye yükleyin.
403Forbiddenpermission_deniedBu işlem için yetkiniz yok.
404Not Foundresource_not_foundİstenen kaynak (ses modeli, proje) bulunamadı.
429Rate Limitedrate_limit_exceededÇok fazla istek gönderdiniz. Lütfen bekleyin.
500Server Errorapi_errorSunucu taraflı beklenmeyen bir hata oluştu.
# Hata yanıtı örneği (401 Unauthorized):
{
  "error": {
    "code": "authentication_error",
    "message": "Geçersiz veya eksik API Anahtarı. Lütfen geçerli bir Bearer Token sağlayın."
  }
}

# Bakiye yetersiz (402 Payment Required):
{
  "error": {
    "code": "insufficient_balance",
    "message": "Bakiye yetersiz. Kalan Bakiye: 2.50 ₺, İşlem Tutarı: 15.00 ₺."
  }
}

Rate Limits

API kötüye kullanımı önlemek için istek sınırlamaları uygular. Limitler plan türüne göre değişir.

Planİstek/dkGünlük LimitUç Nokta (Endpoint) Sınırları
Standart API60Kota YettiğinceKategoriye Özel (Aşağıya bakınız)
⚠️ Endpoint Başına Sabit Dosya Limitleri:
  • /api/upload (Video Dublaj): Maksimum 500 MB (Uzun videolar desteklenir, 5dk'lık parçalara otomatik bölünür)
  • /api/voices (Ses Eğitimi): Maksimum 50 MB (Ortalama 10-15 dk kaliteli veri yeterlidir)
  • /api/cover (Şarkı Cover): Maksimum 20 MB (Sadece standart şarkı süreleri içindir)
  • /api/recordings (Mikrofon): Maksimum 50 MB
429 Too Many Requests aldığınızda yanıttaki Retry-After header'ını kontrol edin ve belirtilen süre sonra tekrar deneyin.

Fiyatlandırma

API kullanımı bakiye tabanlı çalışır. İşlem maliyetleri aşağıdaki gibidir:

İşlemBirim FiyatAçıklama
TTS (Ses Sentezi)1.00 ₺1000 karakter başına
Altyazı Çevirisi1.00 ₺1000 karakter × dil sayısı başına
AI Cover15.00 ₺İşlem başına (sabit)
Video Dublaj25.00 ₺İşlem başına (sabit)
İade Politikası: Sunucu hatası nedeniyle başarısız olan işlemlerde ücret otomatik olarak iade edilir.

Desteklenen Diller

trTürkçe
enEnglish
deDeutsch
frFrançais
esEspañol
itItaliano
ptPortuguês
ruРусский
ja日本語
ko한국어
zh中文
arالعربية
hiहिन्दी
nlNederlands
plPolski
svSvenska