BELGELER/REST API~ 9 DK OKUMA

REST · v1 · BEARER

Çalışma alanınızı yönetin
kendi kodunuzdan.

REST API; CRM'inizin, e-ticaret arka ucunuzun, otomasyon aracınızın veya geçiş betiğinizin EasyLiveChat çalışma alanınızda mesaj göndermesine, konuşmaları listelemesine ve kişileri okumasına izin verir — bir temsilci parolasıyla değil, tenant kapsamlı bir anahtarla.

§ 00REST API nedir

EasyLiveChat, /api/v1/* adresinde bir REST API sunar; böylece harici kod — kendi arka ucunuz, bir CRM entegrasyonu, bir Zapier veya n8n akışı, bir geçiş betiği — bir insan temsilci giriş yapmadan çalışma alanınızı okuyup yazabilir. Her çağrı, panoda oluşturulmuş ve tenant'a kapsamlı bir API anahtarı ile kimliklenir.

Daha önce Stripe, Slack veya GitHub API'sini çağırdıysanız aynı şekilde çalışır: Authorization başlığında uzun ömürlü gizli bir jeton, JSON istek ve yanıt gövdeleri, öngörülebilir HTTP durum kodları.

Bir API anahtarı asla 2FA veya parola taşımaz — bütün mesele bu. Onu başka bir yazılıma gömdüğünüz, böylece o yazılımın tenant'ınız adına yalnızca verdiğiniz kapsamlarla hareket edebildiği bir kimlik bilgisidir.

§ 01Plan kullanılabilirliği

REST API tüm ücretli planlarda mevcuttur ve 14 günlük deneme boyunca kilidi açıktır. Çağrı başına ücretlendirme yoktur.

Deneme süresi dolduğunda API salt okunura geçer — çalışma alanı yükseltilene kadar yazma işlemleri 402 döner. Okumalar çalışmaya devam eder, böylece geçmiş dışa aktarımlarınız asla bozulmaz.

§ 02Kimlik doğrulama

Şuradan bir anahtar oluşturun: https://app.livechattools.com/settings/api-keys. Entegrasyonun gerçekten ihtiyaç duyduğu en küçük kapsam setini seçin. Aynı sayfadan bir anahtarı istediğiniz zaman iptal edebilirsiniz — anında çalışmayı durdurur, temsilcilerinizin panosunu veya mobil oturumlarını etkilemez.

Anahtarı her istekte iletin — bir Bearer jetonu olarak veya x-api-key başlığı ile:

Authorization: Bearer plk_<your-key>
# — or, equivalently —
x-api-key: plk_<your-key>

Anahtarın çalıştığını herhangi bir şeye bağlamadan önce doğrulayın — /me kapsamlarınızı ve tenant'ınızı döner:

curl https://api.livechattools.com/api/v1/me \
  -H "Authorization: Bearer plk_<your-key>"

Ham anahtar yalnızca oluşturulduğunda bir kez gösterilir. Kaybettiniz mi? İptal edin ve yenisini oluşturun — orijinal değeri kurtarmanın yolu yoktur.

§ 03Kapsamlar

Kapsamlar her istekte kontrol edilir. Yalnızca :read kapsamlı bir anahtar veriyi yanlışlıkla değiştiremez — salt okunur panolar, BI dışa aktarımları veya analitik ardışık düzenleri için kullanışlı.

Kapsamİzin verir
conversations:readKonuşmaları ve mesajlarını listele ve oku.
conversations:writeKonuşmaları kapat, yeniden aç veya yeniden ata.
messages:readBir konuşmanın mesaj geçmişini oku.
messages:writeBir temsilci olarak yeni mesaj gönder.
contacts:readKişileri listele ve ara.

En az ayrıcalık ilkesi — her entegrasyon için ayrı anahtar. Raporlama hattınızda sızdırılmış salt okunur bir anahtar, stack genelinde paylaşılan tek bir "her şeyi yapan" anahtardan çok daha az zarar verir.

§ 04Uç noktalar

Her yol /api/v1 altındadır. Yanıtlar JSON'dur. Zamanlar ISO 8601 UTC'dir.

GET /api/v1/me

Anahtarın kimliğini ve tenant'ı döner. Kapsam gerekmez — bağlantı testi için yararlı.

curl https://api.livechattools.com/api/v1/me \
  -H "Authorization: Bearer plk_<key>"

{
  "apiKeyId": "ck...",
  "scopes": ["conversations:read","messages:write"],
  "tenant": { "id": "...", "name": "Acme", "slug": "acme", "planTier": "GROWTH" }
}

GET /api/v1/conversations

Konuşmaları en yeniden başlayarak listele. Tüm filtreler isteğe bağlıdır.

  • ?status= OPEN · SNOOZED · CLOSED
  • ?channel= WIDGET · WHATSAPP · TELEGRAM · MESSENGER · INSTAGRAM
  • ?limit= 1–200, varsayılan 50
  • ?cursor= önceki sayfadaki son satırın id'si
curl "https://api.livechattools.com/api/v1/conversations?status=OPEN&limit=50" \
  -H "Authorization: Bearer plk_<key>"

{
  "data": [
    { "id":"...", "sourceChannel":"WHATSAPP", "status":"OPEN",
      "lastMessagePreview":"hi there", "lastMessageAt":"..." }
  ],
  "nextCursor": "..."
}

GET /api/v1/conversations/:id

İlgili kişisi eklenmiş tek bir konuşmayı getir.

GET /api/v1/conversations/:id/messages

Bir konuşma için sayfalanmış mesaj geçmişi, en yeni önce.

curl "https://api.livechattools.com/api/v1/conversations/<id>/messages?limit=50" \
  -H "Authorization: Bearer plk_<key>"

POST /api/v1/conversations/:id/messages

Bir konuşmaya giden mesaj gönder. Eşleşen kanala (widget, WhatsApp, Telegram, Messenger, Instagram) tıpkı bir insan temsilcinin yanıtı gibi dağıtılır.

curl -X POST "https://api.livechattools.com/api/v1/conversations/<id>/messages" \
  -H "Authorization: Bearer plk_<key>" \
  -H "Content-Type: application/json" \
  -d '{ "body": "Your order has shipped." }'

# → 201 Created
{ "message": { "id":"...", "senderType":"AGENT", "body":"Your order has shipped.", "createdAt":"..." } }

senderAgentId isteğe bağlıdır — atlanırsa mesaj çalışma alanındaki ilk etkin OWNER veya ADMIN'e atfedilir. Konuşmada belirli bir bot hesabının görünmesini istiyorsanız açık bir id geçin.

PATCH /api/v1/conversations/:id

Bir konuşmanın durumunu (OPEN · SNOOZED · CLOSED) veya atanmış temsilciyi güncelleyin. Atamayı kaldırmak için assignedAgentId: null geçin.

curl -X PATCH "https://api.livechattools.com/api/v1/conversations/<id>" \
  -H "Authorization: Bearer plk_<key>" \
  -H "Content-Type: application/json" \
  -d '{ "status": "CLOSED" }'

GET /api/v1/contacts

Çalışma alanındaki kişileri listele. ?q= ad, e-posta veya telefonla eşleşir.

curl "https://api.livechattools.com/api/v1/contacts?q=acme" \
  -H "Authorization: Bearer plk_<key>"

§ 05Sayfalama

Tüm liste uç noktaları imleç tabanlı sayfalama kullanır. Yanıt biçimi:

{
  "data": [ /* up to ?limit= rows */ ],
  "nextCursor": "<id of last row>"   // or null when there are no more
}

Sonraki sayfayı almak için bir sonraki istekte nextCursor değerini ?cursor= olarak iletin. nextCursor null olduğunda sona ulaştınız demektir.

§ 06Hatalar

Hatalar her zaman bir hata kodu ve (yararlı olduğunda) okunabilir bir mesaj içeren JSON gövdesi döner. HTTP durumu anlamı yansıtır:

DurumKodAnlam
401UNAUTHENTICATEDEksik, hatalı biçimli veya iptal edilmiş anahtar.
402TRIAL_EXPIREDDeneme süresi doldu — yazma engellendi, okuma çalışmaya devam ediyor.
403FORBIDDENAnahtar geçerli ancak bu uç noktanın gerektirdiği kapsam yok.
404NOT_FOUNDKonuşma, kişi veya başka bir kaynak tenant'ınızda yok.
400INVALID_BODYİstek gövdesinde gerekli alanlar eksik veya türler yanlış.
429RATE_LIMITEDÇok fazla istek — geri çekilip birkaç saniye sonra tekrar deneyin.

§ 07Webhooks (yardımcı)

REST API, kendi programınıza göre çekme ve gönderme için harikadır. EasyLiveChat tarafında bir şey olduğunda anlık bildirimler için — yeni müşteri mesajı, kapanan konuşma, katılan temsilci — Ayarlar → Webhook'lar bölümünden giden webhook'ları yapılandırın.

POST /api/v1/conversations/:id/messages aracılığıyla gönderdiğiniz mesajlar da message.created webhook'unu tetikler; bu nedenle hem mesaj gönderen hem de dinleyen entegrasyonunuz varsa, kendi yazdıklarınızı webhook kanalı üzerinden geri dönerken görürsünüz.

§ 08Hız sınırları

Her tenant, yol başına dakikada 240 isteğe kadar haktır; bu hak o tenant'taki tüm anahtarlar arasında paylaşılır. Limite ulaşılması Retry-After başlığıyla birlikte 429 döner.

Entegrasyonunuz meşru olarak daha yüksek bir tavana ihtiyaç duyuyorsa (toplu içe aktarma, toplu mesaj gönderme), destek ekibine e-posta atın — tenant'ınız için yükseltiriz.