Cosmic Notifications: astrolojik olaylar için webhook'lar
AstroWay API’yi request-response modelinden bir olay akışına dönüştürün. Gökyüzünü bir döngü içinde sorgulamak yerine bir URL’yi bir olay türüne abone edersiniz ve AstroWay, olay gerçekleştiği anda webhook’u kendisi gönderir (HMAC-SHA256 ile imzalı, otomatik yeniden denemeli ve “ölü” abonelikleri otomatik devre dışı bırakan).
Hangi olaylar (canlı)
Section titled “Hangi olaylar (canlı)”Bu olayların tümü küreseldir (gökyüzünün durumu, doğum verilerine bağlı değildir): tüm aboneler aynı payload’ı alır.
| Olay | Kayıt | Ne zaman tetiklenir |
|---|---|---|
retrograde-start | POST /v1/webhooks/retrograde-start | bir gezegen (Merkür’den Plüton’a) retrograd olur |
retrograde-end | POST /v1/webhooks/retrograde-end | bir gezegen retrograddan çıkar (direkt olur) |
sign-ingress | POST /v1/webhooks/sign-ingress | bir gezegen (Güneş ve Merkür’den Plüton’a) yeni bir burca girer |
void-of-course-start | POST /v1/webhooks/void-of-course-start | Ay’ın boşta seyrettiği (VOC) dönem başlar |
eclipse-alert | POST /v1/webhooks/eclipse-alert | bir Güneş veya Ay tutulmasından 7 gün önce |
Nasıl abone olunur
Section titled “Nasıl abone olunur”Hesabınıza bağlı bir API anahtarı gerekir.
curl -X POST https://api.astroway.info/v1/webhooks/retrograde-start \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-app.com/hooks/astroway" }'# { "id": 44, "event": "retrograde-start",# "url": "https://your-app.com/hooks/astroway",# "signing_secret": "a1b2…", ← store it; it verifies the signature# "active": true }Abonelik yönetimi: GET /v1/webhooks (liste), GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (URL’nize test teslimatı).
URL’nize ne gelir
Section titled “URL’nize ne gelir”X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id başlıklarını ve şu gövdeyi içeren bir POST:
{ "event": "retrograde-start", "delivered_at": "2026-07-15T12:00:00.000Z", "subscription_id": 44, "data": { "planet": "Mercury", "station": "retrograde", "exactAt": "2026-07-15T11:48:09.967Z", "sign": "Leo", "longitude": 142.31 }}İmza doğrulama
Section titled “İmza doğrulama”İmza, hex biçiminde HMAC-SHA256(signing_secret, raw_body) değeridir. X-AstroWay-Signature başlığıyla karşılaştırın (sha256= öneki olmadan):
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(rawBody, header, secret) { const expected = createHmac('sha256', secret).update(rawBody).digest('hex'); const got = header.replace(/^sha256=/, ''); return got.length === expected.length && timingSafeEqual(Buffer.from(got), Buffer.from(expected));}Abonelik art arda 5 başarısız teslimattan sonra (2xx olmayan yanıt veya 8 sn zaman aşımı) otomatik olarak devre dışı kalır. GET /v1/webhooks üzerinden yeniden etkinleştirin → duraklatma/sürdürme sayacı sıfırlar.
Kayıt ve abonelik yönetimi çağrı başına Tier 1 (10 kredi) tutar ve seyrek yapılır. Olayın URL’nize teslimi ücretlendirilmez: ayrı bir tarifesi yoktur.