AstroNest Developer API

Ephemeris API on NASA JPL DE440

Raw astronomy for your own calculations: longitude, latitude, distance and speed of each body at a moment, the ascendant, MC and house cusps, ayanamsa values, sunrise and sunset, and positions over a range of dates.

Positions come from NASA JPL DE440, tropical or sidereal, so you can ship astrology features without licensing the Swiss Ephemeris for commercial use.

POST /v1/ephemeris/positions · 0.1 credit

Positions at a moment

Sun, Moon, planets and lunar nodes at one moment: longitude, latitude, distance, speed and retrograde flag, with sign, and nakṣatra and its quarter when sidereal. `equatorial: true` adds apparent right ascension and declination.

Request (works as-is with a sandbox key):

curl -X POST https://www.astronest.ai/api/developer/v1/ephemeris/positions \
  -H "Authorization: Bearer astro_sandbox_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"datetime":"2026-10-06T06:00:00Z","bodies":["Sun","Moon","Mars","Jupiter","Saturn","TrueNode"],"zodiac":"sidereal","ayanamsa":"lahiri"}'

Response (sandbox sample, long lists shortened):

{
  "requestId": "sandbox",
  "engineVersion": "astro-nest-v1-public",
  "timestamp": "2026-10-06T23:34:45.516Z",
  "usage": {
    "units_charged": 1,
    "remaining_credits": 0
  },
  "disclaimer": "Symbolic interpretation only. Not medical, legal, financial, or psychological advice.",
  "datetime": "2026-10-06T06:00:00.000Z",
  "julianDayUT": 2461319.75,
  "zodiac": "sidereal",
  "ayanamsa": "lahiri",
  "ayanamsaValue": 24.2309468,
  "positions": [
    {
      "body": "Sun",
      "longitude": 168.773295,
      "latitude": 0.000064,
      "distanceAu": 0.99985855,
      "speed": 0.985996,
      "retrograde": false,
      "sign": "Virgo",
      "signNumber": 6,
      "degreeInSign": 18.773295,
      "nakshatra": "Hasta",
      "nakshatraNumber": 13,
      "pada": 3
    },
    {
      "body": "Moon",
      "longitude": 113.79486,
      "latitude": 0.994093,
      "distanceAu": 0.00250125,
      "speed": 13.826015,
      "retrograde": false,
      "sign": "Cancer",
      "signNumber": 4,
      "degreeInSign": 23.79486,
      "nakshatra": "Ashlesha",
      "nakshatraNumber": 9,
      "pada": 3
    },
    {
      "body": "Mars",
      "longitude": 100.486957,
      "latitude": 1.106765,
      "distanceAu": 1.62885854,
      "speed": 0.57194,
      "retrograde": false,
      "sign": "Cancer",
      "signNumber": 4,
      "degreeInSign": 10.486957,
      "nakshatra": "Pushya",
      "nakshatraNumber": 8,
      "pada": 3
    },
    "… 3 more"
  ],
  "ephemeris": {
    "name": "AstroNest Ephemeris",
    "source": "NASA JPL DE440 (DE440s, plus an exact DE440 extract for 1800–1850)",
    "coverage": "1800-01-02 to 2149-12-31 UTC"
  }
}

Every field: /v1/ephemeris/positions in the reference.

POST /v1/ephemeris/angles · 0.1 credit

Ascendant, MC and house cusps

Ascendant, midheaven and twelve cusps for a moment and place. Placidus is undefined beyond the polar circles at some moments; the call then returns 422 houses_undefined_at_latitude.

Request (works as-is with a sandbox key):

curl -X POST https://www.astronest.ai/api/developer/v1/ephemeris/angles \
  -H "Authorization: Bearer astro_sandbox_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"datetime":"1990-05-12T14:35:00+05:30","latitude":28.6139,"longitude":77.209,"houseSystem":"placidus"}'

Response (sandbox sample, long lists shortened):

{
  "requestId": "sandbox",
  "engineVersion": "astro-nest-v1-public",
  "timestamp": "2026-10-06T23:34:45.530Z",
  "usage": {
    "units_charged": 1,
    "remaining_credits": 0
  },
  "disclaimer": "Symbolic interpretation only. Not medical, legal, financial, or psychological advice.",
  "datetime": "1990-05-12T09:05:00.000Z",
  "latitude": 28.6139,
  "longitude": 77.209,
  "zodiac": "sidereal",
  "ayanamsa": "lahiri",
  "ayanamsaValue": 23.72243095,
  "houseSystem": "placidus",
  "ascendant": {
    "longitude": 150.404163,
    "sign": "Virgo",
    "signNumber": 6,
    "degreeInSign": 0.404163,
    "nakshatra": "Uttara Phalguni",
    "nakshatraNumber": 12,
    "pada": 2
  },
  "midheaven": {
    "longitude": 60.158264,
    "sign": "Gemini",
    "signNumber": 3,
    "degreeInSign": 0.158264,
    "nakshatra": "Mrigashira",
    "nakshatraNumber": 5,
    "pada": 3
  },
  "cusps": [
    {
      "house": 1,
      "longitude": 150.404163,
      "sign": "Virgo",
      "signNumber": 6,
      "degreeInSign": 0.404163,
      "nakshatra": "Uttara Phalguni",
      "nakshatraNumber": 12,
      "pada": 2
    },
    {
      "house": 2,
      "longitude": 178.14046,
      "sign": "Virgo",
      "signNumber": 6,
      "degreeInSign": 28.14046,
      "nakshatra": "Chitra",
      "nakshatraNumber": 14,
      "pada": 2
    },
    {
      "house": 3,
      "longitude": 208.551549,
      "sign": "Libra",
      "signNumber": 7,
      "degreeInSign": 28.551549,
      "nakshatra": "Vishakha",
      "nakshatraNumber": 16,
      "pada": 3
    },
    "… 9 more"
  ],
  "ephemeris": {
    "name": "AstroNest Ephemeris",
    "source": "NASA JPL DE440 (DE440s, plus an exact DE440 extract for 1800–1850)",
    "coverage": "1800-01-02 to 2149-12-31 UTC"
  }
}

Every field: /v1/ephemeris/angles in the reference.

POST /v1/ephemeris/sunrise · 0.1 credit

Sunrise and sunset

Sunrise, sunset and the next sunrise for a local date and place: upper limb at the sea-level horizon with 36.6′ refraction. The Vedic day runs from sunrise to the next sunrise.

Request (works as-is with a sandbox key):

curl -X POST https://www.astronest.ai/api/developer/v1/ephemeris/sunrise \
  -H "Authorization: Bearer astro_sandbox_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-06","timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}'

Response (sandbox sample, long lists shortened):

{
  "requestId": "sandbox",
  "engineVersion": "astro-nest-v1-public",
  "timestamp": "2026-10-06T23:34:45.909Z",
  "usage": {
    "units_charged": 1,
    "remaining_credits": 0
  },
  "disclaimer": "Symbolic interpretation only. Not medical, legal, financial, or psychological advice.",
  "date": "2026-10-06",
  "timezone": "Asia/Kolkata",
  "latitude": 28.6139,
  "longitude": 77.209,
  "convention": "Upper limb of the Sun at the sea-level horizon, 36.6′ refraction.",
  "sunrise": {
    "utc": "2026-10-06T00:46:27.531Z",
    "local": "06:16:27"
  },
  "sunset": {
    "utc": "2026-10-06T12:31:48.710Z",
    "local": "18:01:48"
  },
  "nextSunrise": {
    "utc": "2026-10-07T00:47:00.457Z",
    "local": "06:17:00"
  },
  "dayLengthMinutes": 705.4,
  "ephemeris": {
    "name": "AstroNest Ephemeris",
    "source": "NASA JPL DE440 (DE440s, plus an exact DE440 extract for 1800–1850)",
    "coverage": "1800-01-02 to 2149-12-31 UTC"
  }
}

Every field: /v1/ephemeris/sunrise in the reference.

POST /v1/ephemeris/series · 1 credit

Positions over a range

Positions from start to end (inclusive) every stepMinutes, for transit tables and station finding. At most 1,000 points (too_many_points beyond). A 365-point daily table costs 4 credits.

Request (works as-is with a sandbox key):

curl -X POST https://www.astronest.ai/api/developer/v1/ephemeris/series \
  -H "Authorization: Bearer astro_sandbox_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start":"2026-10-01T00:00:00Z","end":"2026-10-10T00:00:00Z","stepMinutes":1440,"bodies":["Mercury","Venus"]}'

Response (sandbox sample, long lists shortened):

{
  "requestId": "sandbox",
  "engineVersion": "astro-nest-v1-public",
  "timestamp": "2026-10-06T23:34:45.932Z",
  "usage": {
    "units_charged": 1,
    "remaining_credits": 0
  },
  "disclaimer": "Symbolic interpretation only. Not medical, legal, financial, or psychological advice.",
  "start": "2026-10-01T00:00:00.000Z",
  "stepMinutes": 1440,
  "pointCount": 10,
  "bodies": [
    "Mercury",
    "Venus"
  ],
  "zodiac": "sidereal",
  "ayanamsa": "lahiri",
  "ayanamsaValue": 24.23074599,
  "points": [
    {
      "datetime": "2026-10-01T00:00:00.000Z",
      "Mercury": {
        "longitude": 186.446328,
        "latitude": -1.747687,
        "speed": 1.324604,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 6.446328,
        "nakshatra": "Chitra",
        "nakshatraNumber": 14,
        "pada": 4
      },
      "Venus": {
        "longitude": 194.156658,
        "latitude": -7.060433,
        "speed": 0.087478,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 14.156658,
        "nakshatra": "Swati",
        "nakshatraNumber": 15,
        "pada": 3
      }
    },
    {
      "datetime": "2026-10-02T00:00:00.000Z",
      "Mercury": {
        "longitude": 187.760385,
        "latitude": -1.865938,
        "speed": 1.303355,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 7.760385,
        "nakshatra": "Swati",
        "nakshatraNumber": 15,
        "pada": 1
      },
      "Venus": {
        "longitude": 194.225396,
        "latitude": -7.145989,
        "speed": 0.049881,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 14.225396,
        "nakshatra": "Swati",
        "nakshatraNumber": 15,
        "pada": 3
      }
    },
    {
      "datetime": "2026-10-03T00:00:00.000Z",
      "Mercury": {
        "longitude": 189.0527,
        "latitude": -1.981974,
        "speed": 1.281093,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 9.0527,
        "nakshatra": "Swati",
        "nakshatraNumber": 15,
        "pada": 1
      },
      "Venus": {
        "longitude": 194.256201,
        "latitude": -7.225521,
        "speed": 0.011626,
        "retrograde": false,
        "sign": "Libra",
        "signNumber": 7,
        "degreeInSign": 14.256201,
        "nakshatra": "Swati",
        "nakshatraNumber": 15,
        "pada": 3
      }
    },
    "… 7 more"
  ],
  "ephemeris": {
    "name": "AstroNest Ephemeris",
    "source": "NASA JPL DE440 (DE440s, plus an exact DE440 extract for 1800–1850)",
    "coverage": "1800-01-02 to 2149-12-31 UTC"
  }
}

Every field: /v1/ephemeris/series in the reference.

Why AstroNest

Deterministic interpretation

Interpret, guidance, compatibility and guna milan call no language model: the same chart always gets the same reading. Only forecast and timing are voiced by a model, and they are marked as such.

Pricing

Sandbox keys are free, with no time limit, and return the samples above. A live key starts with 100 free credits; after that you buy credit packs. Each endpoint's cost in credits is shown above. Pricing

Questions

Which ephemeris is it?
NASA JPL DE440.
Tropical or sidereal?
Either, per request; for sidereal, pass the ayanāṁśa you want from the supported set (the `ayanamsa` input).
What date range is covered?
1800 to 2149 UTC. Asteroids and fixed stars are not covered.
Do I need a Swiss Ephemeris licence?
No. The positions do not come from the Swiss Ephemeris.

Readings are symbolic interpretation, not medical, legal, financial or psychological advice.

More from the API