Skip to content
AstroWay/api v2.283.3 · docs
all systems operational

Room placement and score

POST
/vastu/rooms
request.sh
curl -X POST https://api.astroway.info/v1/vastu/rooms \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{ "rooms": [ { "type": "kitchen", "direction": "SE" }, { "type": "master-bedroom", "bearing": 225 }, { "type": "toilet", "direction": "NE" } ] }'

Up to 40 rooms by direction from the centre of the house (or a bearing from true north), each judged ideal, acceptable, avoid or no-rule, with whether a verse or modern practice stands behind it. The 0-100 score is a published weighted mean; no classical text defines one. Room types with no citable rule (dining, balcony, garage, overhead tank) are refused rather than guessed.

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
Media type application/json
object
rooms required
Array<object>
>= 1 items <= 40 items
object
type required
string
>= 1 characters <= 40 characters
direction
Any of:
string
Allowed values: N NE E SE S SW W NW
bearing
number
<= 360
label
string
<= 60 characters
Example
{
"rooms": [
{
"type": "kitchen",
"direction": "SE"
},
{
"type": "master-bedroom",
"bearing": 225
},
{
"type": "toilet",
"direction": "NE"
}
]
}

Successful calculation

Media type application/json
object
ok
boolean
data
object
rooms
Array<object>
nullable
object
type
string
nullable
label
nullable
placement
string
nullable
verdict
string
nullable
basis
string
nullable
ideal
Array<string>
nullable
source
string
nullable
score
number
nullable
scoring
object
points
object
ideal
number
nullable
acceptable
number
nullable
avoid
number
nullable
weights
object
classical
number
nullable
convention
number
nullable
formula
string
nullable
notes
Array<string>
nullable
Example
{
"ok": true,
"data": {
"rooms": [
{
"type": "kitchen",
"label": null,
"placement": "SE",
"verdict": "ideal",
"basis": "classical",
"ideal": [
"SE"
],
"source": "Brihat Samhita, tr. N. Chidambaram Iyer (1884) 53.118: kitchen in the south-east. NW as second choice and N as avoided (fire against water) are modern practice"
},
{
"type": "master-bedroom",
"label": null,
"placement": "SW",
"verdict": "ideal",
"basis": "convention",
"ideal": [
"SW"
],
"source": "Modern practice; no verse places bedrooms"
},
{
"type": "toilet",
"label": null,
"placement": "NE",
"verdict": "avoid",
"basis": "convention",
"ideal": [],
"source": "Modern practice. Writers agree on never NE and never the centre, and split on where it should go (NW and W against the MahaVastu SSW and WNW), so no direction is marked ideal"
}
],
"score": 75,
"scoring": {
"points": {
"ideal": 1,
"acceptable": 0.5,
"avoid": 0
},
"weights": {
"classical": 2,
"convention": 1
},
"formula": "round(100 * sum(weight * points) / sum(weight)) over rooms with a rule; null when none has one"
},
"notes": [
"No classical text defines a Vastu score. This one is a weighted mean, published here so it can be checked or recomputed."
]
}
}

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"
}
}