Cosmic Notifications - powiadomienia kosmiczne na astrofizykę
Przekształć AstroWay API z request-response na strumień zdarzeń. Zamiast cyklicznie odpytywać niebo, subskrybujesz URL na typ zdarzenia – i AstroWay sam wysyła webhook w momencie jego wystąpienia (podpisany HMAC-SHA256, z auto‑powtórzeniami i auto‑wyłączaniem „martwych” subskrypcji).
Jakie zdarzenia (live)
Dział zatytułowany „Jakie zdarzenia (live)”Wszystkie te zdarzenia są globalne (stan nieba, nie zależy od danych natalnych) – subskrybenci otrzymują taki sam payload.
| Zdarzenie | Rejestracja | Kiedy wyzwala się |
|---|---|---|
retrograde-start | POST /v1/webhooks/retrograde-start | planeta (Merkury–Pluton) staje się retrogradową |
retrograde-end | POST /v1/webhooks/retrograde-end | planeta wychodzi z retro (staje się bezpośrednią) |
sign-ingress | POST /v1/webhooks/sign-ingress | planeta (Słońce + Merkury–Pluton) wchodzi w nowy znak |
void-of-course-start | POST /v1/webhooks/void-of-course-start | zaczyna się okres Księżyca «bez kursu» (VOC) |
eclipse-alert | POST /v1/webhooks/eclipse-alert | na 7 dni przed zaćmieniem słonecznym lub księżycowym |
Jak się zapisać
Dział zatytułowany „Jak się zapisać”Potrzebny jest klucz API powiązany z twoim kontem.
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 }Zarządzaj subskrypcjami: GET /v1/webhooks (lista), GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (testowa dostawa na twój URL).
Co przychodzi na twój URL
Dział zatytułowany „Co przychodzi na twój URL”POST z nagłówkami X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id i ciałem:
{ "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 }}Weryfikacja podpisu
Dział zatytułowany „Weryfikacja podpisu”Podpis to HMAC-SHA256(signing_secret, raw_body) w formacie hex. Porównaj z nagłówkiem X-AstroWay-Signature (bez prefiksu 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));}Subskrypcja jest auto‑wyłączana po 5 kolejnych nieudanych dostawach (nie‑2xx lub timeout 8 s) – włącz ją ponownie przez GET /v1/webhooks → pauza/przywrócenie resetuje licznik.
Rejestracja i zarządzanie subskrypcjami – Tier 1 (10 kredytów) za wywołanie, wykonywane rzadko. Dostawa zdarzenia na twój URL nie jest taryfikowana – nie ma osobnej opłaty.