/api/astro/transit/solar-ingress/1 creditSolar ingress
When the Sun next reaches a given ecliptic longitude. The calculation behind every solar ingress question: pass 0 for the Aries ingress, 90 for Cancer, 180 for Libra, 270 for Capricorn — or any degree at all. Crossing 0 degrees of Aries IS the March equinox, and this endpoint returns the same instant /api/astro/seasons/ does. Forward search only. The engine's backward search is unreliable — for a target of 0 degrees it returns a date identical to the forward answer, and for 90 a date a year later — so it is not offered. Distinct from /api/astro/sankranti/, which gives the SIDEREAL Sankranti dates used by the Hindu calendar. The two differ by the ayanamsa.
https://yogataraapi.prahlad.app/api/astro/transit/solar-ingress/Authentication
Send your key in the X-API-Key header. Keys are server-side credentials — never put one in browser JavaScript or a mobile app.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonRequest fields
| 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. |
| celestial | string | optional | sunmoonmercuryvenusmarsjupitersaturnuranusneptuneplutomean_nodetrue_node |
| celestial1 | string | optional | sunmoonmercuryvenusmarsjupitersaturnuranusneptuneplutomean_nodetrue_node |
| celestial2 | string | optional | sunmoonmercuryvenusmarsjupitersaturnuranusneptuneplutomean_nodetrue_node |
| datetime_end | string (date-time) | optional | |
| datetime_start | string (date-time) | optional | |
| degr | number (double) | optional | min 0 · max 360 |
| 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. min -90 · max 90 |
| 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. min -180 · max 180 |
| planet | string | optional | sunmoonmercuryvenusmarsjupitersaturnuranusneptuneplutomean_nodetrue_node |
| 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 |
| tz | number (double) | optional | UTC offset the returned times are expressed in. min -12 · max 14 |
| when | string | optional | Forward only; see the module docstring on `before`. after |
| x2cross | number (double) | optional | Ecliptic longitude to cross, 0-360 from 0 Aries. min 0 · max 360 |
Example request
curl -X POST https://yogataraapi.prahlad.app/api/astro/transit/solar-ingress/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2025-01-01T00:00:00+00:00","tz":0,"when":"after","x2cross":0}'Response
{
"data": {
"body": "sun",
"target_longitude": 0,
"direction": "after",
"crossing": "2025-03-20T09:01:29Z"
},
"status": 200,
"is_error": false,
"message": "successful"
}Captured from a real call using the exact request above. Results sit under data.
Errors
Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.