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 planPanchang
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.sequencePredictions
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 planYogas & 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 planConjunctions & 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 planAI 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.