Vedic astrology calculation service ported from PHP/Symfony to Node.js + Express.
Uses sweph npm package (Swiss Ephemeris) for astronomical calculations.
/api/ping
Health check. Verifies the server is running.
| Parameter | Type | Required | Description |
|---|---|---|---|
| none | No parameters required |
HTTP 200
{"pong":"success"}
/api/calculate
Full chart calculation. Returns planetary positions, houses, and optional detailed analysis.
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | float | required | Geographic latitude of location (e.g. 28.6139) |
| longitude | float | required | Geographic longitude of location (e.g. 77.2090) |
| year | int | required | Year (e.g. 2023) |
| month | int | required | Month (1-12) |
| day | int | required | Day of month (1-31) |
| hour | int | required | Hour (0-23) |
| min | int | required | Minute (0-59) |
| sec | int | required | Second (0-59) |
| time_zone | string | required | Timezone offset (e.g. +05:30) or IANA name (e.g. Asia/Kolkata) |
| varga | string | optional | Comma-separated varga divisions. Default D1. E.g. D1,D9 |
| infolevel | string | optional | Comma-separated info sections. Values: basic, panchanga, ashtakavarga, grahabala, rashibala, yogas, transit, avatamsa, divisional, bhava |
| nesting | int | optional | Nesting level for divisional charts. Default 0 |
| dst_hour | int | optional | DST hour offset. Default 0 |
| dst_min | int | optional | DST minute offset. Default 0 |
HTTP 200
{
"chart": {
"data": {
"graha": { ... }, // planet positions, speed, sign, nakshatra, etc.
"bhava": { ... }, // house cusps, bhavas
"lagna": { ... }, // ascendant details
"varga": { "D1": ..., "D9": ... }, // divisional charts
"panchanga": { ... }, // tithi, nakshatra, yoga, karana, vaara
"ashtakavarga": { ... }, // Sarvashtakavarga, Bhinna ashtakavarga
"grahabala": { ... }, // Shadbala, six-fold strength
"rashibala": { ... }, // sign strengths
"yogas": { ... }, // planetary combinations
"transit": { ... } // current transit analysis
},
"params": { ... }, // input parameters used
"errors": { ... } // any calculation warnings/errors
},
"duration_of_response": 0.452,
"created_at": "2026-06-10 12:00:00"
}
/api/now
Current moment chart. Same calculation as /api/calculate but uses the current time.
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | float | optional | Default 35.7219 (Tehran) |
| longitude | float | optional | Default 51.3347 (Tehran) |
| time_zone | string | optional | Default +03:30 (Tehran) |
All other parameters (varga, infolevel, etc.) are the same as /api/calculate.
curl "http://localhost:8080/api/now?latitude=28.6139&longitude=77.2090&time_zone=%2B05:30"
/api/chart/svg
Chart SVG rendering. Generates a visual Vedic astrology chart as SVG.
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | float | required | Geographic latitude |
| longitude | float | required | Geographic longitude |
| year | int | required | Year |
| month | int | required | Month (1-12) |
| day | int | required | Day of month (1-31) |
| hour | int | required | Hour (0-23) |
| min | int | required | Minute (0-59) |
| sec | int | required | Second (0-59) |
| time_zone | string | required | Timezone offset or IANA name |
| style | string | optional | Chart style: north (default), south, or east |
| varga | string | optional | Varga division. Default D1 |
| size | int | optional | Chart size in pixels. Default 500 |
curl "http://localhost:8080/api/chart/svg?latitude=28.6139&longitude=77.2090&year=2023&month=12&day=25&hour=12&min=0&sec=0&time_zone=%2B05:30&style=north&size=500"
When calling /api/calculate or /api/now, specify infolevel as a comma-separated list to control which analysis sections are included:
| Level | Description | Status |
|---|---|---|
basic | Basic planetary data: longitude, speed, sign, nakshatra, lord, etc. | Working |
panchanga | Five limbs of time: tithi, nakshatra, yoga, karana, vaara | Working |
ashtakavarga | Sarvashtakavarga and planet-wise Bhinna ashtakavarga | Working |
grahabala | Planetary strengths (Shadbala, digbala, etc.) | Working |
rashibala | Sign strengths | Working |
yogas | Planetary combinations (Raja yoga, Dhana yoga, etc.) | Working |
transit | Current transit analysis with house placement | Working |
When calling /api/calculate, the varga parameter accepts comma-separated varga codes. Each varga produces a full divisional chart:
| Varga | Division | Signs Part |
|---|---|---|
D1 | Rashi (birth chart) | 1/1 |
D2 | Hora | 1/2 |
D3 | Drekkana | 1/3 |
D4 | Chaturthamsa | 1/4 |
D5 | Panchamsa | 1/5 |
D6 | Shasthamsa | 1/6 |
D7 | Saptamsa | 1/7 |
D8 | Ashtamsa | 1/8 |
D9 | Navamsa | 1/9 |
D10 | Dasamsa | 1/10 |
D12 | Dwadasamsa | 1/12 |
D16 | Shodasamsa | 1/16 |
D20 | Vimsamsa | 1/20 |
D24 | Chaturvimsa | 1/24 |
D27 | Saptavimsamsa | 1/27 |
D30 | Trimsamsa | 1/30 |
D40 | Chatvarimsamsa | 1/40 |
D45 | Panchachatvarimsamsa | 1/45 |
D60 | Shashtiamsa | 1/60 |
| Style | Description | Status |
|---|---|---|
north | North Indian diamond style (Bhava-based, houses fixed) | Working |
south | South Indian style (Rashi fixed, houses rotate) | Working |
east | East Indian style (rectangle, Rashi fixed around Lagna) | Working |
curl http://localhost:8080/api/ping
curl "http://localhost:8080/api/calculate?latitude=28.6139&longitude=77.2090&year=2023&month=12&day=25&hour=12&min=0&sec=0&time_zone=%2B05:30&varga=D1,D9&infolevel=basic,panchanga,transit"
curl "http://localhost:8080/api/now?latitude=28.6139&longitude=77.2090&time_zone=%2B05:30"
curl "http://localhost:8080/api/chart/svg?latitude=28.6139&longitude=77.2090&year=2023&month=12&day=25&hour=12&min=0&sec=0&time_zone=%2B05:30&style=north"
| Item | Value |
|---|---|
| Port | 8080 |
| Framework | Express.js |
| Ephemeris | sweph@2.10.3-5 (Swiss Ephemeris) |
| Zodiac | Sidereal (Lahiri ayanamsha) |
| House System | Placidus |
| Module System | ESM |
| License | GPL-3.0 |