Kampanya API
Kampanyalari programatik olarak olusturun, yonetin ve analiz edin.
Endpointler
Kampanyalari Listele
http
GET /api/v1/campaignsQuery Parametreleri:
| Parametre | Tip | Aciklama |
|---|---|---|
type | string | Kampanya turu: BROADCAST, DRIP, TRIGGERED |
status | string | Durum: DRAFT, SCHEDULED, SENDING, SENT, FAILED |
channel | string | Kanal: email, sms, whatsapp |
page | number | Sayfa numarasi (varsayilan: 1) |
limit | number | Sayfa basina kayit (varsayilan: 20, maks: 100) |
Yanit:
json
{
"data": [
{
"id": "camp_abc123",
"name": "Hosgeldin Kampanyasi",
"type": "BROADCAST",
"channel": "email",
"status": "SENT",
"recipientCount": 1500,
"sentCount": 1487,
"openedCount": 623,
"clickedCount": 198,
"createdAt": "2026-01-15T10:00:00Z",
"scheduledAt": null,
"completedAt": "2026-01-15T10:45:00Z"
}
],
"total": 42,
"page": 1,
"limit": 20
}Kampanya Detayi
http
GET /api/v1/campaigns/:idKampanya Olustur
http
POST /api/v1/campaignsBody:
json
{
"name": "Yeni Yil Kampanyasi",
"type": "BROADCAST",
"channel": "email",
"subject": "Yeni yil firsatlari!",
"htmlContent": "<h1>Mutlu Yillar!</h1><p>Ozel indirimlerimizi kacirmayin.</p>",
"textContent": "Mutlu Yillar! Ozel indirimlerimizi kacirmayin.",
"broadcastListId": "list_xyz789",
"scheduledAt": "2026-12-31T20:00:00Z"
}| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
name | string | Evet | Kampanya adi |
type | string | Evet | BROADCAST, DRIP, TRIGGERED |
channel | string | Evet | email, sms, whatsapp |
subject | string | E-posta icin | E-posta konu satiri |
htmlContent | string | E-posta icin | HTML icerik |
textContent | string | SMS icin | Duz metin icerik |
broadcastListId | string | Hayir | Hedef broadcast listesi |
segmentId | string | Hayir | Hedef segment |
scheduledAt | datetime | Hayir | Zamanlama (bos ise hemen gonderilir) |
abTestConfig | object | Hayir | A/B test yapilandirmasi |
Kampanya Guncelle
http
PATCH /api/v1/campaigns/:idSadece DRAFT durumundaki kampanyalar guncellenebilir.
Kampanya Sil
http
DELETE /api/v1/campaigns/:idSadece DRAFT veya FAILED durumundaki kampanyalar silinebilir.
Kampanya Gonder
http
POST /api/v1/campaigns/:id/sendKampanyayi hemen gonderime baslatir. Kampanya DRAFT veya SCHEDULED durumunda olmalidir.
Broadcast Listeleri
Listeleri Getir
http
GET /api/v1/broadcast-listsListe Olustur
http
POST /api/v1/broadcast-listsjson
{
"name": "VIP Musteriler",
"description": "Yuksek degerli musteriler"
}Listeye Kisi Ekle
http
POST /api/v1/broadcast-lists/:id/contactsjson
{
"contactIds": ["contact_1", "contact_2", "contact_3"]
}Listeden Kisi Cikar
http
DELETE /api/v1/broadcast-lists/:id/contacts/:contactIdKampanya Analitikleri
Kampanya Istatistikleri
http
GET /api/v1/campaigns/:id/statsYanit:
json
{
"sent": 1500,
"delivered": 1487,
"opened": 623,
"clicked": 198,
"bounced": 13,
"unsubscribed": 5,
"deliveryRate": 99.13,
"openRate": 41.89,
"clickRate": 31.78,
"bounceRate": 0.87
}SMS Kampanyasi Notlari
SMS kampanyalari icin ek alanlar:
| Alan | Tip | Aciklama |
|---|---|---|
smsProvider | string | NETGSM, ILETI_MERKEZI, TWILIO |
originator | string | Gonderen basligi |
estimatedCost | number | Tahmini maliyet |
charCount | number | Karakter sayisi |
smsCount | number | SMS sayisi (uzun mesajlarda >1) |
Hata Kodlari
| Kod | Anlam |
|---|---|
| 400 | Gecersiz istek — zorunlu alanlar eksik |
| 404 | Kampanya bulunamadi |
| 409 | Kampanya durumu uygun degil (ornegin gonderilmis kampanya silinemez) |
| 429 | Gonderim hiz limiti asildi |
Yetkilendirme
Tum kampanya endpointleri JWT token gerektirir. Detaylar icin Kimlik Dogrulama sayfasina bakin.
