API Dokümantasyonu
YapayZekaChatbot REST API ile chatbot'unuzu programatik olarak kontrol edin. Sohbet, müşteri, randevu ve analitik verilerine tam erişim.
Kimlik Doğrulama
API Key ve Tenant ID ile güvenli erişim
Gerekli Header'lar
x-tenant-idTenant kimliğiniz (Dashboard'dan alın)AuthorizationBearer YOUR_API_KEY formatındaContent-Typeapplication/json (POST/PATCH için)Güvenlik Notları
- API Key'inizi asla client-side kodda kullanmayın
- Tüm istekler HTTPS üzerinden yapılmalıdır
- API Key'i environment variable olarak saklayın
- Şüpheli aktivitede key'i yenileyin
// API Key ile kimlik doğrulama
const headers = {
'Content-Type': 'application/json',
'x-tenant-id': 'YOUR_TENANT_ID',
'Authorization': 'Bearer YOUR_API_KEY'
};https://api.yapayzekachatbot.comTüm endpoint'ler bu URL üzerinden erişilirAPI Endpoint'leri
Tüm endpoint'ler RESTful standartlarına uygun tasarlanmıştır. JSON formatında veri alışverişi yapılır.
Sohbet API
(7 endpoint)/api/chat/messageChatbot'a mesaj gönder (streaming)/api/chat/history/:sessionIdSohbet geçmişini getir/api/chat/conversationsTüm sohbetleri listele/api/chat/conversations/:idSohbet detayını getir/api/chat/conversations/:id/closeSohbeti kapat/api/chat/configBot yapılandırmasını getir/api/chat/statsSohbet istatistiklerini getirMüşteri API
(8 endpoint)/api/customersMüşteri listesi/api/customers/:idMüşteri detayı ve aktivite geçmişi/api/customersYeni müşteri oluştur/api/customers/:idMüşteri bilgilerini güncelle/api/customers/:idMüşteri sil/api/customers/:id/notesMüşteri notlarını getir/api/customers/:id/notesMüşteriye not ekle/api/customers/:id/tagsMüşteriye etiket ekleRandevu API
(6 endpoint)/api/appointmentsRandevu listesi/api/appointments/:idRandevu detayı/api/appointmentsYeni randevu oluştur/api/appointments/:idRandevu güncelle/api/appointments/:id/cancelRandevu iptal et/api/appointments/available-slotsMüsait saatleri getirHizmet/Ürün API
(5 endpoint)/api/offeringsHizmet/ürün listesi/api/offerings/:idHizmet/ürün detayı/api/offeringsYeni hizmet/ürün ekle/api/offerings/:idHizmet/ürün güncelle/api/offerings/:idHizmet/ürün silTenant API
(7 endpoint)/api/tenant/configTenant yapılandırması/api/tenant/configYapılandırmayı güncelle/api/tenant/bot-configBot ayarları/api/tenant/bot-configBot ayarlarını güncelle/api/tenant/widget-configWidget ayarları/api/tenant/widget-configWidget ayarlarını güncelle/api/tenant/setup-progressKurulum ilerleme durumuWebhook Events
(7 endpoint)conversation.startedYeni sohbet başladığındaconversation.endedSohbet kapandığındamessage.receivedYeni mesaj geldiğindeappointment.createdRandevu oluşturulduğundaappointment.cancelledRandevu iptal edildiğindecustomer.createdYeni müşteri kaydedildiğindelead.capturedLead bilgisi toplandığındaKod Örnekleri
Hızlı başlangıç için hazır kod örnekleri
// Chatbot'a mesaj gönderme (Streaming)
const response = await fetch('https://api.yapayzekachatbot.com/api/chat/message', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-tenant-id': 'YOUR_TENANT_ID'
},
body: JSON.stringify({
tenant_id: 'YOUR_TENANT_ID',
session_id: 'unique-session-id',
message: 'Merhaba, randevu almak istiyorum'
})
});
// Server-Sent Events (SSE) ile streaming yanıt
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const data = JSON.parse(chunk.replace('data: ', ''));
if (data.chunk) {
console.log('Yanıt:', data.chunk);
}
if (data.done) {
console.log('Tamamlandı');
}
}// Müşteri listesi alma
const response = await fetch('https://api.yapayzekachatbot.com/api/customers', {
method: 'GET',
headers: {
'x-tenant-id': 'YOUR_TENANT_ID',
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const { customers, total } = await response.json();
console.log(`Toplam ${total} müşteri bulundu`);// Randevu oluşturma
const response = await fetch('https://api.yapayzekachatbot.com/api/appointments', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-tenant-id': 'YOUR_TENANT_ID',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
customer_id: 'customer-uuid',
offering_id: 'service-uuid',
scheduled_date: '2025-01-15',
scheduled_time: '14:00',
notes: 'Online görüşme tercih ediliyor'
})
});
const { appointment } = await response.json();
console.log('Randevu oluşturuldu:', appointment.id);// Webhook endpoint örneği (Express.js)
app.post('/webhook/yapayzekachatbot', (req, res) => {
const { event, data, timestamp } = req.body;
switch (event) {
case 'conversation.started':
console.log('Yeni sohbet:', data.session_id);
// CRM'e bildirim gönder
break;
case 'appointment.created':
console.log('Yeni randevu:', data.appointment);
// Takvime ekle, SMS gönder
break;
case 'lead.captured':
console.log('Yeni lead:', data.customer);
// Satış ekibine bildir
break;
}
res.status(200).json({ received: true });
});HTTP Durum Kodları
Rate Limit
Not: Rate limit aşıldığında 429 hatası döner.Retry-Afterheader'ı ile bekleme süresini kontrol edin.
SDK & Kütüphaneler
Popüler programlama dilleri için resmi SDK'lar yakında!
Sıkça Sorulan Sorular
API Key nasıl alınır?
Dashboard > Ayarlar > API bölümünden API Key oluşturabilirsiniz. Her tenant için ayrı API Key gereklidir.
Rate limit nedir?
Ücretsiz planda dakikada 60 istek, Pro planda 300 istek, Enterprise planda sınırsız istek hakkınız vardır.
Webhook'lar nasıl çalışır?
Dashboard'dan webhook URL'nizi tanımlayın. Seçtiğiniz eventler gerçekleştiğinde bu URL'ye POST isteği gönderilir.
Streaming response nedir?
Chat API, Server-Sent Events (SSE) kullanarak yanıtı parça parça gönderir. Bu sayede kullanıcı yanıtı beklemeden görmeye başlar.
API hangi dilleri destekler?
API dil bağımsızdır. HTTP istekleri yapabilen her programlama dili ile kullanabilirsiniz: JavaScript, Python, PHP, Go, Java, C# vb.
Sandbox/test ortamı var mı?
Evet, her hesapta test modu bulunur. Test modunda gerçek veriler etkilenmez ve API istekleri ücretsizdir.
API ile Entegrasyona Başlayın
Ücretsiz hesap oluşturun ve API Key'inizi alın. Dakikalar içinde entegrasyonunuzu tamamlayın.