This skill guides the implementation of vedic astrology backends that integrate astrology APIs with AI/LLM systems for predictions and consultations. It captures domain-specific patterns, data structures, and best practices for astrology applications.
When to Use This Skill
Apply this skill when you need to:
- Build vedic astrology consultation platforms
- Integrate astrology APIs (AstrologyAPI.com, Prokerala, etc.)
- Generate and store kundlis (birth charts)
- Implement dasha-based predictions
- Detect doshas (Manglik, Pitra, etc.)
- Provide gemstone/rudraksha recommendations
- Create AI-powered astrology consultants
- Support family/member chart management
- Build compatibility/matching systems
Prerequisites
Before using this skill, you should have:
- Completed the
ai-integrated-api-backend skill (or understand external API + AI integration)
- Basic understanding of vedic astrology concepts
- Access to an astrology API provider
Astrology Domain Fundamentals
Core Concepts
Kundli (Birth Chart)
- Complete astrological profile of a person
- Requires: Date, Time, Location (lat/long) of birth
- Timezone: Critical for accuracy (default IST = 5.5 for India)
- Components: Charts, planets, dasha, doshas, remedies
Charts (Divisional Charts)
- D1 (Rashi Chart): Main birth chart, 12 houses
- D9 (Navamsa): Marriage and spiritual chart
- Other divisional charts (D10, D60, etc.) for specific life areas
Houses (Bhava)
- 12 houses representing life domains
- Critical mappings:
- House 1: Self, health, personality
- House 2: Wealth, family, speech
- House 4: Mother, property, happiness
- House 5: Children, education, creativity
- House 7: Marriage, partnerships
- House 10: Career, reputation, father
- House 11: Gains, friends, aspirations
- House 12: Losses, spirituality, foreign lands
Planets (Grahas)
- 9 planets in vedic astrology:
- Sun (Surya): Authority, self, ego
- Moon (Chandra): Mind, emotions, mother
- Mars (Mangal): Energy, courage, conflicts
- Mercury (Budha): Communication, intellect
- Jupiter (Guru): Wisdom, expansion, luck
- Venus (Shukra): Love, relationships, luxury
- Saturn (Shani): Discipline, karma, delays
- Rahu: Desires, obsessions, foreign
- Ketu: Detachment, spirituality, past life
Sign Lords (Zodiac Rulers)
- Each zodiac sign is ruled by a planet:
- Aries → Mars
- Taurus → Venus
- Gemini → Mercury
- Cancer → Moon
- Leo → Sun
- Virgo → Mercury
- Libra → Venus
- Scorpio → Mars
- Sagittarius → Jupiter
- Capricorn → Saturn
- Aquarius → Saturn
- Pisces → Jupiter
Dasha (Planetary Periods)
- Vimshottari Dasha: 120-year cycle
- Structure: Major (Mahadasha) → Minor (Antardasha) → Sub-minor (Pratyantar)
- Each planet rules for specific years
- Critical for timing predictions: "When will X happen?"
Doshas (Afflictions)
- Manglik Dosha: Mars in specific houses (1, 2, 4, 7, 8, 12)
- Affects marriage compatibility
- Measured as percentage (0-100%)
- Cancellations exist (e.g., both partners Manglik)
- Pitra Dosha: Ancestral debt
- Sun/Moon afflicted by Rahu/Ketu
- Remedies: Puja, charity
Remedies
- Gemstones: Strengthen weak planets
- Each planet has a gemstone (Ruby for Sun, Pearl for Moon, etc.)
- Worn on specific finger, day, metal
- Weight in carats specified
- Rudraksha: Beads for spiritual remedies
- Different mukhi (faces) for different planets
- Worn for protection and balance
- Puja/Mantras: Ritual remedies
Astrology API Integration Pattern
Step 1: Choose Astrology API Provider
Popular Options:
Common Features Needed:
- Birth chart generation (D1, D9)
- Planetary positions with nakshatra
- Vimshottari Dasha
- Dosha analysis (Manglik, Pitra, Kaal Sarp, etc.)
- Gemstone/Rudraksha suggestions
- Panchang (daily calendar)
- Compatibility/matching
Step 2: API Endpoint Mapping
Essential Endpoints (AstrologyAPI.com example):
Base URL: https://json.astrologyapi.com/
1. POST /v1/horo_chart/{chart_id}
- Get D1 (chart_id=D1), D9 (chart_id=D9), etc.
- Returns: List of 12 houses with sign and planets
2. POST /v1/planets
- Get detailed planetary positions
- Returns: Planet positions, retrograde status, nakshatra, longitude
3. POST /v1/astro_details
- Get basic astrological details
- Returns: Ascendant, rasi, nakshatra, etc.
4. POST /v1/current_vdasha
- Get current dasha period
- Returns: Major, minor, sub-minor planet and dates
5. POST /v1/current_vdasha_all
- Get complete dasha timeline
- Returns: All major/minor/sub-minor periods from birth to 120 years
6. POST /v1/manglik
- Check Manglik dosha
- Returns: Manglik status, percentage, explanation
7. POST /v1/pitra_dosha_report
- Check Pitra dosha
- Returns: Present/absent, explanation
8. POST /v1/basic_gem_suggestion
- Get gemstone recommendation
- Returns: Gemstone, metal, finger, day, deity, mantra, carat weight
9. POST /v1/rudraksha_suggestion
- Get Rudraksha recommendation
- Returns: Mukhi number, ruling planet, benefits
10. POST /v1/puja_suggestion
- Get puja recommendations
- Returns: Puja type, purpose, timing
Step 3: Base Payload Structure
Standard Birth Details Payload:
{
"day": 15, // Day of birth (1-31)
"month": 6, // Month (1-12)
"year": 1990, // Year (YYYY)
"hour": 14, // Hour in 24-hour format (0-23)
"min": 30, // Minute (0-59)
"lat": 28.7041, // Latitude (decimal)
"lon": 77.1025, // Longitude (decimal)
"tzone": 5.5 // Timezone offset (5.5 for IST)
}
Critical Considerations:
- Timezone: MUST be accurate. Default IST = 5.5 for India
- Time Format: 24-hour format, NOT 12-hour AM/PM
- Coordinates: Use Google Maps Geocoding API or similar for accurate lat/long
- Date Validation: Ensure valid dates (no Feb 30, etc.)
Step 4: API Manager Implementation
Responsibilities:
- Authenticate with API (usually HTTP Basic Auth or API Key)
- Build payloads from user birth details
- Call multiple endpoints (charts, dasha, dosha, remedies)
- Handle API rate limits and errors
- Return structured responses
Key Pattern:
API Manager Methods:
- get_horo_chart(birth_details, chart_id) → D1/D9 chart
- get_planets(birth_details) → Planet positions
- get_dasha(birth_details) → Current dasha
- get_dasha_all(birth_details) → Complete timeline
- get_manglik(birth_details) → Dosha status
- get_gem_suggestion(birth_details) → Remedies
Parallel Fetching:
- Most endpoints are independent
- Fetch in parallel using async tasks (Celery, etc.)
- Reduces total time from 9×3s = 27s to ~3s
Data Storage Pattern
Database Schema Design
Collection 1: User Birth Details (user_metadata)
{
"user_id": 12345,
"dob_full_name": "John Doe",
"dob_gender": "male",
"dob_day": 15,
"dob_month": 6,
"dob_year": 1990,
"dob_hour": 14,
"dob_minute": 30,
"dob_lat": 28.7041,
"dob_long": 77.1025,
"dob_city": "New Delhi",
"dob_state": "Delhi",
"created_on": "2024-01-15T10:00:00Z",
"updated_on": "2024-01-15T10:00:00Z"
}
Collection 2: Raw Astrology Data (user_astro_metadata)
{
"user_id": 12345,
"astro_details": { /* API response */ },
"horo_d1_chart_data": { /* D1 chart response */ },
"horo_d9_chart_data": { /* D9 chart response */ },
"planet_chart_data": { /* Planets response */ },
"current_vdasha": { /* Current dasha */ },
"current_vdasha_all": { /* Complete dasha */ },
"manglik": { /* Manglik dosha */ },
"pitra_dosha_report": { /* Pitra dosha */ },
"basic_gem_suggestion": { /* Gemstone */ },
"rudraksha_suggestion": { /* Rudraksha */ },
"created_on": "2024-01-15T10:05:00Z",
"updated_on": "2024-01-15T10:05:00Z"
}
Why Two Collections?
- Birth details rarely change (immutable)
- Astrology data can be refreshed (dasha changes over time)
- Separation allows independent updates
Family/Member Support
Collection 3: Family Member Birth Details (user_member_metadata)
{
"_id": "member_unique_id",
"user_id": 12345,
"relation": "spouse",
"dob_full_name": "Jane Doe",
"dob_gender": "female",
"age": 32,
"dob_day": 20,
"dob_month": 8,
"dob_year": 1992,
// ... same birth detail fields
}
Collection 4: Family Member Astrology Data (user_member_astro_metadata)
{
"user_id": 12345,
"member_id": "member_unique_id",
// ... same astro data fields as user_astro_metadata
}
Relation Types:
- "self" (primary user)
- "spouse", "mother", "father"
- "son", "daughter", "child"
- "brother", "sister"
- Custom relations as needed
Kundli Transformation Pattern
Problem Statement
Challenge: API responses are nested, verbose, and use inconsistent key naming. Need to transform into clean, AI-friendly structure.
Example API Response Issues:
- Mixed case keys: "Sign", "sign", "SIGN"
- Verbose: "The person is 28.5% Manglik due to Mars in 7th house..."
- Nested deeply: houses → sign → planets → details
- String format: "Mars(Retrograde)" instead of structured data
Solution: Multi-Step Transformation Pipeline
Step 1: Normalize Keys
- Convert all keys to lowercase
- Recursively process nested objects
- Standardize array structures
Step 2: Transform Charts
- Convert house list to dictionary (house number → details)
- Extract sign from each house
- Map sign to sign lord (Aries → Mars)
- Extract planets in each house
Step 3: Enrich Planets
- Parse planet strings: "Mars(Retrograde)" → {name: "Mars", isRetrograde: true}
- Add nakshatra, longitude, position
- Mark benefic/malefic status
Step 4: Build Dasha Timeline
- Parse date strings to ISO format
- Filter realistic window (e.g., 2010 to current_year + 25)
- Structure major → minor → sub-minor hierarchy
Step 5: Extract Dosha Values
- Reduce verbose reports to key values
- Manglik: Extract percentage only
- Pitra: Extract present/absent only
Step 6: Format Remedies
- Gemstone: Extract name, metal, finger, day, carat
- Rudraksha: Extract mukhi, planet, benefits
Output: Complete Kundli Structure
Relation with user: self
Birth Details:
name: John Doe
gender: male
date_of_birth: 15 Jun 1990
time_of_birth: 02:30 PM
place_of_birth: New Delhi, Delhi
D1 Chart:
House 1:
sign: Aries
sign_lord: Mars
planets:
- name: Sun
isRetrograde: false
nakshatra: Ashwini
longitude: 65.23
- name: Mercury
isRetrograde: true
nakshatra: Bharani
longitude: 72.45
House 2:
sign: Taurus
sign_lord: Venus
planets: []
# ... Houses 3-12
D9 Chart:
# Same structure as D1
Dasha Timeline:
- major_planet: Venus
start_date: 2015-05-01
end_date: 2035-05-01
minor_periods:
- planet: Venus
start_date: 2015-05-01
end_date: 2018-09-01
- planet: Sun
start_date: 2018-09-01
end_date: 2019-09-01
# ... more minor periods
Current Dasha:
major: Venus
minor: Moon
sub_minor: Mars
Doshas:
manglik_percentage: 28.5
pitra_dosha_present: false
Remedies:
gemstone:
name: Diamond
metal: Silver
finger: Middle
day: Friday
carat: 2-3
rudraksha:
mukhi: 6
ruling_planet: Venus
benefits: "Harmony, love, relationships"
AI Prompt Integration Pattern
Context Assembly
Components to Inject:
- Complete kundli (YAML format above)
- Query-specific house mapping
- Gender-aware interpretation rules
- Current dasha for timing
- Language preference (Hindi/English)
System Prompt Structure:
You are an expert Vedic astrologer with deep knowledge of:
- Planetary positions and aspects
- House significations
- Dasha timing predictions
- Dosha analysis and remedies
User's Complete Birth Chart:
<kundli>
[YAML kundli structure here]
</kundli>
Query Analysis Rules:
- Marriage questions → Focus on House 7, Venus, Jupiter
- Career questions → Focus on House 10, Saturn, Sun
- Finance questions → Focus on House 2, 11, Jupiter
- Health questions → Focus on House 1, 6, planets in these houses
- Children questions → Focus on House 5, Jupiter
- Property questions → Focus on House 4, Mars
Gender-Specific Rules:
- For females: Jupiter = husband, Venus = marriage
- For males: Venus = wife, Mars = passion
Timing Predictions:
- Use current dasha: [Major/Minor/Sub-minor]
- Consider transits for immediate events
- Dasha changes indicate life phase shifts
Response Format:
- Provide predictions based on chart analysis
- Cite specific planetary positions
- Mention relevant dasha periods
- Suggest remedies if doshas present
- Answer in [Hindi/English] as per user preference
Query-Specific Context
Marriage Query Example:
Query: "When will I get married?"
Additional Context:
- House 7 analysis: [Sign, Lord, Planets]
- Venus position: [House, Sign, Strength]
- Jupiter position: [House, Sign, Strength]
- Current dasha: [Will marriage planet dasha start soon?]
- Manglik dosha: [If yes, mention in prediction]
Prediction Approach:
1. Check House 7 lord strength
2. Check Venus/Jupiter periods in dasha
3. Look for favorable transits
4. Consider dosha impacts
Career Query Example:
Query: "What career is best for me?"
Additional Context:
- House 10 analysis: [Sign, Lord, Planets]
- Sun position: [Authority, leadership]
- Saturn position: [Discipline, perseverance]
- Mercury position: [Communication, intellect]
- Strongest planet in chart: [Natural talent]
Prediction Approach:
1. Identify dominant planets
2. Map to career domains (Sun→govt, Mercury→business, etc.)
3. Check House 10 lord placement
4. Consider current dasha planet's signification
Advanced Features
Compatibility/Matching (Kundli Milan)
Ashtakoot System (8-point matching):
- Varna (1 point): Spiritual compatibility
- Vashya (2 points): Mutual attraction
- Tara (3 points): Birth star compatibility
- Yoni (4 points): Physical compatibility
- Graha Maitri (5 points): Mental compatibility
- Gana (6 points): Temperament
- Bhakoot (7 points): Love and affection
- Nadi (8 points): Health and progeny
Total: 36 points maximum
- 18-24: Average match
- 25-32: Good match
- 33-36: Excellent match
Implementation:
- Requires both kundlis
- Call matching API endpoint
- Display point breakdown
- Highlight manglik cancellation if both Manglik
Panchang (Daily Calendar)
Components:
- Tithi (lunar day)
- Vara (weekday)
- Nakshatra (lunar mansion)
- Yoga (sun-moon combination)
- Karana (half-tithi)
Use Cases:
- Muhurat selection (auspicious timing)
- Festival dates
- Daily horoscope context
Transit Predictions
Current Planetary Positions:
- Fetch current date planetary positions
- Compare with birth chart
- Identify aspects (conjunction, opposition, trine, square)
- Predict short-term events
Implementation Checklist
Phase 1: API Setup
Phase 2: Data Models
Phase 3: Kundli Builder
Phase 4: AI Integration
Phase 5: Features
Phase 6: Optimization
Phase 7: Quality Assurance
Best Practices
Accuracy First
- Timezone is Critical: Always use accurate timezone offset
- Coordinates Matter: Get precise lat/long from geocoding
- Time Format: Use 24-hour format, validate AM/PM conversions
- Date Validation: Check for valid dates, leap years
Data Management
- Separate Birth Data from Astrology Data: Birth details immutable, astro data refreshable
- Cache Wisely: Kundli doesn't change often, cache for hours
- Version Kundli Format: Add version field for future schema changes
- Audit Trail: Log all kundli generations for debugging
AI Prompt Engineering
- Structured Context: Use YAML/XML tags for clear sections
- Query Classification: Pre-process query to determine focus area
- Citation: Instruct AI to cite planetary positions in answers
- Fallback: Handle cases where chart doesn't support query
User Experience
- Progressive Loading: Show basic chart while detailed analysis loads
- Explanation: Explain astrological terms in simple language
- Remedies: Always provide actionable remedies
- Consent: Privacy for sensitive birth data
Common Pitfalls
- Wrong Timezone: Results in completely different chart
- 12-hour AM/PM Confusion: 2:30 PM ≠ 14:30, causes 12-hour error
- Ignoring Retrograde: Planetary retrograde changes interpretation
- Static Dasha: Dasha changes over time, refresh periodically
- Oversimplified Predictions: AI needs detailed context, not just sun sign
- Missing Gender Context: Venus/Jupiter interpretation differs by gender
- Ignoring Dosha: Manglik dosha critical for marriage predictions
Framework Adaptations
Django
- MongoDB for document storage
- Celery for async API calls
- Django cache for kundli caching
- REST API for frontend
FastAPI
- Motor (async MongoDB driver)
- Background tasks or Celery
- Redis caching
- WebSocket for real-time predictions
Node.js (Express)
- Mongoose for MongoDB
- Bull for job queue
- Redis caching
- Socket.io for real-time
Spring Boot
- Spring Data MongoDB
- Spring Async or RabbitMQ
- Spring Cache
- WebFlux for reactive
Related Resources
- Vedic Astrology Texts: Brihat Parashara Hora Shastra, Jaimini Sutras
- API Providers: AstrologyAPI.com, Prokerala, GeoVedic
- Libraries: Swiss Ephemeris (planetary calculations)
- Terminology: https://en.wikipedia.org/wiki/Hindu_astrology
Summary
Building an astrology backend requires:
- Domain Knowledge: Understand houses, planets, dasha, doshas
- Accurate Data: Timezone and coordinates are critical
- Structured Transformation: Convert verbose API data to clean kundli
- Rich AI Context: Provide complete birth chart to LLM
- Query Intelligence: Map user questions to relevant chart sections
- Remedies: Always provide actionable guidance
This skill provides the patterns and domain knowledge to build production-grade vedic astrology systems with AI integration. Combine with the ai-integrated-api-backend skill for complete implementation guidance.
IMPORTANT ASTRO DATA POINTS:
- astro_details — Basic birth chart details
- horo_d1_chart_data — Main birth chart (Rashi chart)
- horo_d9_chart_data — Navamsa divisional chart
- planet_chart_data — Detailed planetary positions
- current_vdasha — Current Vimshottari dasha period
- current_vdasha_all — Complete dasha timeline
- manglik — Manglik dosha analysis
- pitra_dosha_report — Pitra dosha analysis
- basic_gem_suggestion — Gemstone recommendations
- rudraksha_suggestion — Rudraksha bead suggestions
1---2name: astrology-backend-integration3description: This skill provides a comprehensive approach for building astrology-specific backend systems with AI integration. Use when implementing vedic astrology features including kundli generation, dasha analysis, dosha detection, and astrological predictions. Builds on the ai-integrated-api-backend skill with astrology domain expertise.4license: Complete terms in LICENSE.txt5---67This skill guides the implementation of vedic astrology backends that integrate astrology APIs with AI/LLM systems for predictions and consultations. It captures domain-specific patterns, data structures, and best practices for astrology applications.89## When to Use This Skill1011Apply this skill when you need to:12- Build vedic astrology consultation platforms13- Integrate astrology APIs (AstrologyAPI.com, Prokerala, etc.)14- Generate and store kundlis (birth charts)15- Implement dasha-based predictions16- Detect doshas (Manglik, Pitra, etc.)17- Provide gemstone/rudraksha recommendations18- Create AI-powered astrology consultants19- Support family/member chart management20- Build compatibility/matching systems2122## Prerequisites2324Before using this skill, you should have:25- Completed the `ai-integrated-api-backend` skill (or understand external API + AI integration)26- Basic understanding of vedic astrology concepts27- Access to an astrology API provider2829## Astrology Domain Fundamentals3031### Core Concepts3233**Kundli (Birth Chart)**34- Complete astrological profile of a person35- Requires: Date, Time, Location (lat/long) of birth36- Timezone: Critical for accuracy (default IST = 5.5 for India)37- Components: Charts, planets, dasha, doshas, remedies3839**Charts (Divisional Charts)**40- **D1 (Rashi Chart)**: Main birth chart, 12 houses41- **D9 (Navamsa)**: Marriage and spiritual chart42- Other divisional charts (D10, D60, etc.) for specific life areas4344**Houses (Bhava)**45- 12 houses representing life domains46- Critical mappings:47 - House 1: Self, health, personality48 - House 2: Wealth, family, speech49 - House 4: Mother, property, happiness50 - House 5: Children, education, creativity51 - House 7: Marriage, partnerships52 - House 10: Career, reputation, father53 - House 11: Gains, friends, aspirations54 - House 12: Losses, spirituality, foreign lands5556**Planets (Grahas)**57- 9 planets in vedic astrology:58 - Sun (Surya): Authority, self, ego59 - Moon (Chandra): Mind, emotions, mother60 - Mars (Mangal): Energy, courage, conflicts61 - Mercury (Budha): Communication, intellect62 - Jupiter (Guru): Wisdom, expansion, luck63 - Venus (Shukra): Love, relationships, luxury64 - Saturn (Shani): Discipline, karma, delays65 - Rahu: Desires, obsessions, foreign66 - Ketu: Detachment, spirituality, past life6768**Sign Lords (Zodiac Rulers)**69- Each zodiac sign is ruled by a planet:70 - Aries → Mars71 - Taurus → Venus72 - Gemini → Mercury73 - Cancer → Moon74 - Leo → Sun75 - Virgo → Mercury76 - Libra → Venus77 - Scorpio → Mars78 - Sagittarius → Jupiter79 - Capricorn → Saturn80 - Aquarius → Saturn81 - Pisces → Jupiter8283**Dasha (Planetary Periods)**84- Vimshottari Dasha: 120-year cycle85- Structure: Major (Mahadasha) → Minor (Antardasha) → Sub-minor (Pratyantar)86- Each planet rules for specific years87- Critical for timing predictions: "When will X happen?"8889**Doshas (Afflictions)**90- **Manglik Dosha**: Mars in specific houses (1, 2, 4, 7, 8, 12)91 - Affects marriage compatibility92 - Measured as percentage (0-100%)93 - Cancellations exist (e.g., both partners Manglik)94- **Pitra Dosha**: Ancestral debt95 - Sun/Moon afflicted by Rahu/Ketu96 - Remedies: Puja, charity9798**Remedies**99- **Gemstones**: Strengthen weak planets100 - Each planet has a gemstone (Ruby for Sun, Pearl for Moon, etc.)101 - Worn on specific finger, day, metal102 - Weight in carats specified103- **Rudraksha**: Beads for spiritual remedies104 - Different mukhi (faces) for different planets105 - Worn for protection and balance106- **Puja/Mantras**: Ritual remedies107108## Astrology API Integration Pattern109110### Step 1: Choose Astrology API Provider111112**Popular Options**:113- AstrologyAPI.com (https://json.astrologyapi.com/)114- Prokerala API115- GeoVedic API116- AstroSage API117118**Common Features Needed**:119- Birth chart generation (D1, D9)120- Planetary positions with nakshatra121- Vimshottari Dasha122- Dosha analysis (Manglik, Pitra, Kaal Sarp, etc.)123- Gemstone/Rudraksha suggestions124- Panchang (daily calendar)125- Compatibility/matching126127### Step 2: API Endpoint Mapping128129**Essential Endpoints** (AstrologyAPI.com example):130131```132Base URL: https://json.astrologyapi.com/1331341. POST /v1/horo_chart/{chart_id}135 - Get D1 (chart_id=D1), D9 (chart_id=D9), etc.136 - Returns: List of 12 houses with sign and planets1371382. POST /v1/planets139 - Get detailed planetary positions140 - Returns: Planet positions, retrograde status, nakshatra, longitude1411423. POST /v1/astro_details143 - Get basic astrological details144 - Returns: Ascendant, rasi, nakshatra, etc.1451464. POST /v1/current_vdasha147 - Get current dasha period148 - Returns: Major, minor, sub-minor planet and dates1491505. POST /v1/current_vdasha_all151 - Get complete dasha timeline152 - Returns: All major/minor/sub-minor periods from birth to 120 years1531546. POST /v1/manglik155 - Check Manglik dosha156 - Returns: Manglik status, percentage, explanation1571587. POST /v1/pitra_dosha_report159 - Check Pitra dosha160 - Returns: Present/absent, explanation1611628. POST /v1/basic_gem_suggestion163 - Get gemstone recommendation164 - Returns: Gemstone, metal, finger, day, deity, mantra, carat weight1651669. POST /v1/rudraksha_suggestion167 - Get Rudraksha recommendation168 - Returns: Mukhi number, ruling planet, benefits16917010. POST /v1/puja_suggestion171 - Get puja recommendations172 - Returns: Puja type, purpose, timing173```174175### Step 3: Base Payload Structure176177**Standard Birth Details Payload**:178```json179{180 "day": 15, // Day of birth (1-31)181 "month": 6, // Month (1-12)182 "year": 1990, // Year (YYYY)183 "hour": 14, // Hour in 24-hour format (0-23)184 "min": 30, // Minute (0-59)185 "lat": 28.7041, // Latitude (decimal)186 "lon": 77.1025, // Longitude (decimal)187 "tzone": 5.5 // Timezone offset (5.5 for IST)188}189```190191**Critical Considerations**:192- **Timezone**: MUST be accurate. Default IST = 5.5 for India193- **Time Format**: 24-hour format, NOT 12-hour AM/PM194- **Coordinates**: Use Google Maps Geocoding API or similar for accurate lat/long195- **Date Validation**: Ensure valid dates (no Feb 30, etc.)196197### Step 4: API Manager Implementation198199**Responsibilities**:200- Authenticate with API (usually HTTP Basic Auth or API Key)201- Build payloads from user birth details202- Call multiple endpoints (charts, dasha, dosha, remedies)203- Handle API rate limits and errors204- Return structured responses205206**Key Pattern**:207```208API Manager Methods:209- get_horo_chart(birth_details, chart_id) → D1/D9 chart210- get_planets(birth_details) → Planet positions211- get_dasha(birth_details) → Current dasha212- get_dasha_all(birth_details) → Complete timeline213- get_manglik(birth_details) → Dosha status214- get_gem_suggestion(birth_details) → Remedies215```216217**Parallel Fetching**:218- Most endpoints are independent219- Fetch in parallel using async tasks (Celery, etc.)220- Reduces total time from 9×3s = 27s to ~3s221222## Data Storage Pattern223224### Database Schema Design225226**Collection 1: User Birth Details** (user_metadata)227```json228{229 "user_id": 12345,230 "dob_full_name": "John Doe",231 "dob_gender": "male",232 "dob_day": 15,233 "dob_month": 6,234 "dob_year": 1990,235 "dob_hour": 14,236 "dob_minute": 30,237 "dob_lat": 28.7041,238 "dob_long": 77.1025,239 "dob_city": "New Delhi",240 "dob_state": "Delhi",241 "created_on": "2024-01-15T10:00:00Z",242 "updated_on": "2024-01-15T10:00:00Z"243}244```245246**Collection 2: Raw Astrology Data** (user_astro_metadata)247```json248{249 "user_id": 12345,250 "astro_details": { /* API response */ },251 "horo_d1_chart_data": { /* D1 chart response */ },252 "horo_d9_chart_data": { /* D9 chart response */ },253 "planet_chart_data": { /* Planets response */ },254 "current_vdasha": { /* Current dasha */ },255 "current_vdasha_all": { /* Complete dasha */ },256 "manglik": { /* Manglik dosha */ },257 "pitra_dosha_report": { /* Pitra dosha */ },258 "basic_gem_suggestion": { /* Gemstone */ },259 "rudraksha_suggestion": { /* Rudraksha */ },260 "created_on": "2024-01-15T10:05:00Z",261 "updated_on": "2024-01-15T10:05:00Z"262}263```264265**Why Two Collections?**266- Birth details rarely change (immutable)267- Astrology data can be refreshed (dasha changes over time)268- Separation allows independent updates269270### Family/Member Support271272**Collection 3: Family Member Birth Details** (user_member_metadata)273```json274{275 "_id": "member_unique_id",276 "user_id": 12345,277 "relation": "spouse",278 "dob_full_name": "Jane Doe",279 "dob_gender": "female",280 "age": 32,281 "dob_day": 20,282 "dob_month": 8,283 "dob_year": 1992,284 // ... same birth detail fields285}286```287288**Collection 4: Family Member Astrology Data** (user_member_astro_metadata)289```json290{291 "user_id": 12345,292 "member_id": "member_unique_id",293 // ... same astro data fields as user_astro_metadata294}295```296297**Relation Types**:298- "self" (primary user)299- "spouse", "mother", "father"300- "son", "daughter", "child"301- "brother", "sister"302- Custom relations as needed303304## Kundli Transformation Pattern305306### Problem Statement307308**Challenge**: API responses are nested, verbose, and use inconsistent key naming. Need to transform into clean, AI-friendly structure.309310**Example API Response Issues**:311- Mixed case keys: "Sign", "sign", "SIGN"312- Verbose: "The person is 28.5% Manglik due to Mars in 7th house..."313- Nested deeply: houses → sign → planets → details314- String format: "Mars(Retrograde)" instead of structured data315316### Solution: Multi-Step Transformation Pipeline317318**Step 1: Normalize Keys**319- Convert all keys to lowercase320- Recursively process nested objects321- Standardize array structures322323**Step 2: Transform Charts**324- Convert house list to dictionary (house number → details)325- Extract sign from each house326- Map sign to sign lord (Aries → Mars)327- Extract planets in each house328329**Step 3: Enrich Planets**330- Parse planet strings: "Mars(Retrograde)" → {name: "Mars", isRetrograde: true}331- Add nakshatra, longitude, position332- Mark benefic/malefic status333334**Step 4: Build Dasha Timeline**335- Parse date strings to ISO format336- Filter realistic window (e.g., 2010 to current_year + 25)337- Structure major → minor → sub-minor hierarchy338339**Step 5: Extract Dosha Values**340- Reduce verbose reports to key values341- Manglik: Extract percentage only342- Pitra: Extract present/absent only343344**Step 6: Format Remedies**345- Gemstone: Extract name, metal, finger, day, carat346- Rudraksha: Extract mukhi, planet, benefits347348### Output: Complete Kundli Structure349350```yaml351Relation with user: self352353Birth Details:354 name: John Doe355 gender: male356 date_of_birth: 15 Jun 1990357 time_of_birth: 02:30 PM358 place_of_birth: New Delhi, Delhi359360D1 Chart:361 House 1:362 sign: Aries363 sign_lord: Mars364 planets:365 - name: Sun366 isRetrograde: false367 nakshatra: Ashwini368 longitude: 65.23369 - name: Mercury370 isRetrograde: true371 nakshatra: Bharani372 longitude: 72.45373 House 2:374 sign: Taurus375 sign_lord: Venus376 planets: []377 # ... Houses 3-12378379D9 Chart:380 # Same structure as D1381382Dasha Timeline:383 - major_planet: Venus384 start_date: 2015-05-01385 end_date: 2035-05-01386 minor_periods:387 - planet: Venus388 start_date: 2015-05-01389 end_date: 2018-09-01390 - planet: Sun391 start_date: 2018-09-01392 end_date: 2019-09-01393 # ... more minor periods394395Current Dasha:396 major: Venus397 minor: Moon398 sub_minor: Mars399400Doshas:401 manglik_percentage: 28.5402 pitra_dosha_present: false403404Remedies:405 gemstone:406 name: Diamond407 metal: Silver408 finger: Middle409 day: Friday410 carat: 2-3411 rudraksha:412 mukhi: 6413 ruling_planet: Venus414 benefits: "Harmony, love, relationships"415```416417## AI Prompt Integration Pattern418419### Context Assembly420421**Components to Inject**:4221. Complete kundli (YAML format above)4232. Query-specific house mapping4243. Gender-aware interpretation rules4254. Current dasha for timing4265. Language preference (Hindi/English)427428**System Prompt Structure**:429```430You are an expert Vedic astrologer with deep knowledge of:431- Planetary positions and aspects432- House significations433- Dasha timing predictions434- Dosha analysis and remedies435436User's Complete Birth Chart:437<kundli>438[YAML kundli structure here]439</kundli>440441Query Analysis Rules:442- Marriage questions → Focus on House 7, Venus, Jupiter443- Career questions → Focus on House 10, Saturn, Sun444- Finance questions → Focus on House 2, 11, Jupiter445- Health questions → Focus on House 1, 6, planets in these houses446- Children questions → Focus on House 5, Jupiter447- Property questions → Focus on House 4, Mars448449Gender-Specific Rules:450- For females: Jupiter = husband, Venus = marriage451- For males: Venus = wife, Mars = passion452453Timing Predictions:454- Use current dasha: [Major/Minor/Sub-minor]455- Consider transits for immediate events456- Dasha changes indicate life phase shifts457458Response Format:459- Provide predictions based on chart analysis460- Cite specific planetary positions461- Mention relevant dasha periods462- Suggest remedies if doshas present463- Answer in [Hindi/English] as per user preference464```465466### Query-Specific Context467468**Marriage Query Example**:469```470Query: "When will I get married?"471472Additional Context:473- House 7 analysis: [Sign, Lord, Planets]474- Venus position: [House, Sign, Strength]475- Jupiter position: [House, Sign, Strength]476- Current dasha: [Will marriage planet dasha start soon?]477- Manglik dosha: [If yes, mention in prediction]478479Prediction Approach:4801. Check House 7 lord strength4812. Check Venus/Jupiter periods in dasha4823. Look for favorable transits4834. Consider dosha impacts484```485486**Career Query Example**:487```488Query: "What career is best for me?"489490Additional Context:491- House 10 analysis: [Sign, Lord, Planets]492- Sun position: [Authority, leadership]493- Saturn position: [Discipline, perseverance]494- Mercury position: [Communication, intellect]495- Strongest planet in chart: [Natural talent]496497Prediction Approach:4981. Identify dominant planets4992. Map to career domains (Sun→govt, Mercury→business, etc.)5003. Check House 10 lord placement5014. Consider current dasha planet's signification502```503504## Advanced Features505506### Compatibility/Matching (Kundli Milan)507508**Ashtakoot System** (8-point matching):5091. Varna (1 point): Spiritual compatibility5102. Vashya (2 points): Mutual attraction5113. Tara (3 points): Birth star compatibility5124. Yoni (4 points): Physical compatibility5135. Graha Maitri (5 points): Mental compatibility5146. Gana (6 points): Temperament5157. Bhakoot (7 points): Love and affection5168. Nadi (8 points): Health and progeny517518**Total**: 36 points maximum519- 18-24: Average match520- 25-32: Good match521- 33-36: Excellent match522523**Implementation**:524- Requires both kundlis525- Call matching API endpoint526- Display point breakdown527- Highlight manglik cancellation if both Manglik528529### Panchang (Daily Calendar)530531**Components**:532- Tithi (lunar day)533- Vara (weekday)534- Nakshatra (lunar mansion)535- Yoga (sun-moon combination)536- Karana (half-tithi)537538**Use Cases**:539- Muhurat selection (auspicious timing)540- Festival dates541- Daily horoscope context542543### Transit Predictions544545**Current Planetary Positions**:546- Fetch current date planetary positions547- Compare with birth chart548- Identify aspects (conjunction, opposition, trine, square)549- Predict short-term events550551## Implementation Checklist552553### Phase 1: API Setup554- [ ] Choose astrology API provider555- [ ] Set up authentication credentials556- [ ] Test all required endpoints557- [ ] Map API responses to internal models558- [ ] Implement error handling for API failures559560### Phase 2: Data Models561- [ ] Create birth details schema (user_metadata)562- [ ] Create astrology data schema (user_astro_metadata)563- [ ] Create member schemas for family support564- [ ] Add indexes (user_id, member_id)565- [ ] Plan data retention policy566567### Phase 3: Kundli Builder568- [ ] Implement key normalization569- [ ] Transform charts (D1, D9)570- [ ] Enrich planet details571- [ ] Build dasha timeline572- [ ] Extract dosha values573- [ ] Format remedies574- [ ] Test with sample API responses575576### Phase 4: AI Integration577- [ ] Design system prompt with kundli context578- [ ] Map query types to house focus579- [ ] Add gender-aware rules580- [ ] Include dasha in timing predictions581- [ ] Support Hindi/English responses582- [ ] Test predictions for accuracy583584### Phase 5: Features585- [ ] User onboarding (birth details collection)586- [ ] Location autocomplete (Google Maps API)587- [ ] Kundli generation and display588- [ ] Family member management589- [ ] Compatibility matching590- [ ] Dosha detection and remedies591- [ ] Panchang integration592- [ ] Daily horoscope593594### Phase 6: Optimization595- [ ] Cache kundli data (10-60 min TTL)596- [ ] Parallel API calls (async tasks)597- [ ] Compress large kundli context598- [ ] Monitor API usage and costs599- [ ] Implement rate limiting600601### Phase 7: Quality Assurance602- [ ] Validate timezone accuracy603- [ ] Test edge cases (midnight births, DST)604- [ ] Verify dasha calculations605- [ ] Check dosha logic606- [ ] User acceptance testing with astrologers607- [ ] Multilingual testing608609## Best Practices610611### Accuracy First6121. **Timezone is Critical**: Always use accurate timezone offset6132. **Coordinates Matter**: Get precise lat/long from geocoding6143. **Time Format**: Use 24-hour format, validate AM/PM conversions6154. **Date Validation**: Check for valid dates, leap years616617### Data Management6181. **Separate Birth Data from Astrology Data**: Birth details immutable, astro data refreshable6192. **Cache Wisely**: Kundli doesn't change often, cache for hours6203. **Version Kundli Format**: Add version field for future schema changes6214. **Audit Trail**: Log all kundli generations for debugging622623### AI Prompt Engineering6241. **Structured Context**: Use YAML/XML tags for clear sections6252. **Query Classification**: Pre-process query to determine focus area6263. **Citation**: Instruct AI to cite planetary positions in answers6274. **Fallback**: Handle cases where chart doesn't support query628629### User Experience6301. **Progressive Loading**: Show basic chart while detailed analysis loads6312. **Explanation**: Explain astrological terms in simple language6323. **Remedies**: Always provide actionable remedies6334. **Consent**: Privacy for sensitive birth data634635## Common Pitfalls6366371. **Wrong Timezone**: Results in completely different chart6382. **12-hour AM/PM Confusion**: 2:30 PM ≠ 14:30, causes 12-hour error6393. **Ignoring Retrograde**: Planetary retrograde changes interpretation6404. **Static Dasha**: Dasha changes over time, refresh periodically6415. **Oversimplified Predictions**: AI needs detailed context, not just sun sign6426. **Missing Gender Context**: Venus/Jupiter interpretation differs by gender6437. **Ignoring Dosha**: Manglik dosha critical for marriage predictions644645## Framework Adaptations646647### Django648- MongoDB for document storage649- Celery for async API calls650- Django cache for kundli caching651- REST API for frontend652653### FastAPI654- Motor (async MongoDB driver)655- Background tasks or Celery656- Redis caching657- WebSocket for real-time predictions658659### Node.js (Express)660- Mongoose for MongoDB661- Bull for job queue662- Redis caching663- Socket.io for real-time664665### Spring Boot666- Spring Data MongoDB667- Spring Async or RabbitMQ668- Spring Cache669- WebFlux for reactive670671## Related Resources672673- **Vedic Astrology Texts**: Brihat Parashara Hora Shastra, Jaimini Sutras674- **API Providers**: AstrologyAPI.com, Prokerala, GeoVedic675- **Libraries**: Swiss Ephemeris (planetary calculations)676- **Terminology**: https://en.wikipedia.org/wiki/Hindu_astrology677678## Summary679680Building an astrology backend requires:6811. **Domain Knowledge**: Understand houses, planets, dasha, doshas6822. **Accurate Data**: Timezone and coordinates are critical6833. **Structured Transformation**: Convert verbose API data to clean kundli6844. **Rich AI Context**: Provide complete birth chart to LLM6855. **Query Intelligence**: Map user questions to relevant chart sections6866. **Remedies**: Always provide actionable guidance687688This skill provides the patterns and domain knowledge to build production-grade vedic astrology systems with AI integration. Combine with the `ai-integrated-api-backend` skill for complete implementation guidance.689690IMPORTANT ASTRO DATA POINTS: 691- astro_details — Basic birth chart details692- horo_d1_chart_data — Main birth chart (Rashi chart)693- horo_d9_chart_data — Navamsa divisional chart694- planet_chart_data — Detailed planetary positions695- current_vdasha — Current Vimshottari dasha period696- current_vdasha_all — Complete dasha timeline697- manglik — Manglik dosha analysis698- pitra_dosha_report — Pitra dosha analysis699- basic_gem_suggestion — Gemstone recommendations700- rudraksha_suggestion — Rudraksha bead suggestions