Chart basics
True and mean node in Vedic astrology
Updated
True and mean node: how the API computes it
The mean node moves steadily backward at a fixed average speed, about 19.3 degrees a year. The true node follows the Moon's actual orbit. So it sometimes speeds up, slows down and even moves forward for a short time.
At any moment the two can be up to about 1.5 degrees apart. That is not much, but it can change the nakshatra pada of Rahu (the quarter of its star segment). Once in a while it can change its sign.
The API uses the true node in its chart endpoints. The meta block of each response says which node was used. Some endpoints take a node setting, so you can ask for the mean node instead.
Rahu and Ketu are always reported as retrograde, or moving backward (CH-10). But the speed field keeps the real motion. So with the true node, you may see a small positive speed on some days.
If another tool gives you a slightly different Rahu, first check which node it uses. Ketu is always exactly 180 degrees from Rahu either way.
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/karma | Karma reading: what you bring and where you are headed |
| GET | /v1/meta | Supported options and limits |
| POST | /v1/varshaphal | The Tajik annual chart (varshaphal) for one year |
| POST | /v1/ascendant | The ascendant only |
| POST | /v1/chart/sudarshana | Sudarshana chakra: the chart from the ascendant, Moon and Sun |
What the API reference says
Each line is quoted from the reference page of the endpoint named above it.
- POST /v1/karma · Karma reading: what you bring and where you are headedRahu and Ketu are the lunar nodes.
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
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

