Dashboard'a Dön

Belgeler

Asyntai'yi nasıl kullanacağınızı öğrenin

API Referansı

Asyntai REST API ile özel entegrasyonlar oluşturun

API Anahtarı Alın

Ü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
Starter100.000
Standard500.000
Pro2.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.