API Referansı
Asyntai REST API ile özel entegrasyonlar oluşturun
Ücretli Plan Gerekli: API erişimi Starter, Standard ve Pro planlarda kullanılabilir. Fiyatlandırmayı görün
Genel Bakış
Asyntai API, yapay zeka destekli müşteri desteğini herhangi bir uygulamaya entegre etmenize olanak tanır. Mesaj gönderin ve web sitesi içeriğiniz ile bilgi tabanınız üzerine eğitilmiş akıllı yanıtlar alın.
Kimlik Doğrulama
Tüm API istekleri, API anahtarınızı kullanarak kimlik doğrulama gerektirir. API anahtarınızı API Ayarları sayfasından alabilirsiniz.
API anahtarınızı şu yöntemlerden birini kullanarak isteklere dahil edin:
- Yetkilendirme başlığı (önerilen):
Authorization: Bearer YOUR_API_KEY - X-API-Key başlığı:
X-API-Key: YOUR_API_KEY
API anahtarınızı gizli tutun. Anahtarınıza sahip olan herkes API aracılığıyla hesabınıza erişebilir. İstemci tarafı kodunda asla ifşa etmeyin.
Temel URL
https://asyntai.com/api/v1/
Endpointler
POST /chat/
Bir mesaj gönderin ve yapay zeka tarafından oluşturulan bir yanıt alın.
İstek Gövdesi
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
message |
string | Evet | Yapay zekaya gönderilecek kullanıcı mesajı |
session_id |
string | Hayır | Görüşme için benzersiz tanımlayıcı. Görüşme geçmişini korumak için aynı session_id'yi kullanın. |
website_id |
integer | Hayır | Belirli web sitesi ID'si. Sağlanmazsa, birincil web siteniz kullanılır. |
Yanıt
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
Örnek (cURL)
curl -X POST https://asyntai.com/api/v1/chat/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "What are your business hours?", "session_id": "user_123"}'
Örnek (Python)
import requests
response = requests.post(
"https://asyntai.com/api/v1/chat/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"message": "What are your business hours?",
"session_id": "user_123"
}
)
data = response.json()
print(data["response"])
Örnek (JavaScript)
const response = await fetch("https://asyntai.com/api/v1/chat/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "What are your business hours?",
session_id: "user_123"
})
});
const data = await response.json();
console.log(data.response);
GET /websites/
Hesabınızla ilişkili tüm web sitelerini listeleyin.
Yanıt
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
Örnek (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET /conversations/
Belirli bir oturum için görüşme geçmişini getirin.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
session_id |
string | Evet | Geçmişi getirilecek oturum kimliği |
limit |
integer | Hayır | Döndürülecek maksimum mesaj sayısı (varsayılan: 50, maksimum: 100) |
Yanıt
{
"success": true,
"session_id": "user_123",
"messages": [
{
"role": "user",
"content": "What are your business hours?",
"timestamp": "2024-01-15T10:30:00Z"
},
{
"role": "assistant",
"content": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"timestamp": "2024-01-15T10:30:01Z"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
Son sohbet oturumlarınızı listeleyin. Oturum kimliklerini keşfetmek için bunu kullanın, ardından tam mesaj geçmişini almak için /conversations/ endpointine iletin.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek son oturum sayısı (varsayılan: 20, maksimum: 100) |
website_id |
string | Hayır | Oturumları belirli bir web sitesi kimliğine göre filtreleyin |
source |
string | Hayır | Oturum kaynağına göre filtreleyin: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier |
Yanıt
{
"success": true,
"sessions": [
{
"session_id": "session_abc123def",
"source": "widget",
"message_count": 5,
"first_message": "What are your business hours?",
"first_message_at": "2024-01-15T10:30:00Z",
"last_message_at": "2024-01-15T10:35:00Z",
"website_domain": "example.com"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
Toplanan müşteri adaylarını alın — sohbet görüşmeleri sırasında ziyaretçiler tarafından gönderilen e-posta adresleri ve telefon numaraları.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek müşteri adayı sayısı (varsayılan: 50, maks: 100) |
website_id |
string | Hayır | Müşteri adaylarını belirli bir web sitesi kimliğine göre filtreleyin |
Yanıt
{
"success": true,
"leads": [
{
"session_id": "session_abc123def",
"email": "visitor@example.com",
"phone": "+1234567890",
"page_url": "https://example.com/pricing",
"started_at": "2024-01-15T10:30:00Z"
}
]
}
| Alan | Tür | Açıklama |
|---|---|---|
session_id |
string | Sohbet oturumu kimliği. Tam sohbet geçmişini görmek için bunu /conversations/ adresine iletin. |
email |
dize veya null | Ziyaretçi tarafından sağlanan e-posta adresi, toplanmadıysa null |
phone |
dize veya null | Ziyaretçi tarafından sağlanan telefon numarası, toplanmadıysa null |
page_url |
dize veya null | Ziyaretçinin sohbet ettiği sayfa URL'si |
started_at |
string | Sohbet oturumunun başladığı zamanın ISO 8601 zaman damgası |
Örnek (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Örnek (Python)
import requests
response = requests.get(
"https://asyntai.com/api/v1/leads/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"limit": 20}
)
leads = response.json()["leads"]
for lead in leads:
print(f"{lead['email'] or ''} | {lead['phone'] or ''}")
GET /account/
Hesap bilgilerinizi ve kullanım istatistiklerinizi alın.
Yanıt
{
"success": true,
"account": {
"email": "you@example.com",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
Örnek (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
Birden fazla web sitesi mi? Bilgi tabanı endpointleri varsayılan olarak birincil web sitenizi kullanır. Birden fazla web siteniz varsa website_id belirli birini hedeflemek için. Web sitesi kimliklerinizi şunu kullanarak bulabilirsiniz: GET /websites/.
Günlük yükleme limitleri: Bilgi tabanı yüklemeleri (metin, URL, elektronik tablo) planınıza bağlı günlük karakter limitine tabidir. Bu, gün başına tüm bilgi tabanı endpointlerinde yüklenen toplam içerik için geçerlidir.
| Plan | Karakter/gün |
|---|---|
| Starter | 100.000 |
| Standard | 500.000 |
| Pro | 2.000.000 |
GET /knowledge/
Bilgi tabanı kayıtlarınızı listeleyin. Bunlar, AI chatbot'unuzun soruları yanıtlamak için kullandığı içerik kaynaklarıdır.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek kayıt sayısı (varsayılan: 50, maksimum: 100) |
website_id |
string | Hayır | Web sitesi kimliğine göre filtreleyin (varsayılan olarak birincil web sitenizdir) |
Yanıt
{
"success": true,
"entries": [
{
"id": "abc-123-def",
"type": "text",
"title": "Business Hours",
"description": "Manual text content (150 words)",
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": "ghi-456-jkl",
"type": "url",
"title": "About Us - Example",
"description": "Content from https://example.com/about",
"created_at": "2024-01-14T09:00:00Z"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
Bilgi tabanınıza özel metin içeriği ekleyin. AI, ziyaretçi sorularını yanıtlamak için bunu kullanacaktır.
İstek Gövdesi
{
"title": "Return Policy",
"content": "We offer a 30-day return policy on all items. Items must be unused and in original packaging. Refunds are processed within 5-7 business days.",
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
title |
string | Evet | Bu bilgi kaydı için bir başlık |
content |
string | Evet | Metin içeriği (minimum 10 karakter) |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/text/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Return Policy", "content": "We offer a 30-day return policy..."}'
POST /knowledge/url/
Bilgi tabanınıza bir web sayfası ekleyin. İçerik otomatik olarak getirilecek ve çıkarılacaktır.
İstek Gövdesi
{
"url": "https://example.com/faq",
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
url |
string | Evet | İçeriğin getirileceği URL |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/url/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/faq"}'
POST /knowledge/spreadsheet/
Bilgi tabanınıza bir CSV veya Excel (.xlsx) elektronik tablosu yükleyin. Her satır ayrı bir bilgi kaydı olur; ürün katalogları, SSS listeleri, fiyat tabloları ve dizinler için idealdir.
İstek
multipart/form-data (dosya yükleme) olarak gönderin, JSON değil.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
file |
dosya | Evet | Bir .csv veya .xlsx dosyası. İlk satır sütun başlıkları olmalıdır. Yükleme başına maksimum satır: Starter 500, Standard 2.000, Pro 10.000. Fazla satırlar kesilir. |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@products.csv"
DELETE /knowledge/{id}/
Bir bilgi tabanı kaydını silin. id değeri GET /knowledge/ yanıtından bulunabilir.
Yanıt
{
"success": true,
"message": "Knowledge base entry deleted"
}
Örnek (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
İpucu: Webhook'ları ayrıca şuradan da yönetebilirsiniz: API Ayarları herhangi bir kod yazmadan sayfa.
GET /webhooks/
Kayıtlı webhook'larınızı listeleyin.
Yanıt
{
"success": true,
"webhooks": [
{
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"is_active": true,
"created_at": "2024-01-15T10:30:00Z"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
Gerçek zamanlı olay bildirimleri almak için yeni bir webhook kaydedin.
Mevcut Olaylar
| Olay | Açıklama |
|---|---|
message.received |
Bir ziyaretçi mesaj gönderdi ve yanıt aldı |
conversation.started |
Yeni bir sohbet oturumu başlatıldı |
escalation.requested |
AI, bir insan temsilciye yönlendirme tetikledi |
takeover.started |
Bir insan temsilci sohbet oturumunu devraldı |
İstek Gövdesi
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
url |
string | Evet | Webhook POST isteklerini alacak HTTPS URL'si |
events |
dizi | Evet | Abone olunacak olayların listesi (yukarıdaki tabloya bakın) |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"webhook": {
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"secret": "whsec_abc123...",
"created_at": "2024-01-15T10:30:00Z"
}
}
Webhook'ları doğrulama: Her webhook bir secret (yalnızca oluşturulurken gösterilir). URL'nize yapılan her POST şunu içerir: X-Webhook-Signature başlığı — gizli anahtarınızla imzalanmış istek gövdesinin HMAC-SHA256 değeri.
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/webhook", "events": ["message.received"]}'
DELETE /webhooks/{id}/
Bir webhook'u silin. id değeri GET /webhooks/ yanıtından bulunabilir.
Yanıt
{
"success": true,
"message": "Webhook deleted"
}
Örnek (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Hata Yanıtları
Tüm hata yanıtları şu formatı izler:
{
"success": false,
"error": "Error message describing what went wrong"
}
| Durum Kodu | Açıklama |
|---|---|
400 |
Hatalı İstek - Geçersiz parametreler veya eksik zorunlu alanlar |
401 |
Yetkisiz - Geçersiz veya eksik API anahtarı |
429 |
Çok Fazla İstek - Planınız için mesaj limitine ulaşıldı |
503 |
Hizmet Kullanılamıyor - AI hizmeti geçici olarak kullanılamıyor |
Hız Sınırları
API kullanımı abonelik planınızla sınırlıdır:
- Free: 100 mesaj/ay
- Starter (39$/ay): 2.500 mesaj/ay
- Standard (139$/ay): 15.000 mesaj/ay
- Pro (449$/ay): 50.000 mesaj/ay
Yardıma mı İhtiyacınız Var?
Herhangi bir sorunuz varsa veya sorunla karşılaşırsanız, hello@asyntai.com adresinden bizimle iletişime geçin.