Retrogrades · Sign Changes · Moon Phases · Push Alerts

Transit Alert App API
push notifications from the sky

Poll planetary transits and retrogrades daily. When a planet changes sign or goes retrograde, send a personalised Claude AI forecast to each user based on their natal chart.

$3–10/user/month freemium with premium alerts. High retention — users return every time Mercury goes retrograde. VedIntel™ Precision Engine accuracy means your dates are right.

Start free — 500 calls →API Docs

6 types of planetary alerts

Each alert type has a different frequency — giving users something meaningful throughout the month.

Planet changes sign
Jupiter entered Gemini — what it means for your 11th house
Every few weeks
Retrograde begins
Mercury goes retrograde — your communication and travel alert
3–5x per year
Retrograde ends (direct)
Mercury turns direct — clear to sign contracts again
3–5x per year
Full/New Moon
Full Moon in Scorpio activating your 4th house
Twice monthly
Nakshatra change
Today's Ardra nakshatra — intensity and breakthroughs
Every ~27 hours
Eclipse season
Solar eclipse in your 7th house — major relationship shift
2x per year

Architecture — detect once, personalise per user

Event detection is global (one call). Personalised AI forecasts are per-user (triggered only on events).

1
Poll transits and retrogrades daily
Schedule a daily job at midnight. Call /panchang/transit and /panchang/retrogrades to get all current planetary positions and retrograde statuses. Compare with yesterday's snapshot to detect changes.
2
Detect planetary events
When a planet changes sign or retrograde status, that's an alert trigger. Store a snapshot of each planet's sign in your DB. When today's sign !== yesterday's sign → event detected. When retrograde flips → retrograde alert.
3
Get moon phase and nakshatra
Call /panchang/moon-phase for the current lunar phase and /predictions/daily-moon for daily moon-based horoscope. Moon phase changes every ~3.5 days — reliable daily content source even without major transits.
4
Generate personalised AI forecast
For each affected user, call /ai/transit/forecast with their natal chart data. Claude AI interprets what the transit means specifically for their chart — a Saturn transit over natal Sun is very different from one over natal Moon.
5
Send push notification
Send via FCM (Android/web), APNs (iOS), or email. Include the planet, event type, and a 2-sentence hook from the AI forecast. Deep-link to the full reading in-app. High CTR — users open personalised planetary alerts.

Complete daily monitoring job — 50 lines

Sign-change detection, retrograde detection, and per-user AI notification trigger.

// Daily transit monitoring job (runs at midnight UTC)
const BASE = 'https://vedintelastroapi.com/api/v1'
const KEY  = 'vai_YOUR_KEY'

const today     = new Date().toLocaleDateString('en-GB').replace(///g, '/')
const yesterday = new Date(Date.now() - 86400000).toLocaleDateString('en-GB').replace(///g, '/')

// Generic params for transit/retrograde (no birth data needed — celestial positions are universal)
const skyParams = `api_key=${KEY}&lat=0&lon=0&tz=0&dob=01/01/2000&tob=00:00`

// Fetch today's and yesterday's positions in parallel
const [today_transits, today_retrogrades, moon_phase] = await Promise.all([
  fetch(`${BASE}/panchang/transit?${skyParams}&date=${today}`).then(r => r.json()),
  fetch(`${BASE}/panchang/retrogrades?api_key=${KEY}&date=${today}`).then(r => r.json()),
  fetch(`${BASE}/panchang/moon-phase?${skyParams}&date=${today}`).then(r => r.json()),
])

// Compare with yesterday's snapshot (stored in your DB)
const yesterday_snapshot = await db.transitSnapshots.findOne({ date: yesterday })

for (const planet of today_transits.response.transit) {
  const prev = yesterday_snapshot?.planets[planet.planet]
  if (prev && prev.zodiac !== planet.zodiac) {
    // Planet changed sign — trigger alerts for all affected users
    await triggerAlertForAllUsers({
      type: 'SIGN_CHANGE',
      planet: planet.planet,
      from: prev.zodiac,
      to: planet.zodiac,
    })
  }
}

// Check retrograde flips
for (const planet of today_retrogrades.response.planets) {
  const prevRetro = yesterday_snapshot?.retrogrades[planet.planet]
  if (prevRetro !== undefined && prevRetro !== planet.is_retrograde) {
    await triggerAlertForAllUsers({
      type: planet.is_retrograde ? 'RETROGRADE_BEGIN' : 'RETROGRADE_END',
      planet: planet.planet,
    })
  }
}

// Per-user personalised forecast (called only for users who have alerts enabled)
async function triggerAlertForUser(userId, event) {
  const user = await db.users.findById(userId)
  const params = `api_key=${KEY}&dob=${user.dob}&tob=${user.tob}&lat=${user.lat}&lon=${user.lon}&tz=${user.tz}`

  const forecast = await fetch(`${BASE}/ai/transit/forecast?${params}&date=${today}`).then(r => r.json())

  await sendPushNotification({
    userId,
    title: `${event.planet} ${event.type === 'SIGN_CHANGE' ? 'enters ' + event.to : 'goes retrograde'}`,
    body: forecast.response.narrative.slice(0, 140) + '...',
    deepLink: '/app/forecast',
  })
}

7 endpoints for transit apps

All GET requests. Transit and retrograde endpoints don't require birth data — universal celestial positions.

Panchang
/api/v1/panchang/transit

All 9 planet positions for any date — current sign, house, retrograde status

Panchang
/api/v1/panchang/retrogrades

Current retrograde status for Mercury, Venus, Mars, Jupiter, Saturn + Rahu/Ketu

Panchang
/api/v1/panchang/moon-phase

Current lunar phase — new/waxing/full/waning — with tithi name

Predictions
/api/v1/predictions/daily-moon

Daily horoscope based on today's Moon sign transit

Predictions
/api/v1/predictions/daily-nakshatra

Daily prediction based on the current nakshatra — fresh every ~27 hours

Horoscope
/api/v1/horoscope/planet-details

User's natal chart — needed to calculate which house a transit falls in

AI
/api/v1/ai/transit/forecast

Claude AI personalised forecast — interprets current transits against user's natal chart

Built for retention

📊
Event detection, not polling per user
Detect planetary events once globally — then fan out to affected users. One transit call serves all users. Per-user AI forecast only called when an event is detected — not every day for every user.
🔔
High-CTR notifications
"Mercury retrograde — your communication alert" gets opened. Generic "Your daily horoscope" does not. Event-based notifications tied to real celestial events drive 3–5× higher open rates.
📅
Predictable content calendar
Retrogrades and sign changes are astronomically predictable months in advance. Pre-generate your notification copy calendar and show users upcoming events — a feature competitor apps don't have.
💰
Freemium that converts
Free: Moon phase alerts and nakshatra notifications. Premium ($3–10/mo): personalised transit forecasts with Claude AI. Upsell is obvious — free users see the alert, premium users get the interpretation.
VedIntel™ Precision Engine precision
Retrograde dates from VedIntel™ Precision Engine match astrology software to the minute. Your app will be more accurate than apps using approximation formulas — which is the one thing astrology users check.
🌍
Universal + personalised
Transit positions are universal (same for everyone). The interpretation is personalised (which house does this fall in for your natal chart). This two-layer architecture scales without per-user API costs.

Build your transit alert app today

500 free API calls. VedIntel™ Precision Engine retrograde dates accurate to the minute.

Get free API key →API Docs