Cosmic Notifications - Webhooks für Astro Ereignisse
Verwandle die AstroWay API von request-response zu Event-Stream. Anstatt den Himmel in einer Schleife abzufragen, abonnierst du eine URL für einen Ereignistyp – und AstroWay sendet den Webhook zum Zeitpunkt des Eintretens (signiert mit HMAC-SHA256, mit automatischen Wiederholungen und automatischer Deaktivierung „toter“ Abonnements).
Welche Ereignisse (live)
Abschnitt betitelt „Welche Ereignisse (live)“| Ereignis | Registrierung | Wann ausgelöst |
|---|---|---|
retrograde-start | POST /v1/webhooks/retrograde-start | Planet (Merkur–Pluto) wird retrograd |
retrograde-end | POST /v1/webhooks/retrograde-end | Planet verlässt die Retrogradität (wird direkt) |
sign-ingress | POST /v1/webhooks/sign-ingress | Planet (Sonne + Merkur–Pluto) tritt in ein neues Zeichen ein |
void-of-course-start | POST /v1/webhooks/void-of-course-start | Der Zeitraum des Mondes «ohne Kurs» (VOC) beginnt |
eclipse-alert | POST /v1/webhooks/eclipse-alert | 7 Tage vor einer Sonnen- oder Mondfinsternis |
Wie du dich anmeldest
Abschnitt betitelt „Wie du dich anmeldest“Ein API‑Schlüssel, der mit deinem Konto verknüpft ist, wird benötigt.
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 }Abonnements verwalten: GET /v1/webhooks (Liste), GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (Testlieferung an deine URL).
Was an deine URL gesendet wird
Abschnitt betitelt „Was an deine URL gesendet wird“POST mit den Headern X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id und dem Body:
{ "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 }}Signaturprüfung
Abschnitt betitelt „Signaturprüfung“Die Signatur ist HMAC-SHA256(signing_secret, raw_body) in Hex. Vergleiche sie mit dem Header X-AstroWay-Signature (ohne das Präfix 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));}Das Abonnement wird nach 5 aufeinanderfolgenden fehlgeschlagenen Lieferungen (nicht-2xx oder Timeout von 8 s) automatisch deaktiviert – aktiviere es erneut über GET /v1/webhooks → Pause/Wiederaufnahme setzt den Zähler zurück.
Registrierung und Verwaltung von Abonnements – Tier 1 (10 Credits) pro Aufruf, werden selten ausgeführt. Die Zustellung des Ereignisses an deine URL wird nicht berechnet – es gibt keinen separaten Tarif.