Skip to Content
Başlarken

Apsilo Genel API

Tek bir REST API ile WhatsApp, Instagram, Messenger, X, TikTok ve e-posta üzerinden mesaj gönderin; kişileri, şablonları, kampanyaları ve sosyal medya gönderilerini yönetin; olayları webhook ile dinleyin.

Temel adres ve sürüm

Tüm uç noktalar https://app.apsilo.com/api/public/v1 altındadır. Sürüm yoldadır; kırıcı değişiklikler yeni sürümle yayınlanır, mevcut sürüm geriye dönük uyumlu kalır: yeni alan eklenebilir, var olan alan kaldırılmaz.

# Taban adres https://app.apsilo.com/api/public/v1 # OpenAPI 3.1 belgesi (Postman/Insomnia'ya aktarın) https://app.apsilo.com/api/public/v1/openapi.json

Yanıtlar her zaman zarflıdır — tekil kaynak { "data": … }, liste { "data": [...], "nextCursor": … }. Ayrıntı için İstek kuralları.

İlk istek

Anahtarınızı Apsilo panelinde Ayarlar → API ve Webhook’lar ekranından oluşturun; anahtar yalnızca bir kez gösterilir.

curl -X POST https://app.apsilo.com/api/public/v1/messages \ -H "Authorization: Bearer apsk_live_…" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: siparis-4821-kargo" \ -d '{ "channel": "whatsapp", "to": { "phone": "+905551112233" }, "type": "template", "template": { "name": "siparis_kargoda", "language": "tr", "params": { "body.0": "Ayşe", "body.1": "TR123456789" } } }'

Alıcı bir nesnedir: phone, email, contactId, igsid, psid, xUserId veya tiktokUserId alanlarından en az biri yeterlidir. Telefon veya e-posta ile verilen alıcı kayıtlı değilse otomatik oluşturulur (createContact: false ile kapatılır); Instagram (igsid), Messenger (psid), X ve TikTok alıcıları önce işletmeye yazmış olmalıdır.

Uç nokta 202 döner: mesaj kuyruğa alınır. Teslim durumu GET /messages/{id} ile veya webhook olaylarıyla izlenir.

Serbest metin yalnızca mesajlaşma penceresi açıkken gönderilebilir. Pencere kapalıysa WhatsApp’ta onaylı şablon kullanın; API bu durumda MESSAGING_WINDOW_CLOSED döner.

Kanal kuralları

Mesaj gönderimi tek uç noktadan yapılır, fakat her kanalın kendi kuralları vardır. API bu kuralları sizin yerinize uygular ve ihlalde açık hata döner.

KanalPencerePencere dışındaNotlar
WhatsAppSon gelen mesajdan 24 saatYalnızca onaylı şablonŞablonlar panelden oluşturulur, Meta onayından geçer
InstagramSon gelen mesajdan 24 saatGönderilemezTemsilci yanıtı insan etiketiyle 7 güne kadar uzayabilir
MessengerSon gelen mesajdan 24 saatGönderilemezAlıcı to.psid; Instagram ile aynı pencere ve 7 günlük temsilci yanıtı kuralı
X (DM)Pencere yok—Yalnızca daha önce yazışılmış kişilere; günlük DM sınırı vardır
TikTokSon gelen mesajdan 48 saatGönderilemezKonuşmayı her zaman kullanıcı başlatır
E-postaPencere yok—Konu zinciri otomatik eşlenir; kampanyalarda abonelikten çıkma bağlantısı eklenir

Metin sınırı kanala göre değişir: WhatsApp 4096, Instagram 1000, Messenger 2000, X 10.000, TikTok 6000 karakter. Şablon gönderimi (type: "template") WhatsApp, Instagram, Messenger, X ve e-postada kullanılır; Messenger şablonları Instagram’daki gibi metin, medya ve kartlı türlerdedir ve onay gerektirmez, fakat pencere kuralını aşmaz.

Şikayetvar

Şikayetvar şikayetleri sohbet listelerinde görünür: GET /conversations yanıtında channel: "sikayetvar", kind: "complaint" (şikayet başına bir sohbet); aynı değerlerle filtreleyebilirsiniz. Genel API ile şikayete yanıt verilemez — POST /messages bu kanalı kabul etmez; yanıtlar Apsilo panelinden yazılır.

Apsilo AI analizi

Apsilo AI gelen mesajları, yorumları ve şikayetleri otomatik değerlendirir. Sonuç, mesaj nesnesinin analysis alanında döner (GET /messages/{id} ve mesaj listeleri); sohbet nesnesindeki analysis ise sohbetin son analiz edilen gelen mesajının özetidir.

{ "id": "3c9a7f42-6c7d-4a5e-9d11-0c2f4b8a77e1", "direction": "in", "analysis": { "kind": "inbound", "sentiment": "negative", "sentimentConfidence": 0.94, "intent": "complaint", "intentConfidence": 0.88, "urgency": 4, "flags": ["churn_risk"], "categories": { "kargo_gecikmesi": "yes" }, "autoHidden": false, "analyzedAt": "2026-09-17T09:15:02.000Z" } }
AlanDeğerler
sentimentpositive, neutral, negative — emin olunamadıysa null
intentcomplaint, request, question, suggestion, thanks, purchase, cancellation, other — emin olunamadıysa null
urgency1 (acil değil) – 5 (çok acil)
flagsprofanity, spam, churn_risk, sales_opportunity
categoriesPanelde tanımladığınız kategoriler: anahtar → yes / no ya da seçenek anahtarı

Temsilci yanıtlarında kind: "reply" olur ve yalnızca quality (kibarlık 1–5, yanıtın müşterinin mesajını karşılama olasılığı 0–1) döner.

Analiz, mesaj kaydedildikten kısa süre sonra arka planda üretilir. Hazır olana kadar — ve analiz edilmeyen mesaj türlerinde ya da Apsilo AI firmanızda kapalıyken — analysis alanı null döner. Yoklamak yerine message.analyzed olayına abone olun.

Ücretlendirme

API gönderimleri firmanın cüzdanından düşer: şablon mesajları fiyat tablosundaki mesaj türü fiyatıyla, 24 saat penceresi içindeki serbest metin/medya mesajları ücretsizdir. Apsilo AI analizi için ücret alınmaz. Mesaj türü yanıttaki priceType alanında döner; Messenger şablonlarında msgr_text, msgr_media veya msgr_generic olur. Sağlayıcı isteği reddederse veya mesaj sonradan failed olursa tutar otomatik iade edilir; bakiye yetersizse istek INSUFFICIENT_BALANCE ile reddedilir.

Lisans ve yetki

Anahtarın yapabildikleri kapsamlar ∩ firmanın lisansı kesişimidir: lisansta kapalı bir kanal veya özellik, kapsam verilmiş olsa bile kullanılamaz ve FEATURE_NOT_LICENSED döner. Genel API için lisansta feature.api açık olmalıdır.

Panelde anahtar ekranı: app.apsilo.com/settings/integrations