Перейти до вмісту
AstroWay/api v2.325.0 · docs
усі системи в нормі

Hindu calendar: vrats (Ekadashi with parana, Pradosh, Sankashti, Purnima, Amavasya, Masik Shivaratri)

POST
/vedic/calendar/vrats
request.sh
curl -X POST https://api.astroway.info/v1/vedic/calendar/vrats \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{ "year": 2026, "latitude": 28.6139, "longitude": 77.209, "timezone": "Asia/Kolkata", "types": [ "ekadashi", "sankashti" ] }'

Every vrat of the year for the place. Ekadashi: the Smarta day (Ekadashi at sunrise; two sunrises: the first, unless Dashami touches it at arunodaya; Dwadashi with no sunrise: the day before) and the Vaishnava day where it differs (Dashami-viddha at arunodaya refused, Gauna day, Vanjuli mahadwadashi), each with its parana window outside Hari Vasara and within Dwadashi. Pradosh (Trayodashi at pradosha, named by weekday), Sankashti Chaturthi (Krishna Chaturthi at moonrise, with the moonrise), Masik Shivaratri (Krishna Chaturdashi at nishita), Purnima vrat and bath day, Darsha Amavasya and the Amavasya bath day. types narrows the list. Every New Delhi 2025 and 2026 date matches drikpanchang; parana windows within a minute.

fields
string

Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.

Example
planets.name,planets.longitude
precision
integer
<= 15

Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.

Example
4
Idempotency-Key
string
>= 1 characters <= 255 characters /^[\x21-\x7E]+$/

Unique per logical operation, kept across retries. For 24 hours from the first request, a repeat with the same key, method, path, body and query string returns the stored response with Idempotent-Replayed: true and costs 0 credits. The same key with a different body or query string is a 409 IDEMPOTENCY_KEY_REUSED; a repeat while the first is still running is a 409 IDEMPOTENCY_IN_PROGRESS. Only 2xx responses are kept. See /idempotency/.

Example
01HXY2A7ZM0ABCDEF
Media type application/json

A Gregorian year and a place for the vrat calendar.

object
year required

Gregorian year, 1900 to 2100. Entries are those whose date falls in this year.

integer
>= 1900 <= 2100
latitude required

Latitude in decimal degrees, north positive. Between -66 and 66: further out the Sun does not rise on some days and a Hindu day has no start.

number
nullable >= -66 <= 66
longitude required

Longitude in decimal degrees, east positive.

number
nullable >= -180 <= 180
timezone

IANA zone name such as Asia/Kolkata, America/New_York or Europe/Kyiv, or auto (default) to look it up from the coordinates. Resolved day by day: each day is read on the offset that zone kept that day, so summer time is followed.

string
>= 1 characters <= 64 characters
timezoneOffset

A fixed offset in hours instead of a zone, for the whole year. Ignored when timezone is sent.

number
nullable >= -14 <= 14
ayanamsaId
number
nullable
ayanamsa

Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.

string
Allowed values: fagan-bradley lahiri de-luce raman krishnamurti kp yukteshwar jn-bhasin true-citra djwhal-khul
types

Only these vrat types: ekadashi, pradosh, sankashti, purnima, amavasya, masik-shivaratri. All when omitted.

Array<string>
<= 6 items
Allowed values: ekadashi pradosh sankashti purnima amavasya masik-shivaratri
Example
{
"year": 2026,
"latitude": 28.6139,
"longitude": 77.209,
"timezone": "Asia/Kolkata",
"types": [
"ekadashi",
"sankashti"
]
}

Successful calculation

Media type application/json
object
ok
boolean
data
object
year
number
nullable
place
object
latitude
number
nullable
longitude
number
nullable
timezone
string
nullable
timezoneOffset
nullable
ayanamsaId
number
nullable
types
Array<string>
nullable
count
number
nullable
vrats
Array<object>
nullable
object
type
string
nullable
name
string
nullable
date
string
nullable
observance
nullable
rule
string
nullable
source
string
nullable
kala
string
nullable
observedWindow
nullable
tithi
object
number
number
nullable
name
string
nullable
paksha
string
nullable
start
string
nullable
end
string
nullable
month
object
amanta
string
nullable
purnimanta
string
nullable
moonrise
string
nullable
Example
{
"ok": true,
"data": {
"year": 2026,
"place": {
"latitude": 28.6139,
"longitude": 77.209,
"timezone": "Asia/Kolkata",
"timezoneOffset": null,
"ayanamsaId": 1
},
"types": [
"ekadashi",
"sankashti"
],
"count": 2,
"vrats": [
{
"type": "sankashti",
"name": "Lambodara Sankashti",
"date": "2026-01-06",
"observance": null,
"rule": "Krishna Chaturthi in force at moonrise, when the fast is broken; when it holds at no moonrise, the day it ends.",
"source": "Ganesha Purana (Sankashta Chaturthi vrata); drikpanchang.com convention",
"kala": "moonrise",
"observedWindow": null,
"tithi": {
"number": 19,
"name": "Chaturthi",
"paksha": "krishna",
"start": "2026-01-06T08:02:00+05:30",
"end": "2026-01-07T06:53:00+05:30"
},
"month": {
"amanta": "Pausha",
"purnimanta": "Magha"
},
"moonrise": "2026-01-06T20:59:00+05:30"
},
{
"type": "ekadashi",
"name": "Shattila Ekadashi",
"date": "2026-01-14",
"observance": "both",
"rule": "Ekadashi in force at sunrise. Vaishnava: Ekadashi in force at sunrise, Dashami not at arunodaya.",
"source": "Hari Bhakti Vilasa 12-13; Dharmasindhu, pariccheda 1 (Ekadashi nirnaya); parana per drikpanchang.com",
"kala": "sunrise",
"observedWindow": null,
"tithi": {
"number": 26,
"name": "Ekadashi",
"paksha": "krishna",
"start": "2026-01-13T15:18:00+05:30",
"end": "2026-01-14T17:53:00+05:30"
},
"month": {
"amanta": "Pausha",
"purnimanta": "Magha"
},
"parana": {
"date": "2026-01-15",
"start": "2026-01-15T07:15:00+05:30",
"end": "2026-01-15T09:21:00+05:30",
"rule": "Pratahkala, within Dwadashi.",
"dwadashiEnds": "2026-01-15T20:17:00+05:30",
"hariVasaraEnds": null
}
}
]
}
}

Validation error

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Validation failed: date: Date must be YYYY-MM-DD",
"details": [
{
"path": "date",
"message": "Date must be YYYY-MM-DD"
}
]
}
}

Missing or invalid API key

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid API key"
}
}