# Cosmic Notifications - वेब नोटिफिकेशन्स - AstroWay

AstroWay API को request-response से **पार्टिशन स्ट्रीम** में बदलें। इसके बजाय, आप एक्सप्लोर के लिए URL पर साइन अप करते हैं और AstroWay खुद ही घटना के समय वेबहुक को भेजता है (HMAC-SHA256 से साइन किया गया, साथ ही स्व-रिपीट और स्व-डिसेबल "मृत" साइन अप के साथ)।

## जो घटनाएं (लाइव)

सभी घटनाएं **ग्लोबल** हैं (स्थिति के आकाश, जो प्रतिभा डेटा पर निर्भर नहीं है) - साइन अप करने वाले लोगों को एक ही पेलोड प्राप्त होगा।

| घटना | साइन अप | जब होता है |
|---|---|---|
| `retrograde-start` | `POST /v1/webhooks/retrograde-start` | ग्रह (मेर्क्यूरी - प्लूटो) रेट्रोग्रेड हो जाता है |
| `retrograde-end` | `POST /v1/webhooks/retrograde-end` | ग्रह रेट्रोग्रेड से बाहर निकलता है (सीधा हो जाता है) |
| `sign-ingress` | `POST /v1/webhooks/sign-ingress` | ग्रह (सूर्य + मेर्क्यूरी - प्लूटो) एक नए साइन में प्रवेश करता है |
| `void-of-course-start` | `POST /v1/webhooks/void-of-course-start` | व्हॉल्ट ऑफ कोर्स (VOC) की शुरुआत होती है |
| `eclipse-alert` | `POST /v1/webhooks/eclipse-alert` | सूर्य या चंद्रमा के बाद 7 दिनों में एक्सप्लोर के लिए |

<Aside type="note">
प्रतिभा डेटा पर निर्भर घटनाएं - `transit-trigger`, `return-due`, `dasha-change`, `mahadasha-end` - और घटनाएं जो लोकेशन पर निर्भर करती हैं `planetary-hour-tick` की आवश्यकता है प्रतिभा डेटा / कोординेट्स के साथ और अगले फेज में सक्रिय होंगी।
</Aside>

## कैसे साइन अप करना

API कुंजा की आवश्यकता है जो आपके खाते से जुड़ी हुई है।

```bash
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 }
```

साइन अप को नियंत्रित करने के लिए: `GET /v1/webhooks` (सूची), `GET /v1/webhooks/{id}`, `DELETE /v1/webhooks/{id}`, `POST /v1/webhooks/{id}/test` (टेस्ट डिलीवरी पर आपका URL पर)।

## आपके URL पर क्या आता है

`POST` के साथ हेडर्स `X-AstroWay-Signature: sha256=<hmac>`, `X-AstroWay-Event`, `X-AstroWay-Delivery-Id` और शरीर में:

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

## साइन की जांच करना

साइन - यह है `HMAC-SHA256(signing_secret, raw_body)` हेक्स में। हेडर `X-AstroWay-Signature` (बिना प्रीफिक्स `sha256=`) के साथ जांच करें:

```js

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

साइन अप स्व-डिसेबल है जब **5 से अधिक लगातार असफल डिलीवरी** (नहीं-2xx या 8 सेकंड का टाइमआउट) होता है - `GET /v1/webhooks` → पॉज़/रिस्टार्ट स्क्रीन को रीसेट करता है।

## कीमत

साइन अप और साइन अप को नियंत्रित करने के लिए - **टियर 1 (10 क्रेडिट)** प्रति कॉल की आवश्यकता है। **इवेंट डिलीवरी आपके URL पर नहीं है** - अलग से कोई शुल्क नहीं है।
