Sari la conținut
AstroWay/api v2.172.2 · ro
toate sistemele sunt în stare normală

Cosmic Notifications - webhook-uri pentru evenimente astrologice

Converteți API-ul AstroWay din request-response în flux de evenimente. În loc de a întreba cererea cererii, tu te înregistrezi la un tip de eveniment și AstroWay trimite automat webhook-ul la momentul evenimentului (signat cu HMAC-SHA256, cu reînnoire și desactivare a “subscrițiilor moarte”).

Toate aceste evenimente sunt globale (starea cererii nu depinde de datele de locație) - abonații primesc același payload.

EvenimentÎnregistrareCând se declanșează
retrograde-startPOST /v1/webhooks/retrograde-startPlaneta (Mercuriu-Ploțon) devine retrogradă
retrograde-endPOST /v1/webhooks/retrograde-endPlaneta iese din retrogradă (devine directă)
sign-ingressPOST /v1/webhooks/sign-ingressPlaneta (Soare + Mercuriu-Ploțon) intră în noua semn
void-of-course-startPOST /v1/webhooks/void-of-course-startSe declanșează perioada Lunii “fără curs” (VOC)
eclipse-alertPOST /v1/webhooks/eclipse-alertSe declanșează înainte cu 7 zile de soare sau lună

Trebuie să ai o cheie API legată de contul tău.

Terminal window
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…", ← збережіть, ним перевіряється підпис
# "active": true }

Gestionarea abonărilor: GET /v1/webhooks (listă), GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (testarea livrării pe adresa ta).

POST cu header-urile X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id și corpul:

{
"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
}
}

Semnătura este HMAC-SHA256(signing_secret, raw_body) în hex. Verifică cu header-ul X-AstroWay-Signature (fără prefixul sha256=):

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));
}

Abonarea se desactivează după 5 livrări consecutive eșuate (nu-2xx sau timp de 8 secunde) - activă-ți-o din nou prin GET /v1/webhooks → pauză/activare resetă contorul.

Înregistrarea și gestionarea abonărilor - Tier 1 (10 credite) la fiecare apel. Livrarea evenimentului pe adresa ta nu este taxată - nu există un tarif separat.

Util?