curl -X POST https://api.occultapi.com/api/astro/return/solar/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"1990-05-10T19:55:00+05:30","timezone_as_float":5.5,"search_from":"2026-01-01T00:00:00+00:00","count":3}'The exact instant the Sun regains the ecliptic longitude it held at birth — the astrological birthday, and the chart read for the year ahead. This is usually NOT the calendar birthday. The return drifts about six hours a year against the calendar (that is the quarter-day that makes leap years), so it can fall a day either side. Ask for several consecutive years with `count`, and start somewhere other than birth with `search_from`. Every result publishes `error_arcseconds`, the distance between where the Sun actually was and the natal degree, so you can see the answer is exact rather than trust it.
| Field | Type | Required | Notes |
|---|---|---|---|
| date_time | string (date-time) | required | The moment to calculate for, ISO 8601. ALWAYS include an offset or a trailing Z - a value with no zone is read as Asia/Kolkata (UTC+05:30), not UTC, and can return the previous day's result with a 200. '2026-09-01T06:00:00Z' and '2026-09-01 06:00:00' are different instants and give different answers. |
| ayanamsa | string | optional | TROPICAL (the default) or an ayanamsa name such as LAHIRI, KRISHNAMURTI, RAMAN or FAGAN_BRADLEY, case-insensitive. A sidereal ayanamsa subtracts its value at each moment from every returned longitude. |
| count | integer | optional | How many consecutive returns to report, at most 24. min 1 · max 24 |
| exact_passes | boolean | optional | Use the station-aware search: finds every pass, including two a few hours apart either side of a station, and groups passes by the geocentric retrograde loop (Mercury and Venus included). Adds "exact_passes": true to the response. Default false keeps the original search unchanged. |
| include_asteroid_lilith | boolean | optional | Add the asteroid (1181) Lilith, a different body from Black Moon Lilith, named "asteroid_lilith", after the other bodies. |
| include_lilith | boolean | optional | Add Black Moon Lilith (the mean lunar apogee) as a body named "lilith", after the other bodies. |
| keys | array | optional | Which calculations to return, as a list of names. See the key table for this endpoint; an unrecognised name rejects the whole request. One call costs one credit however many keys you ask for, so request everything you need at once rather than making several calls. |
| latitude | number (double) | optional | Latitude of the place, in decimal degrees. Positive is north, negative is south. Example: 26.9124 for Jaipur, 40.7128 for New York. Minutes and seconds are not accepted - convert first. |
| longitude | number (double) | optional | Longitude of the place, in decimal degrees. Positive is east, negative is west. Example: 75.7873 for Jaipur, -74.0060 for New York. Note the sign: a missing minus puts New York in China. |
| search_from | string (date-time) | optional | Start looking here instead of at the birth moment. |
| timezone_as_float | number (double) | optional | UTC offset of the place, in hours, as a decimal. Example: 5.5 for India (UTC+05:30), -5 for New York in winter, 5.75 for Nepal. This is NOT validated against date_time - if the two disagree you get a successful response for the wrong moment, so derive both from the same source. Use the offset in force on that date, not today's: a summer birth in a country with daylight saving needs the summer offset. min -12 · max 14 |