API Referansı
Kiracı API'sını kullanarak enuchat'ı sistemlerinize entegre edin. Konuşmaları yönetin, mesaj gönderin ve faturalandırma verilerine programatik olarak erişin.
Kimlik Doğrulama
Tüm API istekleri X-Api-Key başlığında gönderilen bir API anahtarıyla doğrulanır.
API anahtarınızı alma
- Panelinizde Ayarlar → API Anahtarları'na gidin
- API Anahtarı Oluştur'a tıklayın ve bir ad verin
- Anahtarı hemen kopyalayın — yalnızca bir kez gösterilir
- Güvenli bir şekilde saklayın (ortam değişkeni, gizli bilgi yöneticisi)
İstek yapma
Her istekte anahtarı ekleyin:
curl -H "X-Api-Key: tak_your_key_here" \
https://api.enuchat.com/api/v1/tenant-api/widgetsTüm yanıtlar JSON formatındadır. Başarılı yanıtlarda data alanı bulunur. Hatalarda code ve message içeren bir error alanı bulunur.
Güvenlik: API anahtarları veritabanımızda karmalanır (SHA-256). Ham anahtarı asla saklamayız. Anahtarınızı bir parola gibi değerlendirin — koda eklemeyin veya herkese açık paylaşmayın.
Temel URL
https://api.enuchat.com/api/v1/tenant-apiAşağıdaki tüm endpoint'ler bu temel URL'ye görelidir.
Endpoint'ler
GET /widgets
Hesabınızdaki tüm bileşenleri listeler.
Yanıt
{'{'}
"data": [
{'{'}
"id": "019d19c6-7e0b-...",
"name": "Main Website Chat",
"isActive": true,
"aiEnabled": true,
"translationEnabled": true,
"primaryColor": "#2563eb",
"position": "bottom-right"
}
]
}GET /conversations
Konuşmaları en son mesaja göre sıralı listeler.
Sorgu Parametreleri
| Parametre | Tür | Açıklama |
|---|---|---|
status | string | Duruma göre filtrele: open, pending, closed |
widgetId | string | Bileşen UUID'sine göre filtrele |
limit | integer | Maksimum sonuç (varsayılan 20, maks 100) |
offset | integer | N sonucu atla |
Örnek
curl -H "X-Api-Key: tak_..." \
"https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"Yanıt
{'{'}
"data": [
{'{'}
"id": "019d6724-000e-...",
"widgetId": "019d19c6-7e0b-...",
"visitorId": "v-abc123",
"visitorName": "John",
"visitorEmail": "john{'@'}example.com",
"visitorLanguage": "en",
"status": "open",
"assignedTo": null,
"lastMessageAt": "2026-04-11T14:30:00+00:00",
"startedAt": "2026-04-11T14:25:00+00:00"
}
]
}GET /conversations/{'{'}id}
Tüm mesajlarıyla birlikte bir konuşma getirir.
Sorgu Parametreleri
| Parametre | Tür | Açıklama |
|---|---|---|
limit | integer | Maksimum mesaj (varsayılan 50, maks 200) |
Yanıt
{'{'}
"data": {'{'}
"id": "019d6724-000e-...",
"visitorLanguage": "en",
"status": "open",
"messages": [
{'{'}
"id": "019d6724-1234-...",
"role": "visitor",
"content": "Hello, how much does it cost?",
"contentLanguage": "en",
"translatedContent": "Cześć, ile to kosztuje?",
"translatedLanguage": "pl",
"isAutoReply": false,
"createdAt": "2026-04-11T14:25:30+00:00"
},
{'{'}
"id": "019d6724-5678-...",
"role": "ai",
"content": "Our plans start at €19/month...",
"isAutoReply": true,
"createdAt": "2026-04-11T14:25:32+00:00"
}
]
}
}POST /conversations/{'{'}id}/messages
Bir konuşmaya mesaj gönderir. Mesaj sohbet bileşeni üzerinden ziyaretçiye gerçek zamanlı iletilir.
İstek Gövdesi
{'{'}
"content": "Thanks for reaching out! We'll process your request.",
"role": "system"
}| Alan | Tür | Açıklama |
|---|---|---|
content | string | Zorunlu. Mesaj metni. |
role | string | system (varsayılan) veya operator |
Yanıt (201 Created)
{'{'}
"data": {'{'}
"id": "019d6725-abcd-...",
"role": "system",
"content": "Thanks for reaching out!",
"createdAt": "2026-04-11T14:35:00+00:00"
}
}PATCH /conversations/{'{'}id}
Bir konuşmanın durumunu veya atamasını günceller.
İstek Gövdesi
{'{'}
"status": "closed"
}| Alan | Tür | Açıklama |
|---|---|---|
status | string | open, pending veya closed |
assignedTo | string|null | Atanacak operatör UUID'si veya atamayı kaldırmak için null |
GET /billing/balance
Mevcut planınızı ve kredi bakiyenizi getirir.
Yanıt
{'{'}
"data": {'{'}
"plan": "pro",
"creditBalance": 4500000,
"totalCreditsAdded": 10000000
}
}Hata Yönetimi
Hatalar, JSON gövdesiyle birlikte 2xx olmayan bir durum kodu döndürür:
{'{'}
"error": {'{'}
"code": "NOT_FOUND",
"message": "Conversation not found."
}
}| HTTP Durum Kodu | Anlam |
|---|---|
401 | Geçersiz, süresi dolmuş veya eksik API anahtarı |
400 | Geçersiz istek gövdesi veya parametreler |
404 | Kaynak bulunamadı (veya farklı bir kiracıya ait) |
500 | Sunucu hatası |
Yaygın Kullanım Alanları
CRM Entegrasyonu
Yeni konuşmaları sorgulayın ve ziyaretçi verilerini (ad, e-posta, dil) CRM'inize senkronize edin. Harici referans olarak konuşma kimliğini kullanın.
Otomatik Takipler
Bir konuşma kapatıldıktan sonra API üzerinden takip mesajı gönderin: "Sohbet ettiğiniz için teşekkürler! Yardımcı olabileceğimiz başka bir konu var mı?"
Webhook Alternatifi
Giden webhook'lar kullanılabilir olana kadar, yeni mesajları veya durum değişikliklerini algılamak için konuşmalar endpoint'ini düzenli aralıklarla sorgulayın.
Toplu İşlemler
7 günden eski tüm konuşmaları kapatın, harici mantığa göre konuşmaları operatörlere atayın veya analiz için konuşma geçmişini dışa aktarın.
Hız Limitleri
API, API anahtarı başına dakikada en fazla 60 istek yapılmasına izin verir. Bu limiti aşarsanız 429 Too Many Requests yanıtı alırsınız. Bekleyin ve üstel geri çekilme ile yeniden deneyin.
Entegrasyona hazır mısınız?
Ücretsiz hesabınızı oluşturun ve dakikalar içinde bir API anahtarı oluşturun.
Ücretsiz Başlayın