Chart basics
Sidereal zodiac in Vedic astrology
Updated
Sidereal zodiac: how the API computes it
Every planet position the API returns is sidereal. The API first works out the tropical longitude, the one most Western tools show. Then it subtracts the ayanamsa, using the Lahiri value for the date.
Today the ayanamsa is a little over 24 degrees. So a planet's sidereal longitude is about 24 degrees less than its tropical one. That is why the Sun is in Aries from about April 14 in the sidereal zodiac, not from March 21.
For most people the sign shifts back by one. A person who reads as Taurus in a Western magazine is often an Aries here. But people born in the last days of a Western sign may stay in the same sign.
The API does not return tropical positions. Lahiri is the default ayanamsa. KP (Krishnamurti) and Raman are available too, with the ayanamsa field.
Each response has a meta block that names the ayanamsa and shows its value at that moment. If you compare results with other software, first check that both use the sidereal zodiac with the same ayanamsa.
Get it from the API
POST /v1/planets
# John Doe, born Aug 15, 1990, 10:30 AM, New York
curl -X POST "https://apiforastrology.com/api/astrology/v1/planets" \
-H "Authorization: Bearer $ASTROLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"year":1990,"month":8,"day":15,"hour":10,"minute":30,"second":0,"latitude":40.7128,"longitude":-74.006,"timezone":"America/New_York"}'{
"meta": {
"ayanamsa": "lahiri",
"ayanamsa_value": 23.7260727,
"julian_day": 2448119.10483,
"ephemeris": "JPL DE440s",
"node": "true",
"timezone": {
"source": "zone",
"offset_hours": -4,
"zone": "America/New_York",
"abbreviation": "EDT",
"dst": true,
"dst_hours": 1,
"ambiguous_resolved_by_fold": null,
"note": "read from the IANA tz database at this instant, so daylight saving and historical offset changes are included"
}
},
"ascendant": {
"name": "Ascendant",
"longitude": 169.934155,
"sign": "Virgo",
"sign_number": 6,
"degree_in_sign": 19.934155,
"degree_dms": "19 : 56 : 03",
"house": 1,
"nakshatra": "Hast",
"nakshatra_lord": "Moon",
"pada": 3,
"speed": 0,
"retrograde": false,
"combust": false,
"dignity": "n/a",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 6,
"bhaga": false,
"bhaga_degree": 9,
"bhaga_by_element": false,
"bhaga_degree_by_element": 14,
"sources_agree": true,
"orb_degrees": 1
}
},
"positions": [
{
"name": "Sun",
"longitude": 118.7753409,
"sign": "Cancer",
"sign_number": 4,
"degree_in_sign": 28.7753409,
"degree_dms": "28 : 46 : 31",
"house": 11,
"nakshatra": "Ashlesha",
"nakshatra_lord": "Mercury",
"pada": 4,
"speed": 0.9610665,
"retrograde": false,
"combust": false,
"dignity": "friend",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 9,
"bhaga": false,
"bhaga_degree": 8,
"bhaga_by_element": false,
"bhaga_degree_by_element": 7,
"sources_agree": true,
"orb_degrees": 1
}
},
{
"name": "Moon",
"longitude": 54.5750352,
"sign": "Taurus",
"sign_number": 2,
"degree_in_sign": 24.5750352,
"degree_dms": "24 : 34 : 30",
"house": 9,
"nakshatra": "Mrigashira",
"nakshatra_lord": "Mars",
"pada": 1,
"speed": 14.258194,
"retrograde": false,
"combust": false,
"dignity": "mulatrikona",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 8,
"bhaga": false,
"bhaga_degree": 14,
"bhaga_by_element": false,
"bhaga_degree_by_element": 14,
"sources_agree": true,
"orb_degrees": 1
}
},
{
"name": "Mars",
"longitude": 27.7149328,
"sign": "Aries",
"sign_number": 1,
"degree_in_sign": 27.7149328,
"degree_dms": "27 : 42 : 54",
"house": 8,
"nakshatra": "Krittika",
"nakshatra_lord": "Sun",
"pada": 1,
"speed": 0.5753266,
"retrograde": false,
"combust": false,
"dignity": "own sign",
"vargottama": false,
"pushkara": {
"navamsa": true,
"navamsa_number": 9,
"bhaga": false,
"bhaga_degree": 21,
"bhaga_by_element": false,
"bhaga_degree_by_element": 21,
"sources_agree": true,
"orb_degrees": 1
}
}
],
"planetary_war": []
}Where the API returns it
| POST | /v1/planets | Planet positions and the ascendant |
| POST | /v1/varshaphal | The Tajik annual chart (varshaphal) for one year |
What the API reference says
Each line is quoted from the reference page of the endpoint named above it.
- POST /v1/planets · Planet positions and the ascendantFor each one you get its sidereal longitude, sign and house.
- POST /v1/varshaphal · The Tajik annual chart (varshaphal) for one yearThe moment is found to the second, in the sidereal zodiac.
Feature page: Kundli and birth charts. Who uses it: Astrology apps. The classical rules the API follows are in the rulebook.
How we check the numbers
Every value here starts from planet positions worked out from NASA JPL planet data (DE440). We test them against NASA JPL Horizons, NASA's planet position service. On 25,571 positions from 1850 to 2149, the Sun and planets agree within 0.001 arc seconds. The Moon agrees within 0.011. On 2,000 random birth charts, the rising sign agrees with Swiss Ephemeris within 0.004 arc seconds. An arc second is 1/3,600 of a degree. A practicing astrologer reviews the rules behind these answers. See how we test.
Related terms
Free tools
See it with your own details
Runs on the same API call. Enter your details and see the answer in your browser.
Free kundli
Your Vedic birth chart: the rising sign and all nine planets, with sign, house and nakshatra.
Make my kundli
From the blog

· 8 min read
Moon Sign, Sun Sign and Rising Sign: How Each Is Found
The birth details an app needs for the Moon sign, Sun sign and rising sign.
Read
· 8 min read
How Nakshatra Is Calculated: From Moon Degree to Pada
How an app turns the Moon's position into a birth star and pada.
Read
· 8 min read
Vedic vs Western Astrology: What Changes in the Code
What a developer must change to add Vedic charts.
Read
Astrology API
Get these values from the API
Create a free test key and call any endpoint on this page. Or try a request in the API reference first.
Your first answer
John Doe, New York
- RisingVirgoHast
- SunCancerAshlesha
- MoonTaurusMrigashira
- MarsAriesKrittika
Real API output. A free test key gets the same answer.
01
Test key: 1,000 test calls a month to build with
02
Free plan: 2,000 live calls a month, no card needed
03
Open rules: every rule is published, so you can check any answer