API & Webhooks
Callert'e dış dünyadan veri göndermek için tek bir Ingest Endpoint kullanılır.
Ingest Endpoint
:integrationKey değerini dashboard'daki Integration detay sayfasından alabilirsiniz.
X-Callert-Token header ile gönderilmeli; URL içinde asla taşınmaz. Alternatif olarak X-Timestamp ve X-Signature (HMAC-SHA256) kullanılabilir.Payload Formatı
Callert, esnek bir JSON yapısını kabul eder. En azından bir başlık (title) veya mesaj alanı olmalıdır. Callert otomatik olarak birçok formatı (Prometheus Alertmanager, Uptime Kuma) tanır. "Generic Webhook" için önerilen minimal format şöyledir:
| Alan | Tip | Zorunlu? | Açıklama |
|---|---|---|---|
| title | string | Evet* | Alarmın başlığı. |
| message | string | Hayır | Kısa açıklama/metin. Alternatif olarak description kullanılabilir. |
| status | enum | Evet* | DOWN, UP, veya RESOLVED. UP/RESOLVED açık incident'i kapatır. |
| severity | enum | Hayır | info, warning, critical. Default: warning. |
| dedupe_key | string | Hayır | Tekrarlayan alarmları gruplamak için anahtar. Aynı anahtar yeni incident açmaz, event ekler. |
| tags | object | Hayır | Rule engine için key/value etiketler. |
Status Page API
Bir projenin public status sayfası için özet endpoint.
Notification Flow (Sekans Diyagramı)
Aşağıdaki metinsel sekans diyagramı, bir alarmın Callert'e gelişinden dashboard'daki sinyallere kadar olan temel teknik akışı özetler. Bu akış; API, kural motoru, kuyruklar, provider entegrasyonları ve tenant seviyesindeki sinyalleri tek bir yerde görmenizi sağlar.
Rate Limits
Global API istekleri kullanıcı başına 5 dakikada en fazla 300 istek ile sınırlandırılır. Ingest endpoint'leri entegrasyon başına dakikada 60 istek ve aynı entegrasyon + IP çifti için dakikada 10 istek sınırına sahiptir. Public status page endpoint'i (GET /status/p/:publicKey) aynı IP için dakikada en fazla 30 istek ve dakikada en fazla 5 farklı publicKey denemesine izin verir. Limit aşıldığında istek 429 Too Many Requests veya {"status":"rate_limited"} olarak yanıtlanabilir.