◈ REST API · CORS-ENABLED · EDGE-CACHED

API Reference.

10 public endpoints. JSON-first. No auth required for read-only. CORS open.

/panchanga /transit-today /muhurta /og-image /share /ical /lang-detect /health /email-d0 webhooks
GET/api/panchanga

Daily panchāṅga: tithi, nakṣatra, yoga, karaṇa, vāra + brahma/abhijit/rāhu kāla muhurtas.

dateYYYY-MM-DDtarget date (default: today)
latfloatlatitude (default: 28.6 / Delhi)
lngfloatlongitude (default: 77.2)
REQUEST
curl https://trikala.lunarluxury.in/api/panchanga?date=2026-04-27&lat=19.0760&lng=72.8777
RESPONSE
{
  "date": "2026-04-27",
  "panchanga": {
    "tithi": { "name": "Ekādaśī", "paksha": "Śukla (waxing)", "index": 11 },
    "nakshatra": { "name": "Uttara-phālgunī", "index": 12, "of": 27 },
    "yoga": { "name": "Brahmā", "index": 25 },
    "karana": { "name": "Vaṇija", "index": 6 },
    "vara": { "name": "Somavāra (Moon)", "day": 1 }
  },
  "muhurta": {
    "brahma": "04:24-05:12 IST",
    "abhijit": "11:36-12:24 IST",
    "rahu_kala": "07:30-09:00 IST"
  }
}
GET/api/transit-today

Live sidereal positions for all 9 grahas (Lahiri ayanamsha): sign, degree, nakṣatra, pada, retrograde flag.

REQUEST
curl https://trikala.lunarluxury.in/api/transit-today
RESPONSE
{
  "date": "2026-04-27T...",
  "ayanamsha_lahiri": "23.85",
  "planets": {
    "sun":     { "sign": "Aries", "degrees": "12.45", "nakshatra": "Bharaṇī", "pada": 1, "retrograde": false },
    "moon":    { "sign": "Virgo", "degrees": "8.20", "nakshatra": "Uttara-phālgunī", "pada": 2, "retrograde": false },
    "saturn":  { "sign": "Pisces", "degrees": "4.10", "retrograde": false },
    ...
  }
}
GET/api/muhurta

Find auspicious time-windows for a category over the next N days.

typestringmarriage · business · travel · housewarming · meeting
daysint 1-60how many days to scan (default: 14)
REQUEST
curl 'https://trikala.lunarluxury.in/api/muhurta?type=marriage&days=30'
GET/api/og-image

Dynamic 1200×630 OG card SVG · 8-language fonts · Cinzel + Devanagari/Tamil/etc.

titlestringmain heading (max 120 chars)
substringsubheading
langen/hi/mr/ta/te/bn/gu/palanguage for fonts
tierstringtier badge (optional)
pricestringprice tag (optional)
REQUEST
<img src="/api/og-image?title=Pricing&lang=hi&tier=DEEP-DIVE&price=%E2%82%B9999">
GET/api/share

Social-share gateway. With p= redirects to platform; without renders picker.

topathtarget URL path
tstringshare title
pplatformwhatsapp · twitter · x · facebook · linkedin · telegram · reddit · email
GET/api/ical

iCalendar feed (RFC 5545). 30 days of α-time windows + 5 transit highlights. Subscribe in Google/Apple/Outlook.

emailstringsubscriber email (verified against contacts)
demo1return demo feed without auth
GET/api/lang-detect

Returns best language for visitor based on cookie → Accept-Language header → geo IP → default 'en'.

RESPONSE
{
  "lang": "hi",
  "reason": "accept-language",
  "quality": 1
}
GET/api/health

System status. Pass ?verbose=1 for dependency checks (Supabase, Razorpay, Resend, Meta).

POST/api/email-d0

D+0 instant email after free-chart submission. Returns deferred:true if RESEND_API_KEY not set.

REQUEST BODY
{
  "email": "user@example.com",
  "name": "Priya",
  "chart_url": "https://...",
  "lang": "hi"
}
POST/api/razorpay-webhook

HMAC-SHA256 signed webhook from Razorpay. Handles 7 subscription events. Set webhook URL in Razorpay dashboard.

POST/api/whatsapp-webhook

Meta WhatsApp Cloud API webhook. GET = verify handshake, POST = inbound messages (CANCEL/PAUSE/RESUME/HELP).

Need rate-limit increase or auth-tokens? Email hello@lunarluxury.in with use-case.

B2B / Enterprise →