Skip to main content
İstatistik endpoint’leri, kliniğin hasta, lead, randevu, satış, tedavi ve sohbet verilerinden hesaplanmış toplamları salt okunur olarak verir. Panelin Ana Sayfa ekranı ve mobil uygulamanın ana ekranı aynı verileri kullanır (bkz. Panel metrikleri). Tüm istekler GET ile yapılır, gövde almaz ve şunları ister:
  • Authorization: Bearer <access_token> başlığı ve statistics:read scope’u. Scope eksikse yanıt 403 FORBIDDEN olur.
  • X-Tenant: <tenant_id> başlığı (Klinikler ve X-Tenant).

Endpoint özeti

Taban adres: https://app.flextell.ai/api/v1. Hepsi statistics:read scope’unu ister. Her toplam kliniğin tamamını kapsadığı için ViewAll... izinleri aranır. Yalnızca kendi kayıtlarını gören View:Customer, View:Appointment ve View:Sale izinleri bu endpoint’lerde yetmez. treatments bir tedavi izni değil, ViewAllAppointments:Appointment ister. summary ve grup endpoint’leri {"success": true, "data": {...}, "meta": {"timezone": "..."}} zarfıyla döner. İki liste endpoint’i standart sayfalı liste yapısını kullanır (Sayfalama).

Dönem parametreleri

summary ve liste endpoint’leri dönem almaz. summary her zaman bugünü ve son 30 günü kullanır. Altı grup endpoint’i (customers, leads, appointments, revenue, treatments, chat) şu parametreleri alır: custom dönemin uzunluğu en çok 731 gün olabilir. Kural ihlali 422 VALIDATION_FAILED döner; 731 gün hatası to alanında İngilizce The custom period may not span more than 731 days. metniyle gelir. period custom değilse from ve to yok sayılır, ama biçimleri yine doğrulanır. Günler klinik saat dilimine göre hesaplanır (varsayılan Europe/Istanbul, Ayarlar → Genel Ayarlar içindeki Varsayılan Saat Dilimi). Yanıttaki period.timezone kullanılan dilimi gösterir. Her dönemin bir de karşılaştırma dönemi vardır. Önceki değer ve change_percent bu dönemden hesaplanır.
Süren bir dönem, önceki dönemin tamamıyla karşılaştırılır. Ayın 10’unda this_month istediğinizde toplamlar (örneğin yeni hasta sayısı) doğal olarak negatif change_percent gösterir.

Özet bölümleri ve izinler

GET /statistics/summary hiçbir zaman izin nedeniyle 403 dönmez. Çağıran kullanıcının izni olan bölümleri metrics içine koyar; izni olmayan bölüm yanıtta yer almaz (sıfırlanmış değil, eksik). Hiçbir izin yoksa 200 döner ve metrics boş dizi [] olur. currency her durumda gelir.

Gruplar

Grup endpoint’leri data.period (çözümlenmiş dönem), data.metrics ve data.computed_at döner. Tek değerli göstergeler {current, previous, change_percent} biçimindedir. Para tutarları kliniğin ana para biriminde verilir; revenue yanıtı data.currency alanını da taşır.

Hastalar, lead’ler ve randevular

Aktif, pasif, potansiyel ve active_leads değerleri “şu an” durumunu anlatır. period ile değişmez, previous ve change_percent alanları null olur. Günlük seriler dönemin her gününü içerir, kayıt olmayan günler 0 ile gelir.

Ciro, tedavi ve sohbet

top_* listelerinde count da {current, previous, change_percent} biçimindedir. Sıralama count.current azalan, eşitlikte kimliğe göre artandır.

Liste endpoint’leri

Bu iki endpoint dönem almaz ve sayfalı kayıt listesi döner. low-stock-products satırları: product_id, product_name, stock_balance, critical_stock_level, base_unit_code_id, base_unit_name. Liste stoğu en az olandan başlar. Kritik Stok Seviyesi tanımlanmamış ürünler hiç listelenmez. birthdays satırları: customer_id, first_name, last_name, date_of_birth, phone_number, email. Liste ada göre sıralıdır. Doğum tarihi olmayan hastalar listeye girmez.

Gösterge tanımları

Tutarlar, her satışın veya hareketin kendi exchange_rate değeriyle kliniğin ana para birimine çevrilir (Ayarlar → Genel Ayarlar → Para Birimi, varsayılan TRY). Kur boşsa 1 alınır. Tutarlar iki, yüzdeler tek ondalıkla yuvarlanır.
Ciro tanımı bu endpoint’lere özgüdür. Başka ekran ve raporlardaki ciro rakamları farklı bir tanıma dayanabilir; iki sayıyı birebir karşılaştırmayın.

Önbellek ve sınırlar

Önbellek

Grup yanıtları klinik bazında önbelleğe alınır. data.computed_at, yanıtın hesaplandığı andır; isteği yaptığınız an değildir ve birkaç dakika eski olabilir. İlgili hasta, lead, randevu, tedavi, satış, tahsilat veya sohbet kaydı değiştiğinde önbellek hemen geçersiz olur. Yalnızca zamanın akmasından doğan değişiklikler (örneğin bir randevunun geçmişe düşmesi) süre dolunca görünür. summary 5 dakika, liste endpoint’leri ise önbelleğe alınmaz. Sık yenileme gerekmiyorsa computed_at değerine bakıp gereksiz istekten kaçının.

İstek sınırı

İstatistik endpoint’lerinde sınır, varsayılan olarak klinik ve kullanıcı başına dakikada 60 istektir. Genel API sınırı ayrıca geçerlidir (Oran sınırları). Sınır aşılınca 429 TOO_MANY_REQUESTS döner; mesaj İngilizcedir (Too many requests.). Retry-After, X-RateLimit-Limit ve X-RateLimit-Remaining başlıklarını okuyun.

Hatalar

402 ve 428 kilitleri için Erişim kilitleri, diğer kodlar için Hata kodları sayfasına bakın. İzinlerin görünürlüğü nasıl etkilediği İzinler ve görünürlük sayfasında anlatılır.