New Numerology API

Chart basics

Ephemeris in Vedic astrology

An ephemeris is a table or model of where the Sun, Moon and planets are at each moment. The API calculates positions from NASA JPL's DE440s ephemeris, which covers the years 1850 to 2149. That range is why the API accepts dates only in those years.

Updated

More terms in Chart basics

© API for Astrology (apiforastrology.com). "Glossary houses chart". All rights reserved. Not to be copied or reused.123456789101112A North Indian chart has 12 houses

Ephemeris: how the API computes it

The API reads the DE440s ephemeris from NASA's Jet Propulsion Laboratory for the Sun, Moon and planets. The file covers the years 1850 to 2149. So the API accepts birth dates and transit dates only in that range. It refuses anything outside it with a clear error.

The ephemeris gives each body's position in space at a given moment. The API turns that into an ecliptic longitude, the body's place along the Sun's yearly path. Then it subtracts the ayanamsa to make it sidereal, or measured against the stars.

The ayanamsa is the gap between the Western and Vedic zodiacs, and Lahiri is the default. That gives the sign, degree, nakshatra (star segment) and pada (quarter of a nakshatra). Rahu and Ketu are worked out from the Moon's orbit, since they are points and not bodies.

We check the results against Swiss Ephemeris, and the response meta shows the ayanamsa used. The ephemeris is built in, so every call is calculated from scratch. It does not depend on an outside service being online.

The same tables serve the planets, the ascendant, divisional charts (charts made by splitting each sign into parts) and the transit endpoints.

Get it from the API

Planet positions and the ascendant. Here is the call to API for Astrology (apiforastrology.com) for our sample, John Doe, born Aug 15, 1990, 10:30 AM, New York.

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"}'
Answer (long lists shortened)200 OK
{
  "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/planetsPlanet positions and the ascendant
GET/v1/metaSupported options and limits
POST/v1/varshaphalThe Tajik annual chart (varshaphal) for one year
POST/v1/varshaphal/dinaTajik daily return (dina pravesh) for a day or a short window
POST/v1/ascendantThe ascendant only
POST/v1/chart/sudarshanaSudarshana chakra: the chart from the ascendant, Moon and Sun

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

POST /v1/planets200 OK
  • RisingVirgoHast
  • SunCancerAshlesha
  • MoonTaurusMrigashira
  • MarsAriesKrittika

Real API output. A free test key gets the same answer.

  1. 01

    Test key: 1,000 test calls a month to build with

  2. 02

    Free plan: 2,000 live calls a month, no card needed

  3. 03

    Open rules: every rule is published, so you can check any answer