Skip to content

Profiles

ts
// List all profiles
const profiles = await guru.profiles.list()

// Create a profile
const profile = await guru.profiles.create({
  name: 'Arjun Sharma',
  gender: 'male',
  date: '1990-06-15',      // YYYY-MM-DD (AD)
  time: '06:30',           // HH:mm (24-hour)
  timezone: 'Asia/Kathmandu',
  location: 'Kathmandu, Nepal',
  latitude: 27.7172,
  longitude: 85.3240,
})

Birth Chart

ts
// Full chart — planets, houses, ascendant
const chart = await guru.chart.full(profileId)
const chart = await guru.chart.full(profileId, 'ne')  // Nepali locale

// Key details only
const details = await guru.chart.basicDetails(profileId)

// Individual components
const planets   = await guru.chart.planets(profileId)
const ascendant = await guru.chart.ascendant(profileId)
const nakshatra = await guru.chart.nakshatra(profileId)
const elements  = await guru.chart.elements(profileId)
const personality = await guru.chart.personality(profileId) // personal plan

Panchang

ts
const panchang = await guru.panchang.get(profileId)
const rashi    = await guru.panchang.rashi(profileId)

Rashifal

ts
// Monthly forecast (AD calendar, English)
const rashifal = await guru.rashifal.get({ profileId, period: 'monthly' })

// BS calendar, Nepali locale
const rashifal = await guru.rashifal.get({
  profileId,
  period: 'monthly',
  calendar: 'bs',
  locale: 'ne',
})

// All 12 signs (no profileId needed)
const horoscope = await guru.rashifal.allSigns({ period: 'weekly' })

period options: 'daily' · 'weekly' · 'monthly' · 'yearly'

calendar options: 'ad' (Gregorian) · 'bs' (Bikram Sambat)

The response includes periodDate with separate AD and BS date fields:

ts
const { periodDate } = rashifal
// periodDate.bsMonth, periodDate.bsYear, periodDate.adMonth, periodDate.adYear ...

Dasha

ts
const dasha = await guru.dasha.get(profileId)
// dasha.currentMaha, dasha.currentAntar, dasha.sequence

Predictions

ts
// Predictions for a date range
const preds = await guru.predictions.get({ profileId, startDate: '2026-01-01', endDate: '2026-12-31' })

// Daily insight (today)
const insight = await guru.predictions.dailyInsight(profileId)

// Current transits (personal plan)
const transits = await guru.predictions.transits(profileId)

Doshas

ts
const doshas   = await guru.dosha.get(profileId)     // personal plan
const sadeSati = await guru.dosha.sadeSati(profileId) // personal plan
const remedies = await guru.dosha.remedies(profileId) // personal plan

Yogas & Strength

ts
const yogas        = await guru.strength.yogas(profileId)        // personal plan
const ashtakavarga = await guru.strength.ashtakavarga(profileId) // personal plan
const shadbala     = await guru.strength.shadbala(profileId)     // personal plan
const houseLords   = await guru.strength.houseLords(profileId)   // personal plan
const atmakaraka   = await guru.strength.atmakaraka(profileId)   // personal plan
const functional   = await guru.strength.functional(profileId)   // personal plan

Conjunctions & Aspects

ts
const conjunctions = await guru.conjunctions.get(profileId)     // personal plan
const aspects      = await guru.conjunctions.aspects(profileId) // personal plan
const vargas       = await guru.conjunctions.vargas(profileId)  // personal plan

AI Guru Chat

Deducts 20 credits per call. Pass the full conversation history each time (stateless).

ts
const response = await guru.chat.send({
  profileId,  // optional — enables chart-specific answers
  messages: [
    { role: 'user', content: 'What does my Jupiter in the 7th house mean?' },
  ],
  locale: 'en',
})
console.log(response.message)

// Multi-turn
const response2 = await guru.chat.send({
  profileId,
  messages: [
    { role: 'user',      content: 'What does my Jupiter in the 7th house mean?' },
    { role: 'assistant', content: response.message },
    { role: 'user',      content: 'How does this affect my career?' },
  ],
})

API Keys

ts
// List keys and check credits
const account = await guru.apiKeys.list()
console.log(account.credits, account.developerPlan)

// Create a key
const newKey = await guru.apiKeys.create({ name: 'Production' })
console.log(newKey.key) // shown once — save immediately

// Revoke
await guru.apiKeys.revoke(keyId)

PDF Reports

Returns an ArrayBuffer you can write to disk:

ts
import { writeFileSync } from 'fs'

const pdf = await guru.reports.kundli({ profileId })
writeFileSync('kundli.pdf', Buffer.from(pdf))

const compatibility = await guru.reports.compatibility({
  brideProfileId: 'xxx',
  groomProfileId: 'yyy',
})
writeFileSync('compatibility.pdf', Buffer.from(compatibility))

Cost: 50 credits each. Requires personal plan.