Skip to content
RoxyAPI
Get API Key

Vastu API reference

Vastu Shastra API for directional home and plot analysis: entrance padas with the classical effect of each of the 32 perimeter positions, the Vastu Purusha Mandala projected over a real plot on the 81 pada or the 64 pada grid, room placement checks over a closed room enum, Ayadi shadvarga across three text families, plot shape and ground level under two schools that genuinely disagree, and griha pravesh dates composed over a verified panchang. Every verdict carries the chapter and verse it rests on as a typed field, or says plainly that it is convention. Directional design from Indian architecture, sitting beside our feng shui endpoints on one key, with Remote MCP and typed SDKs.

10 endpoints. Product page. Typed SDKs in six languages carry every operation below.

Kept in this tab only. Without a key, a small daily allowance still answers every request below.

Calculate entrance pada - Vastu main door direction API

POST /api/v2/vastu/entrance

Vastu entrance analysis for a main door: send the plot and where the door sits, and the API returns which of the 32 perimeter padas it falls on, the devata of that square, the effect the classical chapter gives that pada, and the favourable padas on the same side to move toward. Every verdict carries the chapter and verse it comes from as a typed field, and the reading holds on either the 81 pada or the 64 pada division. Built for property and interior design tools, practitioner reports, and any product that has to say whether a front door is well placed.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
plot requiredobjectThe ground the mandala is projected over. Send width and depth for a compass-aligned rectangle, or polygon for anything else. The x axis runs east and the y axis north, and the mandala is aligned to the compass rather than to the building.
plot.widthnumberEast-west extent of a rectangular plot, in the unit given. Send this with depth for a rectangle, or send polygon instead.
plot.depthnumberNorth-south extent of a rectangular plot, in the unit given. Send this with width for a rectangle, or send polygon instead.
plot.polygonarray of objectThe plot outline as 3 to 16 vertices in plot coordinates, x east and y north, in either winding order. Use this instead of width and depth for a plot with a cut corner, an extension or an irregular boundary.
plot.polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
plot.polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
plot.unitstring enumUnit the plot dimensions are given in. Every distance the response returns is in this same unit. The mandala projection is scale free, so this affects the areas and the marma size and nothing else.
facingstring enumDirection the front of the house looks out toward, one of the eight compass sectors. Case and punctuation are folded, so north-east, northeast and NorthEast all resolve. Send this or facingDegrees, never both.
facingDegreesnumberDirection the front of the house looks out toward, as a compass bearing in degrees clockwise from true north, measured looking OUT from the building. The same convention the feng shui facing endpoints use, so a bearing works unchanged across the two domains. Send this or facing, never both.
doorobjectWhere the main door sits, in plot coordinates. The point is snapped to the nearest boundary of the plot, so a coordinate read off a drawing that lands slightly inside or outside still resolves. Send this or doorPosition, never both.
door.x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
door.y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
doorPositionnumberWhere the main door sits along the facing side, as a fraction from 0 to 1 measured from the corner the chapter starts that side at: the north-east for an east facing, the south-east for a south facing, the south-west for a west facing and the north-west for a north facing. The side carries 8 padas, so to aim at pada n of 8 send its midpoint, (n - 0.5) / 8: 0.0625 for the first pada, 0.4375 for the fourth, 0.9375 for the eighth. The response names the pada the fraction resolved to in ordinalOnSide. Requires a cardinal facing, since an intercardinal facing names no single side. Send this or door, never both.
gridstring enumWhich division of the ground to read: 81-pada is the Paramasayika of Brihat Samhita 53.42, the grid the chapter numbers and names every devata on, and 64-pada is the Manduka of 53.55, for which the chapter gives structure only and no devata names. Defaults to 81-pada.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/entrance" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plot":{"width":30,"depth":40,"unit":"feet"}}'

Response fields

FieldTypeDescription
pada requirednumberWhich of the 32 perimeter padas the main door falls on, numbered 1 to 32. Padas 1 to 8 run down the east side from the north-east corner, 9 to 16 along the south from the south-east, 17 to 24 up the west from the south-west and 25 to 32 along the north from the north-west. This index is the identifier every entrance verdict keys on.
side requiredstringWhich of the four sides the pada belongs to. A corner square belongs to exactly one side, decided by the verses rather than by geometry, so the south-east corner reads South even though it sits at the end of the east edge.
startCorner requiredstringThe corner the chapter counts this side from. The four start corners are stated in the verses themselves, which is what makes the effect to pada alignment a reading rather than an inference.
ordinalOnSide requirednumberPosition of the pada along its own side, 1 to 8, counting from the start corner. Useful for drawing a door strip without recomputing the global index.
square requirednumberThe square of the 81 pada grid the door falls in, 1 to 81. It is always the 81 pada square, whichever grid you ask for, because that is the division the chapter numbers and the one the 32 padas are enumerated on. Squares run row-major over the printed plate, so the corners are 1 north-east, 9 south-east, 73 north-west and 81 south-west.
cell requiredobjectThe square as a row and column, which is what you draw with. Row 1 is the northern edge and column 1 the western one.
cell.rowFromNorth requirednumberRow of the grid the square sits in, 1 at the northern edge.
cell.columnFromWest requirednumberColumn of the grid the square sits in, 1 at the western edge.
devataobjectThe devata holding the entrance square. Present only on the 81 pada grid, because 53.55 to 56 gives the 64 pada division its structure and names no devata on it. The effects themselves apply to either division, which is why the pada and the effect are returned in both cases.
devata.id requiredstringIdentifier of the devata holding that square. Always English transliteration, safe to compare against and to look up on the devatas endpoint.
devata.name requiredstringDisplay name of the devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Compare on id, never on this.
devata.padaCount requirednumberHow many of the 81 squares this devata holds: one for a padika, two for a dvipada, three for a tripada and nine for Brahma.
effect requiredstringWhat the chapter says follows from a main entrance on this pada. Original prose composed from the verse, translated in place when lang is set.
auspiciousness requiredstringHow the stated effect reads: auspicious for a gain, inauspicious for a harm, mixed where the text names a gain and a loss together. A RoxyAPI classification of the verse effect rather than a word in the text, and always English so it is safe to key styling on.
Show all fieldsShow fewer fields
FieldTypeDescription
reading requiredstringThe verdict as a sentence, for a report or a chat answer. Composed from the pada, its side and its effect, and translated in place when lang is set.
recommendedPadas requiredarray of numberThe padas on this same side whose stated effect is a gain, so a door can be moved to the nearest favourable position without re-reading the whole table. Empty on a side where the chapter names no gain at all, which is true of the south.
source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
source.yearnumberPublication year of that edition. Absent on a convention.
source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
conventions requiredobjectThe switches this reading resolved, echoed so a stored response can be reproduced years later without knowing what the defaults were on the day it was made.
conventions.grid requiredstringWhich division of the ground was read. Echoes the resolved value whether it was sent or defaulted.
conventions.unit requiredstring enumUnit every distance and area in the response is measured in, areas in its square. Echoes the resolved value whether it was sent or defaulted.
Example response
{
  "pada": 3,
  "side": "East",
  "startCorner": "Northeast",
  "ordinalOnSide": 3,
  "square": 3,
  "cell": {
    "rowFromNorth": 3,
    "columnFromWest": 9
  },
  "devata": {
    "id": "jayanta",
    "name": "Jayanta",
    "padaCount": 2
  },
  "effect": "Great wealth.",
  "auspiciousness": "inauspicious",
  "reading": "The main entrance falls on pada 3 of the East side, counted from the Northeast corner. That pada is the square of Jayanta. The effect the verse gives for this pada: Great wealth.",
  "recommendedPadas": [
    3,
    4
  ],
  "source": {
    "text": "Brihat Samhita",
    "chapter": 53,
    "verse": "118",
    "translation": "N. Chidambaram Iyer",
    "year": 1884,
    "publicDomain": true,
    "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
  },
  "conventions": {
    "grid": "81-pada",
    "unit": "feet"
  }
}

Try it

JSON, as the example above shows it.
Not sent

Generate Vastu Purusha Mandala - 81 pada and 64 pada grid API

POST /api/v2/vastu/mandala

Vastu Purusha Mandala projected over a real plot: send the ground and the API returns every square with the devata holding it, the brahmasthan as a polygon you can draw, the marma points, the six vamsa diagonals named by their devatas and the nine atimarma crossings. Choose the 81 pada Paramasayika or the 64 pada Manduka, and the response says which verses each part rests on. Built for floor plan overlays, practitioner reports and any tool that has to place rooms against the classical grid.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
plot requiredobjectThe ground the mandala is projected over. Send width and depth for a compass-aligned rectangle, or polygon for anything else. The x axis runs east and the y axis north, and the mandala is aligned to the compass rather than to the building.
plot.widthnumberEast-west extent of a rectangular plot, in the unit given. Send this with depth for a rectangle, or send polygon instead.
plot.depthnumberNorth-south extent of a rectangular plot, in the unit given. Send this with width for a rectangle, or send polygon instead.
plot.polygonarray of objectThe plot outline as 3 to 16 vertices in plot coordinates, x east and y north, in either winding order. Use this instead of width and depth for a plot with a cut corner, an extension or an irregular boundary.
plot.polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
plot.polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
plot.unitstring enumUnit the plot dimensions are given in. Every distance the response returns is in this same unit. The mandala projection is scale free, so this affects the areas and the marma size and nothing else.
gridstring enumWhich division of the ground to read: 81-pada is the Paramasayika of Brihat Samhita 53.42, the grid the chapter numbers and names every devata on, and 64-pada is the Manduka of 53.55, for which the chapter gives structure only and no devata names. Defaults to 81-pada.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/mandala" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plot":{"width":30,"depth":40,"unit":"feet"}}'

Response fields

FieldTypeDescription
grid requiredstringWhich division was projected, echoing the resolved value.
cells requiredarray of objectEvery square of the projected mandala, row-major from the north-west. 81 entries on the Paramasayika and 64 on the Manduka.
cells[].square requirednumberSquare number, 1 to 81 on the Paramasayika and 1 to 64 on the Manduka. Squares run row-major over the printed plate, which puts 1 in the north-east, 9 in the south-east, 73 in the north-west and 81 in the south-west on the 81 pada grid.
cells[].rowFromNorth requirednumberRow of the grid, 1 at the northern edge and 9 or 8 at the southern one.
cells[].columnFromWest requirednumberColumn of the grid, 1 at the western edge and 9 or 8 at the eastern one.
cells[].devatastringIdentifier of the devata holding this square. Always English transliteration, safe to compare against. Present only on the 81 pada grid, since the chapter names no devata on the 64 pada division.
cells[].devataNamestringDisplay name of that devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Present only on the 81 pada grid.
cells[].classstring enumWhich ring of the mandala the devata belongs to: perimeter for the outer 32, innerRing for the eight around Brahma, innerCorner for the four on the inner diagonals, center for Brahma. Present only on the 81 pada grid.
cells[].groupstringHow many squares the devata holds under the classification of 53.49 to 50: padika for one, dvipada for two, tripada for three. Absent for Brahma, which those verses leave outside the scheme, and on the 64 pada grid.
cells[].rolestring enumThe structural role 53.55 to 56 gives this square of the 64 pada division: brahma, halved-inner-corner, halved-outer-corner, around-brahma, dvipada or outer. Present only on the 64 pada grid, which is the only thing that chapter states about it.
cells[].center requiredobjectCentre of the square in plot coordinates. This point is the marmasthala of the square, the vital spot 53.57 forbids raising a pillar on.
cells[].center.x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
cells[].center.y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
cells[].withinPlot requiredbooleanWhether the centre of this square falls inside the plot outline. False where an irregular plot has a corner cut away, which is how a missing quarter of the mandala shows up as data rather than as a missing row.
Show all fieldsShow fewer fields
FieldTypeDescription
brahmasthan requiredobjectThe central block of the mandala. Nine squares on the Paramasayika and four on the Manduka.
brahmasthan.squares requiredarray of numberThe squares Brahma holds: the nine central squares on the 81 pada grid, the four on the 64 pada grid.
brahmasthan.polygon requiredarray of objectThe brahmasthan as four corners in plot coordinates, so it can be drawn straight onto a plan. It is the block a house is kept clear of, and the chapter destroys the family of a house whose gate faces it.
brahmasthan.polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
brahmasthan.polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
brahmasthan.area requirednumberArea of the brahmasthan in the square of the plot unit, so a report can quote how much ground it covers.
marmaobjectThe vital spots of the mandala. Present on the 81 pada grid, where 53.57 and 53.64 state the rule and its size. Absent on the 64 pada grid, for which the chapter states neither.
marma.points requiredarray of objectThe centre of every square, which 53.57 calls a marmasthala and forbids raising a pillar over.
marma.points[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
marma.points[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
marma.areaEach requirednumberArea of one marma spot in the square of the plot unit. 53.64 sets it at one eighth of the area of a square, so it scales with the plot.
vamsaarray of objectThe six vamsa lines of 53.63, each named in the verse by the devatas at its two ends. Present only on the 81 pada grid: the 64 pada division is told to draw its main diagonals and nothing further is stated, so a six line geometry there would be borrowed from a different text.
vamsa[].fromSquare requirednumberSquare the line starts at, named in 53.63 by the devata holding it.
vamsa[].fromDevata requiredstringIdentifier of the devata at that end. Always English transliteration, safe to compare against.
vamsa[].toSquare requirednumberSquare the line ends at, named in 53.63 by the devata holding it.
vamsa[].toDevata requiredstringIdentifier of the devata at that end.
vamsa[].axis requiredstringWhich way the line runs across the grid, northwest-southeast or northeast-southwest. Derived from the endpoint cells rather than stored, so it cannot disagree with the geometry.
vamsa[].isMainDiagonal requiredbooleanWhether this is one of the two corner to corner diagonals. The other four run parallel to them, two cells either side.
vamsa[].from requiredobjectStart of the line in plot coordinates, at the centre of its square.
vamsa[].from.x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
vamsa[].from.y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
vamsa[].to requiredobjectEnd of the line in plot coordinates, at the centre of its square.
vamsa[].to.x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
vamsa[].to.y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
atimarmaarray of numberThe nine squares where the six vamsa lines cross. 53.63 asserts nine points and lists none, so these are computed by intersecting the lines rather than transcribed. They are the centre, the four corners of the Brahma block and the four cardinal squares of the second ring. Present only on the 81 pada grid.
sources requiredarray of objectEvery verse this projection rests on: the grid and its devatas, the 64 pada structure where that grid was asked for, and the marma and vamsa geometry where it applies.
sources[].text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
sources[].chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
sources[].versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
sources[].translationstringTranslator of the edition the verse was read in. Absent on a convention.
sources[].yearnumberPublication year of that edition. Absent on a convention.
sources[].publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
sources[].basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
conventions requiredobjectThe switches this projection resolved, echoed so a stored response can be reproduced later.
conventions.grid requiredstringWhich division of the ground was projected. Echoes the resolved value whether it was sent or defaulted.
conventions.unit requiredstring enumUnit every distance and area in the response is measured in, areas in its square. Echoes the resolved value whether it was sent or defaulted.
Example response
{
  "grid": "81-pada",
  "cells": [
    {
      "square": 41,
      "rowFromNorth": 5,
      "columnFromWest": 5,
      "devata": "brahma",
      "devataName": "Brahmā",
      "class": "center",
      "group": "dvipada",
      "role": "around-brahma",
      "center": {
        "x": 15,
        "y": 0
      },
      "withinPlot": true
    }
  ],
  "brahmasthan": {
    "squares": [
      31,
      32
    ],
    "polygon": [
      {
        "x": 15,
        "y": 0
      }
    ],
    "area": 133.33
  },
  "marma": {
    "points": [
      {
        "x": 15,
        "y": 0
      }
    ],
    "areaEach": 1.85
  },
  "vamsa": [
    {
      "fromSquare": 73,
      "fromDevata": "roga",
      "toSquare": 9,
      "toDevata": "vayu",
      "axis": "northwest-southeast",
      "isMainDiagonal": true,
      "from": {
        "x": 15,
        "y": 0
      },
      "to": {
        "x": 15,
        "y": 0
      }
    }
  ],
  "atimarma": [
    23,
    31
  ],
  "sources": [
    {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  ],
  "conventions": {
    "grid": "81-pada",
    "unit": "feet"
  }
}

Try it

JSON, as the example above shows it.
Not sent

Analyse a plot - Vastu land and site assessment API

POST /api/v2/vastu/plot

Vastu plot analysis from typed geometry: send the outline, the facing, where the ground falls and where the water is, and the API returns a verdict on the shape, the proportion, the ground level under two schools, each corner extension and cut, the road and the water. Every verdict names the chapter and verse behind it, or says plainly that it is convention, which matters because the ground level verses and the widely taught modern rule genuinely disagree. Built for listing and land assessment tools, practitioner site reports and buyer facing checks.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
plot requiredobjectThe ground the mandala is projected over. Send width and depth for a compass-aligned rectangle, or polygon for anything else. The x axis runs east and the y axis north, and the mandala is aligned to the compass rather than to the building.
plot.widthnumberEast-west extent of a rectangular plot, in the unit given. Send this with depth for a rectangle, or send polygon instead.
plot.depthnumberNorth-south extent of a rectangular plot, in the unit given. Send this with width for a rectangle, or send polygon instead.
plot.polygonarray of objectThe plot outline as 3 to 16 vertices in plot coordinates, x east and y north, in either winding order. Use this instead of width and depth for a plot with a cut corner, an extension or an irregular boundary.
plot.polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
plot.polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
plot.unitstring enumUnit the plot dimensions are given in. Every distance the response returns is in this same unit. The mandala projection is scale free, so this affects the areas and the marma size and nothing else.
facingstring enumDirection the front of the house looks out toward, one of the eight compass sectors. Case and punctuation are folded, so north-east, northeast and NorthEast all resolve. Send this or facingDegrees, never both.
facingDegreesnumberDirection the front of the house looks out toward, as a compass bearing in degrees clockwise from true north, measured looking OUT from the building. The same convention the feng shui facing endpoints use, so a bearing works unchanged across the two domains. Send this or facing, never both.
slopeLowDirectionstring enumWhich quarter of the plot the ground falls toward, that is where the LOW point is. The chapter states its rules in terms of the side that stands HIGHER, so the opposite of this value is what the verses are read against, and both are returned. Omit it if the ground is level.
roadstring enumWhich side a road runs along. The verdict is convention: the chapter states no rule for the side a road is on, only that an obstruction facing the gate brings misery unless it lies beyond twice the height of the house.
extensionsarray of string enumQuarters where the plot bulges out beyond a rectangle. Every extension verdict is convention: the chapter states no rule for a named corner and the nearest verses speak of a figure with a limb wanting.
cutsarray of string enumQuarters where a corner is missing from the rectangle. Every cut verdict is convention, for the same reason as the extensions.
waterstring enumWhich quarter holds standing water, a well, a tank or a sump. This one IS sourced: 53.119 gives a distinct effect for each of the eight directions and calls only the north and the north-east favourable.
Show all fieldsShow fewer fields
FieldTypeDescription
slopeSchoolstring enumWhich reading of the ground level to lead with. brihat-samhita applies verses 115 to 117 as written, where a higher north-east is a loss, a higher east or north is permitted when level ground is unavoidable and still carries its stated cost, and a higher south or west carries its cost with no allowance. modern applies the widely taught rule that the north-east must be the lowest point, which agrees with verse 115 and contradicts the verse 116 allowance. Both readings are returned whichever you choose, so the disagreement is visible rather than hidden. Defaults to brihat-samhita.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/plot" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plot":{"width":30,"depth":40,"unit":"feet"}}'

Response fields

FieldTypeDescription
orientation requiredobjectWhich way the building looks and which way it sits. Resolved through the same 24 mountain table the feng shui facing endpoints use, so a bearing lands in the same sector on both domains.
orientation.facing requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
orientation.sitting requiredstringThe sector directly opposite the facing, which is the back of the building. Always English.
orientation.facingDegreesnumberThe bearing you sent, echoed. Absent when you named a sector instead of a bearing.
orientation.mountainstringThe 15 degree mountain the bearing fell in, in the compass label form the feng shui endpoints use. Absent when you named a sector instead of a bearing, since a sector spans three mountains.
dimensions requiredobjectWhat the outline measures, in the unit you sent.
dimensions.length requirednumberNorth-south extent of the plot, in the unit you sent.
dimensions.breadth requirednumberEast-west extent of the plot, in the unit you sent.
dimensions.area requirednumberArea enclosed by the outline, in the square of your unit. Computed from the polygon, so a cut corner reduces it.
dimensions.ratio requirednumberLength divided by breadth. The chapter has exactly one rank-independent ratio rule, twice the breadth for a house with an inner hall, and no band at all for anything else.
shape requiredobjectWhether the ground is a regular four sided figure, per 53.115, which gives the death of kinsmen for an irregular shape and barrenness for irregular sides.
shape.verdict requiredstringHow the reading lands. Always English, safe to compare against and to key styling on.
shape.effect requiredstringWhat the verdict means, as original prose. Translated in place when lang is set to a language other than English.
shape.source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
Show all fieldsShow fewer fields
FieldTypeDescription
shape.source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
shape.source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
shape.source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
shape.source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
shape.source.yearnumberPublication year of that edition. Absent on a convention.
shape.source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
shape.source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
ratio requiredobjectHow the proportion reads. The one sourced verdict is the doubled length of 53.11; everything else is a modern band and is labelled convention, because no rank-independent ratio rule exists in the chapter at all.
ratio.verdict requiredstringHow the reading lands. Always English, safe to compare against and to key styling on.
ratio.effect requiredstringWhat the verdict means, as original prose. Translated in place when lang is set to a language other than English.
ratio.source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
ratio.source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
ratio.source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
ratio.source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
ratio.source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
ratio.source.yearnumberPublication year of that edition. Absent on a convention.
ratio.source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
ratio.source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
slopeobjectThe ground level under both schools. Absent when you sent no low direction, which is how you say the ground is level.
slope.lowDirection requiredstringThe quarter you said the ground falls toward, echoed.
slope.highDirection requiredstringThe quarter that therefore stands higher, which is what the verses are stated in terms of.
slope.reading requiredstringThe ground level as a sentence, for a report. Translated in place when lang is set.
slope.schools requiredarray of objectBoth readings, always, whichever school you asked for. The two genuinely disagree where a slight rise on the east or the north is unavoidable: the chapter allows it and the modern rule does not, and publishing both is what lets a practitioner reconcile our verdict with their teacher.
slope.schools[].school requiredstringWhich reading this verdict follows. Always English, safe to compare against.
slope.schools[].verdict requiredstringHow that reading lands: auspicious, permitted where a slight rise is expressly allowed, inauspicious, or not-stated where the chapter gives no effect for a rise in that quarter. Always English.
slope.schools[].verse requiredstringThe verse the reading rests on. Empty on the modern school, which rests on teaching practice rather than on a verse.
slope.schools[].effect requiredstringWhat that reading says follows, as original prose. Translated in place when lang is set.
slope.chosen requiredstringWhich of the two readings you asked to lead with, echoed.
waterobjectWhat the chapter says about standing water in the quarter you named. Only the north and the north-east are favourable, and each of the other six carries its own harm. Absent when you named no water.
water.direction requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
water.effect requiredstringWhat 53.119 gives for standing water in that quarter, as original prose. Translated in place when lang is set.
water.auspiciousness requiredstringHow the stated effect reads: auspicious for a gain, inauspicious for a harm, mixed where the text names a gain and a loss together. A RoxyAPI classification of the verse effect rather than a word in the text, and always English so it is safe to key styling on.
water.source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
water.source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
water.source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
water.source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
water.source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
water.source.yearnumberPublication year of that edition. Absent on a convention.
water.source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
water.source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
extensions requiredarray of objectA verdict per extended quarter, every one of them convention. Empty when you named none.
extensions[].direction requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
extensions[].auspiciousness requiredstringHow the stated effect reads: auspicious for a gain, inauspicious for a harm, mixed where the text names a gain and a loss together. A RoxyAPI classification of the verse effect rather than a word in the text, and always English so it is safe to key styling on.
extensions[].effect requiredstringWhat the reading says, as original prose that names its own basis.
extensions[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
extensions[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
extensions[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
extensions[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
extensions[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
extensions[].source.yearnumberPublication year of that edition. Absent on a convention.
extensions[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
extensions[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
cuts requiredarray of objectA verdict per cut quarter, every one of them convention.
cuts[].direction requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
cuts[].auspiciousness requiredstringHow the stated effect reads: auspicious for a gain, inauspicious for a harm, mixed where the text names a gain and a loss together. A RoxyAPI classification of the verse effect rather than a word in the text, and always English so it is safe to key styling on.
cuts[].effect requiredstringWhat the reading says, as original prose that names its own basis.
cuts[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
cuts[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
cuts[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
cuts[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
cuts[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
cuts[].source.yearnumberPublication year of that edition. Absent on a convention.
cuts[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
cuts[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
roadobjectThe convention verdict on the side a road runs, with the sourced obstruction rule quoted in the sources list beside it. Absent when you named no road.
road.direction requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
Example response
{
  "orientation": {
    "facing": "Northeast",
    "sitting": "South",
    "facingDegrees": 15,
    "mountain": "N3"
  },
  "dimensions": {
    "length": 40,
    "breadth": 30,
    "area": 1200,
    "ratio": 1.333
  },
  "shape": {
    "verdict": "irregular",
    "effect": "The ground is not a regular four sided figure. The chapter gives the death of kinsmen for an irregular shape and barrenness for irregular sides.",
    "source": {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  },
  "ratio": {
    "verdict": "irregular",
    "effect": "The ground is not a regular four sided figure. The chapter gives the death of kinsmen for an irregular shape and barrenness for irregular sides.",
    "source": {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  },
  "slope": {
    "lowDirection": "Northeast",
    "highDirection": "Southwest",
    "reading": "The high ground lies to the Southwest and the low ground to the Northeast.",
    "schools": [
      {
        "school": "brihat-samhita",
        "verdict": "not-stated",
        "verse": "53.117",
        "effect": "Hatred of friends."
      }
    ],
    "chosen": "brihat-samhita"
  },
  "water": {
    "direction": "Northeast",
    "effect": "Sons.",
    "auspiciousness": "inauspicious",
    "source": {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  },
  "extensions": [
    {
      "direction": "Northeast",
      "auspiciousness": "inauspicious",
      "effect": "An extension of the north-east quarter is the one enlargement modern practice treats as favourable. The chapter itself states no rule for a corner extension.",
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ],
  "cuts": [
    {
      "direction": "Northeast",
      "auspiciousness": "inauspicious",
      "effect": "Modern practice treats a missing corner as unfavourable. The chapter itself states no rule for a cut, and the nearest verses give the loss of wealth, grain or virtue where the figure of the Vastupurusha has an arm or a head wanting.",
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ],
  "road": {
    "direction": "Northeast",
    "auspiciousness": "inauspicious",
    "effect": "Modern practice reads a road on the north or the east as favourable. The chapter states no rule for the side a road runs on.",
    "source": {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  },
  "sources": [
    {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  ],
  "conventions": {
    "slopeSchool": "brihat-samhita"
  }
}

Try it

JSON, as the example above shows it.
Not sent

Calculate Ayadi shadvarga - Vastu proportion and yoni calculator API

POST /api/v2/vastu/ayadi

Ayadi shadvarga calculator for a building or a room: send the dimensions and the API returns all six proportional formulas with the multiplier, the divisor and the remainder shown, the member each remainder names, and the two verdict rules the texts state. Choose between three text families, which genuinely disagree, and choose your own cubit length, because every remainder is unit sensitive. Built for practitioner tools, plan checking software and anyone who has to justify a dimension rather than assert it.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
length requirednumberLength of the building or room, in the unit given. Under the Manasara family this is the measure the aya and rksha formulas multiply; under the perimeter family it only feeds the perimeter.
breadth requirednumberBreadth of the building or room, in the unit given. Under the Manasara family this is the measure the vyaya and yoni formulas multiply.
perimeternumberPerimeter of the plan, if it is not simply twice the length plus twice the breadth. The perimeter family runs every formula on this one measure, so it is the number that decides all six remainders there.
circumferencenumberCircumference or height, if the Manasara vara and tithi formulas should read something other than the perimeter. Defaults to the perimeter, which is what a rectangular plan supplies.
unitstring enumUnit the Ayadi dimensions are given in. Every remainder is unit sensitive, so this is an input and never assumed: the same building measured in cubits and in feet gives different remainders. hasta is the classical cubit and needs no conversion; feet and metres are converted using hastaInches and rounded to whole cubits, and the rounded figures are returned. Defaults to hasta.
hastaInchesnumberLength of one hasta, the classical cubit, in inches. Defaults to 18, which is 24 angula at three quarters of an inch each and is the value three independent sources agree on. Raise it if your lineage measures the cubit differently; the value used is echoed on the response so a stored reading can be reproduced years later. Only used when unit is feet or metres.
ayadiTextstring enumWhich family of Ayadi formulas to apply. manasara takes length, breadth and circumference separately and is double sourced. perimeter-texts runs every formula on the perimeter alone and is the family the usual worked example is printed for. utpala supplies a yoni formula from the length times the breadth and nothing else, so the other five vargas fall back to the perimeter family and the response says so. Defaults to manasara.
vyayaFormulastring enumWhich vyaya formula the perimeter family uses. The printed table gives two joined by the word or and states no rule for choosing. p9-10 multiplies by nine and divides by ten, which is the only divisor consistent with the ten member vyaya group, so its remainder can be placed in that group and it is the default. p3-14 multiplies by three and divides by fourteen, and its remainder maps to no group any source enumerates. Ignored when ayadiText is manasara, which has one vyaya formula.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/ayadi" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"length":11,"breadth":11}'

Response fields

FieldTypeDescription
measures requiredobjectWhat was actually divided, in whole cubits. Every remainder is unit sensitive and the formulas are integer arithmetic, so a measure sent in feet or metres is converted and rounded and the rounded figure is published here rather than left for you to infer.
measures.length requirednumberLength in whole hasta, after conversion and rounding.
measures.breadth requirednumberBreadth in whole hasta, after conversion and rounding.
measures.perimeter requirednumberPerimeter in whole hasta, either as you sent it or as twice length plus twice breadth.
measures.circumference requirednumberCircumference in whole hasta, defaulting to the perimeter.
measures.area requirednumberLength times breadth in whole hasta squared, which is the measure the Utpala yoni formula reads.
vargas requiredarray of objectThe six proportional formulas, each with its measure, multiplier, divisor, remainder and the member that remainder names.
vargas[].varga requiredstringWhich of the six proportional formulas this row is: aya, vyaya, yoni, rksha, tithi or vara. Always English, safe to compare against.
vargas[].operand requiredstringWhich measure the formula multiplied: length, breadth, circumference, perimeter or area. This is where the three text families differ most, since the Manasara reads three measures separately and the perimeter family reads one.
vargas[].operandValue requirednumberThe measure in whole hasta, after any conversion and rounding. This is the number actually multiplied, so a surprising remainder can be traced to it.
vargas[].multiplier requirednumberWhat the measure was multiplied by, per the formula of the chosen text family.
vargas[].divisor requirednumberWhat the product was divided by, which is also the size of the group named.
vargas[].product requirednumberThe measure times the multiplier, shown so the arithmetic can be checked by hand.
vargas[].remainder requirednumberWhat the division left. This is the Ayadi result: the remainder, not the quotient, names the member of the group.
Show all fieldsShow fewer fields
FieldTypeDescription
vargas[].groupSize requirednumberHow many members the group has. Aya is a group of twelve and vyaya a group of ten, which is stated in the text even though the names are not.
vargas[].namestringThe member the remainder names. Present for the four groups whose names are sourced: the eight yonis, the 27 nakshatras, the 30 tithis and the seven varas. Absent for aya and vyaya, whose names beyond the first are printed in no public-domain source and are never invented here.
vargas[].firstNamestringThe first member of the group, for the two groups where that is all any source gives. Present on aya and on vyaya, and on nothing else.
vargas[].glossstringWhat the yoni name means in plain words. Present on the yoni row only, and translated in place when lang is set.
vargas[].auspiciousbooleanWhether this remainder is favourable under the rule the text states for that group: the odd yonis, the odd nakshatras, and four of the seven varas. Absent where no source states a rule for the group.
vargas[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
vargas[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
vargas[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
vargas[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
vargas[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
vargas[].source.yearnumberPublication year of that edition. Absent on a convention.
vargas[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
vargas[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
vayas requirednumberThe seventh formula of the perimeter family, which takes the QUOTIENT of the perimeter times eight over twenty seven where rksha takes the remainder. An age or span rather than a member of a named group, and not part of the Manasara six.
verdict requiredobjectThe two verdict rules the texts actually state: the yoni must be one of the four favourable members, and the aya remainder should exceed the vyaya remainder.
verdict.yoniAuspicious requiredbooleanWhether the yoni is one of the four favourable members. A remainder of zero is a reject rather than the eighth name, because a zero remainder would face the building north-east and the reference rule says the proportions must be altered instead.
verdict.ayaVyaya requiredstringHow the aya compares with the vyaya: aya-greater is conducive to prosperity, equal carries no defect, aya-lesser is defective, and zero-remainder means one of the two divided exactly, which the text calls auspicious in its own right. Always English, safe to compare against.
verdict.reading requiredstringThe verdict as a sentence, for a report. Composed from the yoni and the aya against vyaya rule, and translated in place when lang is set.
verdict.source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
verdict.source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
verdict.source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
verdict.source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
verdict.source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
verdict.source.yearnumberPublication year of that edition. Absent on a convention.
verdict.source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
verdict.source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
conventions requiredobjectThe switches this calculation resolved, echoed so it can be reproduced years later without knowing what the defaults were on the day it was made.
conventions.ayadiText requiredstringWhich family of formulas was applied. Echoes the resolved value.
conventions.vyayaFormula requiredstringWhich of the two perimeter vyaya formulas was applied. Echoed even under the Manasara family, which has one vyaya formula and ignores it, so a stored response always says what was resolved.
conventions.unit requiredstringWhich unit the dimensions arrived in. Echoes the resolved value.
conventions.hastaInches requirednumberHow long one hasta was taken to be, in inches. Echoed because the remainders are unit sensitive and a stored reading cannot be reproduced without it.
Example response
{
  "measures": {
    "length": 11,
    "breadth": 11,
    "perimeter": 11,
    "circumference": 11,
    "area": 121
  },
  "vargas": [
    {
      "varga": "yoni",
      "operand": "perimeter",
      "operandValue": 11,
      "multiplier": 3,
      "divisor": 8,
      "product": 33,
      "remainder": 1,
      "groupSize": 8,
      "name": "Dhvaja",
      "firstName": "Siddhi",
      "gloss": "flag",
      "auspicious": true,
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ],
  "vayas": 3,
  "verdict": {
    "yoniAuspicious": true,
    "ayaVyaya": "aya-greater",
    "reading": "The yoni remainder is 1, which names Dhvaja, the flag. The aya remainder 4 exceeds the vyaya remainder 9, which the text calls conducive to prosperity.",
    "source": {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  },
  "conventions": {
    "ayadiText": "manasara",
    "vyayaFormula": "p9-10",
    "unit": "hasta",
    "hastaInches": 18
  }
}

Try it

JSON, as the example above shows it.
Not sent

Check room placement - Vastu room direction compliance API

POST /api/v2/vastu/rooms

Vastu room direction check for a whole floor plan: send the plot and a list of rooms, by quarter or by outline, and the API returns a verdict per room with the quarters it belongs in, the quarters to keep it out of, a remedy when it is misplaced, and a composite score with the weights published. Four of the twelve room types carry a chapter and verse and the other eight are labelled convention, so a report can say which half of it is classical. Built for floor plan tools, listing checks and practitioner reports.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
plot requiredobjectThe ground the mandala is projected over. Send width and depth for a compass-aligned rectangle, or polygon for anything else. The x axis runs east and the y axis north, and the mandala is aligned to the compass rather than to the building.
plot.widthnumberEast-west extent of a rectangular plot, in the unit given. Send this with depth for a rectangle, or send polygon instead.
plot.depthnumberNorth-south extent of a rectangular plot, in the unit given. Send this with width for a rectangle, or send polygon instead.
plot.polygonarray of objectThe plot outline as 3 to 16 vertices in plot coordinates, x east and y north, in either winding order. Use this instead of width and depth for a plot with a cut corner, an extension or an irregular boundary.
plot.polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
plot.polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
plot.unitstring enumUnit the plot dimensions are given in. Every distance the response returns is in this same unit. The mandala projection is scale free, so this affects the areas and the marma size and nothing else.
facingstring enumDirection the front of the house looks out toward, one of the eight compass sectors. Case and punctuation are folded, so north-east, northeast and NorthEast all resolve. Send this or facingDegrees, never both.
facingDegreesnumberDirection the front of the house looks out toward, as a compass bearing in degrees clockwise from true north, measured looking OUT from the building. The same convention the feng shui facing endpoints use, so a bearing works unchanged across the two domains. Send this or facing, never both.
rooms requiredarray of objectThe rooms to check, 1 to 24 of them. Each carries a type and either the quarter it sits in or its outline.
rooms[].type requiredstring enumWhat the room is, one of puja, kitchen, master-bedroom, bedroom, living, dining, study, toilet, store, staircase, water-storage, entrance. Case and punctuation are folded, so Master Bedroom and master_bedroom both resolve. Four of the twelve carry a verse and the rest carry convention, and the response says which.
rooms[].directionstring enumWhich quarter of the plot the room sits in, if you already know it. Send this or polygon, never both.
rooms[].polygonarray of objectThe room outline in plot coordinates, 3 to 16 vertices. The quarter is read from the area centroid against thirds of the plot, so an L-shaped room lands where its mass is rather than where its corners are. Send this or direction, never both.
rooms[].polygon[].x requirednumberDistance east of the plot origin, in the same unit as the plot. The x axis runs east.
Show all fieldsShow fewer fields
FieldTypeDescription
rooms[].polygon[].y requirednumberDistance north of the plot origin, in the same unit as the plot. The y axis runs north.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/rooms" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plot":{"width":30,"depth":40,"unit":"feet"},"rooms":[{"type":"kitchen","direction":"Southeast","polygon":[{"x":20,"y":2},{"x":28,"y":2},{"x":28,"y":12},{"x":20,"y":12}]}]}'

Response fields

FieldTypeDescription
rooms requiredarray of objectOne reading per room sent, in the order you sent them.
rooms[].type requiredstringThe room type, echoed in its canonical spelling. Always English, safe to compare against.
rooms[].zone requiredstringWhich of the nine zones the room occupies: one of the eight compass sectors, or Center for the middle ninth, which is the brahmasthan. Always English.
rooms[].verdict requiredstringHow the placement reads: ideal where the room sits where its rule puts it, avoid where it sits where the rule warns against, acceptable for everything between. Always English, safe to key styling on.
rooms[].idealDirections requiredarray of stringThe quarters this room type belongs in under its rule.
rooms[].avoidDirections requiredarray of stringThe quarters this room type should be kept out of under its rule.
rooms[].reading requiredstringThe placement as a sentence, for a report. Translated in place when lang is set to a language other than English.
rooms[].remedystringWhat to do when the room is not where it belongs. Present when the verdict is acceptable or avoid, and absent on an ideal placement, which has nothing to fix. Original prose, translated in place when lang is set.
rooms[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
rooms[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
rooms[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
rooms[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
rooms[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
rooms[].source.yearnumberPublication year of that edition. Absent on a convention.
Show all fieldsShow fewer fields
FieldTypeDescription
rooms[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
rooms[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
score requirednumberA RoxyAPI composite from 0 to 100 over the rooms you sent, not a classical quantity and not a number any verse gives. A rule carrying a verse weighs twice one carrying convention; an ideal placement scores full, an acceptable one half and a placement to avoid nothing. The weights are published in the scoring field so you can recompute it or ignore it.
scoring requiredobjectThe weights behind the composite, published rather than hidden so the number is auditable.
scoring.sourcedWeight requirednumberThe weight a rule carrying a chapter and verse contributes.
scoring.conventionWeight requirednumberThe weight a rule carrying convention contributes.
scoring.idealPoints requirednumberThe points an ideal placement earns, out of one.
scoring.neutralPoints requirednumberThe points an acceptable placement earns, out of one.
scoring.avoidPoints requirednumberThe points a placement to avoid earns, out of one.
facing requiredstringWhich way the building faces, echoed. It does not move the zones: the mandala is aligned to the compass rather than to the building, so a room in the south-east is in the south-east whichever way the front door looks.
sources requiredarray of objectEvery rule this report rests on, so a printed report can carry the citation beside each room.
sources[].text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
sources[].chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
sources[].versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
sources[].translationstringTranslator of the edition the verse was read in. Absent on a convention.
sources[].yearnumberPublication year of that edition. Absent on a convention.
sources[].publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
sources[].basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
Example response
{
  "rooms": [
    {
      "type": "kitchen",
      "zone": "Southeast",
      "verdict": "ideal",
      "idealDirections": [
        "Southeast"
      ],
      "avoidDirections": [
        "Northeast"
      ],
      "reading": "The kitchen stands in the Southeast quarter, which is where it belongs.",
      "remedy": "Move the cooking hearth to the south-east quarter, which is where the chapter puts the kitchen. Where the room cannot move, shift the hob itself to the south-east corner of the room and cook facing east.",
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ],
  "score": 83.3,
  "scoring": {
    "sourcedWeight": 2,
    "conventionWeight": 1,
    "idealPoints": 1,
    "neutralPoints": 0.5,
    "avoidPoints": 0
  },
  "facing": "North",
  "sources": [
    {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Find griha pravesh dates - Vastu house warming muhurta API

POST /api/v2/vastu/timing/griha-pravesh

Griha pravesh muhurta search over a date window: send the window and the place, and the API returns every day that clears the classical day-level rules, with the nakshatra, tithi, weekday and solar position that qualified it and the rule ids that admitted it. Two Muhurta texts disagree on the admissible nakshatras and you choose which one leads, and the rules a date search cannot settle are published rather than dropped. Built for house warming date pickers, practitioner scheduling and agent assistants that have to answer when a family should move in.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
startDate requiredstring (date)First day of the search window, in YYYY-MM-DD. Every limb is read at sunrise of the local day, because the Hindu day begins at sunrise rather than at midnight.
endDate requiredstring (date)Last day of the search window, in YYYY-MM-DD, inclusive. The window is capped at 93 days, which is a full season and the same cap the Vedic auspicious day search carries.
latitude requirednumberLatitude of the house, in decimal degrees, positive north. Sunrise decides where one day ends and the next begins, so a nakshatra running out during the morning changes which day it counts for.
longitude requirednumberLongitude of the house, in decimal degrees, positive east.
timezone requirednumber or stringIANA name (e.g. "America/New_York", "Europe/London", "UTC"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00", "+01:00"). Prefer the IANA name: it is resolved to the offset in force at the birth date and time, historical daylight-saving rules included, while a fixed offset or decimal is taken literally and will be wrong if it does not match the daylight-saving state at that moment. On a transition day a time in the repeated hour is read as its first occurrence and a time in the skipped hour is moved forward past the gap. Invalid timezones return 400 with a validation error.
muhurtaTextstring enumWhich Muhurta text supplies the admissible nakshatras for entering a new house. muhurta-chintamani admits eight and kalaprakasika admits twelve; seven overlap and are the high confidence core, one is unique to the first and five to the second. The two texts are independent witnesses, which is what makes the overlap strong and the difference worth exposing. Defaults to muhurta-chintamani.
curl
curl -X POST "https://roxyapi.com/api/v2/vastu/timing/griha-pravesh" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startDate":"2027-01-20","endDate":"2027-03-20","latitude":28.6139,"longitude":77.209,"timezone":"America/New_York"}'

Response fields

FieldTypeDescription
days requiredarray of objectThe days in the window that clear every day-level rule, in date order. Only admitted days are listed; the rules that rejected the rest are tallied in rejectionsByRule.
days[].date requiredstringThe admitted day, in YYYY-MM-DD.
days[].sunrisestringSunrise at the coordinates you sent, as a UTC instant. This is the moment every limb below was read at. Absent inside a polar night, where the Sun does not rise and the day was read from local midnight instead.
days[].nakshatra requiredobjectThe nakshatra the Moon stood in at sunrise, which is the strongest of the rules.
days[].nakshatra.number requirednumberNakshatra number 1 to 27, counting from Ashwini. Abhijit is not among them.
days[].nakshatra.id requiredstringIdentifier of the nakshatra, lower case with hyphens. Always English transliteration, safe to compare against and against the same value on the panchang endpoints.
days[].nakshatra.name requiredstringDisplay name of the nakshatra, as the panchang endpoints spell it.
days[].tithi requiredobjectThe tithi running at sunrise.
days[].tithi.number requirednumberTithi number 1 to 30 across the lunar month, 1 to 15 bright then 16 to 30 dark.
days[].tithi.name requiredstringDisplay name of the tithi, as the panchang endpoints spell it.
days[].tithi.paksha requiredstringWhich half of the lunar month: Shukla for the bright half and Krishna for the dark. Always English, safe to compare against.
days[].vara requiredobjectThe weekday, which begins at sunrise in this reckoning.
days[].vara.number requirednumberWeekday number, 0 for Sunday through 6 for Saturday.
days[].vara.name requiredstringWeekday name, counted from sunrise rather than from midnight.
Show all fieldsShow fewer fields
FieldTypeDescription
days[].ayana requiredstringWhich half of the solar year: uttarayana is the northern course and is required, dakshinayana the southern. Always English, safe to compare against.
days[].solarLongitude requirednumberSidereal longitude of the Sun at sunrise, in degrees. Published because two of the rules are solar and a caller can check them from it.
days[].karana requiredstringThe karana at sunrise. Vishti, also called Bhadra, is the one that bars a day. Always English transliteration.
days[].quality requiredstringpreferred where the tithi is one both texts single out and the weekday is not the neutral one, admissible otherwise. Always English, safe to compare against.
days[].admittedBy requiredarray of stringThe rule ids this day satisfied, in the order they were tested. Look each one up in the rules field for what it requires and where it comes from.
days[].reading requiredstringThe day as a sentence, for a report or a chat answer. Translated in place when lang is set to a language other than English.
total requirednumberHow many days were admitted.
window requiredobjectWhat was searched, echoed so a stored result is self describing.
window.startDate requiredstringFirst day searched, echoed.
window.endDate requiredstringLast day searched, echoed.
window.daysEvaluated requirednumberHow many days the window covered, inclusive of both ends.
rejectionsByRule requiredobjectA tally of which rule rejected how many days, keyed on the rule id. This is what makes an empty result actionable: a window inside the southern course fails every day on one rule and you can see that at a glance.
rules requiredarray of objectEvery rule applied, with what it requires, how well attested it is, and where it comes from.
rules[].id requiredstringIdentifier of the rule, which is what the day rows reference.
rules[].requirement requiredstringWhat the rule requires, as original prose. Translated in place when lang is set.
rules[].confidence requiredstringHow well attested the rule is: high where two independent texts agree, medium where two dependent witnesses do or one text states it twice. Always English.
rules[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
rules[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
rules[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
rules[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
rules[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
rules[].source.yearnumberPublication year of that edition. Absent on a convention.
rules[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
rules[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
leftToTheAstrologer requiredarray of stringThe rules a date search cannot settle, published rather than dropped. They are judgements about a MOMENT and about the owner, not about a day, and a caller who believes an admitted day is finished without them would be wrong.
sources requiredarray of objectThe primary citations behind the whole search, including the one house entry rule the Brihat Samhita itself states, which is in its muhurta chapter and not in the architecture chapter.
sources[].text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
sources[].chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
sources[].versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
sources[].translationstringTranslator of the edition the verse was read in. Absent on a convention.
sources[].yearnumberPublication year of that edition. Absent on a convention.
sources[].publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
sources[].basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
conventions requiredobjectThe switches this search resolved, echoed so it can be reproduced later.
conventions.muhurtaText requiredstringWhich Muhurta text supplied the nakshatra list. Echoes the resolved value whether it was sent or defaulted.
conventions.timezone requirednumberThe UTC offset in hours the local day was resolved with, after any IANA name was resolved to a number.
Example response
{
  "days": [
    {
      "date": "2027-02-11",
      "sunrise": "2027-02-11T01:32:11.000Z",
      "nakshatra": {
        "number": 4,
        "id": "rohini",
        "name": "Rohini"
      },
      "tithi": {
        "number": 6,
        "name": "Ṣaṣṭī",
        "paksha": "Shukla"
      },
      "vara": {
        "number": 4,
        "name": "Thursday"
      },
      "ayana": "uttarayana",
      "solarLongitude": 296.412,
      "karana": "Bava",
      "quality": "preferred",
      "admittedBy": [
        "nakshatra-admissible",
        "tithi-window"
      ],
      "reading": "The day clears every rule this search can test, on the nakshatra Rohini, the tithi Ṣaṣṭī and a Thursday."
    }
  ],
  "total": 4,
  "window": {
    "startDate": "2027-01-20",
    "endDate": "2027-03-20",
    "daysEvaluated": 60
  },
  "rejectionsByRule": {
    "uttarayana": 21,
    "nakshatra-admissible": 45
  },
  "rules": [
    {
      "id": "nakshatra-admissible",
      "requirement": "The nakshatra at sunrise must be one the chosen text admits for entering a new house.",
      "confidence": "high",
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ],
  "leftToTheAstrologer": [
    "The rising sign at the moment of entry should be one of the four fixed signs, or a sign benefic to the owner. One text admits a movable sign only when the rising navamsa is the Bull."
  ],
  "sources": [
    {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  ],
  "conventions": {
    "muhurtaText": "muhurta-chintamani",
    "timezone": 5.5
  }
}

Try it

JSON, as the example above shows it.
Not sent

List the eight directions - Vastu dikpala and direction reference API

GET /api/v2/vastu/directions

Reference table of the eight Vastu directions: the dikpala who rules each quarter of the horizon, the squares of the mandala it covers with their devatas, what the chapter places on that side, and what standing water there brings. A pure reference endpoint with no plot required, for building a picker or a directions guide. Every row says which verse each part comes from and labels the element as the later convention it is.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
limit queryintegerMaximum items to return per page. Range: 1-8, default 8. Default 8.
offset queryintegerNumber of items to skip for pagination. Default 0. Default 0.
curl
curl "https://roxyapi.com/api/v2/vastu/directions" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
total requirednumberHow many directions there are in all, which is always eight.
limit requirednumberHow many were requested per page.
offset requirednumberHow many were skipped.
directions requiredarray of objectThe directions on this page, in compass order from North.
directions[].id requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
directions[].dikpala requiredstringThe lord of this quarter of the horizon, per Brihat Samhita 54.3. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Compare on id, never on this. These are NOT the 45 mandala devatas and the two sets must not be merged: Agni is the north-east mandala square and the south-east dikpala.
directions[].kind requiredstringWhether this is one of the four cardinal directions or one of the four intercardinal quarters. Always English.
directions[].elementstringThe element conventionally assigned to this quarter: fire, earth, air or water. Present only on the four intercardinal quarters, because the cardinal ones carry none in this scheme, and it is labelled convention because the Brihat Samhita assigns no element to any direction at all.
directions[].squares requiredarray of numberThe squares of the 81 pada grid this direction covers. For a cardinal direction those are its eight perimeter squares in the order the verses enumerate them; for an intercardinal quarter they are the corner square and the four single pada squares gathered around it.
directions[].devatas requiredarray of objectThe devatas of the squares this direction covers, in the same order as the squares list.
directions[].devatas[].square requirednumberSquare number in the 81 pada grid.
directions[].devatas[].id requiredstringIdentifier of the devata holding it. Always English transliteration, safe to compare against and to look up on the devatas endpoint.
directions[].devatas[].name requiredstringDisplay name of the devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi.
directions[].placesstringWhat Brihat Samhita 53.118 puts on this side, in the chapter own terms. Present on the four intercardinal quarters, which are the only ones that verse places anything on.
Show all fieldsShow fewer fields
FieldTypeDescription
directions[].water requiredobjectWhat the chapter says about standing water here, which it gives for all eight directions.
directions[].water.effect requiredstringWhat 53.119 says follows from standing water in this quarter, as original prose.
directions[].water.auspiciousness requiredstringWhether that effect is a gain or a harm. Only the north and the north-east are gains. Always English.
directions[].sources requiredarray of objectThe verses behind each part of this entry, and the convention label on the element where no verse gives one.
directions[].sources[].text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
directions[].sources[].chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
directions[].sources[].versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
directions[].sources[].translationstringTranslator of the edition the verse was read in. Absent on a convention.
directions[].sources[].yearnumberPublication year of that edition. Absent on a convention.
directions[].sources[].publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
directions[].sources[].basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
Example response
{
  "total": 8,
  "limit": 8,
  "offset": 0,
  "directions": [
    {
      "id": "Northeast",
      "dikpala": "Īśāna",
      "kind": "intercardinal",
      "element": "water",
      "squares": [
        1,
        2
      ],
      "devatas": [
        {
          "square": 1,
          "id": "agni",
          "name": "Agni"
        }
      ],
      "places": "the apartment for the Devas",
      "water": {
        "effect": "Sons.",
        "auspiciousness": "auspicious"
      },
      "sources": [
        {
          "text": "Brihat Samhita",
          "chapter": 53,
          "verse": "118",
          "translation": "N. Chidambaram Iyer",
          "year": 1884,
          "publicDomain": true,
          "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
        }
      ]
    }
  ]
}

Try it

Not sent

Look up one direction - Vastu dikpala reference API

GET /api/v2/vastu/directions/{id}

Look up one Vastu direction: its dikpala, the mandala squares it covers with their devatas, what the chapter places there, and what standing water in that quarter brings. Case and punctuation in the id are folded, so north-east, northeast and NorthEast all resolve to the same entry, and the id space is the one the feng shui and I Ching endpoints use.

Parameters

ParameterTypeDescription
id required pathstring enumDirection id, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Case and punctuation are folded.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vastu/directions/Northeast" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringCompass sector, one of North, Northeast, East, Southeast, South, Southwest, West, Northwest. Always English, whatever the lang parameter says, so it stays safe to compare against and against the same value on the feng shui and I Ching endpoints.
dikpala requiredstringThe lord of this quarter of the horizon, per Brihat Samhita 54.3. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Compare on id, never on this. These are NOT the 45 mandala devatas and the two sets must not be merged: Agni is the north-east mandala square and the south-east dikpala.
kind requiredstringWhether this is one of the four cardinal directions or one of the four intercardinal quarters. Always English.
elementstringThe element conventionally assigned to this quarter: fire, earth, air or water. Present only on the four intercardinal quarters, because the cardinal ones carry none in this scheme, and it is labelled convention because the Brihat Samhita assigns no element to any direction at all.
squares requiredarray of numberThe squares of the 81 pada grid this direction covers. For a cardinal direction those are its eight perimeter squares in the order the verses enumerate them; for an intercardinal quarter they are the corner square and the four single pada squares gathered around it.
devatas requiredarray of objectThe devatas of the squares this direction covers, in the same order as the squares list.
devatas[].square requirednumberSquare number in the 81 pada grid.
devatas[].id requiredstringIdentifier of the devata holding it. Always English transliteration, safe to compare against and to look up on the devatas endpoint.
devatas[].name requiredstringDisplay name of the devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi.
placesstringWhat Brihat Samhita 53.118 puts on this side, in the chapter own terms. Present on the four intercardinal quarters, which are the only ones that verse places anything on.
water requiredobjectWhat the chapter says about standing water here, which it gives for all eight directions.
water.effect requiredstringWhat 53.119 says follows from standing water in this quarter, as original prose.
water.auspiciousness requiredstringWhether that effect is a gain or a harm. Only the north and the north-east are gains. Always English.
sources requiredarray of objectThe verses behind each part of this entry, and the convention label on the element where no verse gives one.
Show all fieldsShow fewer fields
FieldTypeDescription
sources[].text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
sources[].chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
sources[].versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
sources[].translationstringTranslator of the edition the verse was read in. Absent on a convention.
sources[].yearnumberPublication year of that edition. Absent on a convention.
sources[].publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
sources[].basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
Example response
{
  "id": "Northeast",
  "dikpala": "Īśāna",
  "kind": "intercardinal",
  "element": "water",
  "squares": [
    1,
    2
  ],
  "devatas": [
    {
      "square": 1,
      "id": "agni",
      "name": "Agni"
    }
  ],
  "places": "the apartment for the Devas",
  "water": {
    "effect": "Sons.",
    "auspiciousness": "auspicious"
  },
  "sources": [
    {
      "text": "Brihat Samhita",
      "chapter": 53,
      "verse": "118",
      "translation": "N. Chidambaram Iyer",
      "year": 1884,
      "publicDomain": true,
      "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
    }
  ]
}

Try it

Not sent

List the 45 devatas - Vastu Purusha Mandala reference API

GET /api/v2/vastu/devatas

Reference table of the 45 devatas of the Vastu Purusha Mandala: which squares of the 81 pada grid each one holds, which ring and which side, how many padas, and the verses that place it. A pure reference endpoint with no plot required, for building a mandala diagram or a glossary. Where the sources contradict each other, and they do on several rows, the row says so instead of quietly picking a side.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
limit queryintegerMaximum items to return per page. Range: 1-45, default 45. Default 45.
offset queryintegerNumber of items to skip for pagination. Default 0. Default 0.
curl
curl "https://roxyapi.com/api/v2/vastu/devatas" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
total requirednumberHow many devatas there are in all. Always 45 squares held, though the chapter prints only 44 distinct names because Indra appears twice.
limit requirednumberHow many were requested per page.
offset requirednumberHow many were skipped.
devatas requiredarray of objectThe devatas on this page, in the order the verses enumerate them: the east perimeter, then south, west and north, then inward to Brahma.
devatas[].id requiredstringIdentifier of the devata, lower case transliteration. Always English, safe to compare against. Indra appears twice in the chapter, on the east perimeter and on the inner ring, so those two carry the ids indra-outer and indra-inner, which are ours: no source read for this package prints a distinguishing name for either.
devatas[].name requiredstringDisplay name of the devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Compare on id, never on this.
devatas[].class requiredstring enumWhich ring of the mandala the devata belongs to: perimeter for the outer 32, innerRing for the eight around Brahma, innerCorner for the four on the inner diagonals, center for Brahma alone. 32 plus 8 plus 4 plus 1 is 45. Always English.
devatas[].groupstringHow many squares the devata holds under 53.49 to 50: padika for one, dvipada for two, tripada for three. Absent for Brahma, whom those verses leave outside the scheme while enumerating 44 devatas.
devatas[].sidestringWhich side of the perimeter the devata sits on. Present only on the outer 32, which are the ones the verses enumerate side by side.
devatas[].quadrantstringWhich quarter of the mandala the devata occupies, where it sits in one. Absent for a devata spread along a side rather than gathered in a corner.
devatas[].squares requiredarray of numberWhich of the 81 squares the devata holds. The verses name one square per devata and fix the pada count of each, and the remaining squares follow from that count: a dvipada takes its named square plus the one a step inward, a tripada the three cell cardinal run of the second ring.
devatas[].cells requiredarray of objectThe same squares as row and column pairs, which is what you draw with. The corners of the grid are 1 north-east, 9 south-east, 73 north-west and 81 south-west.
devatas[].cells[].rowFromNorth requirednumberRow of the grid, 1 at the northern edge and 9 at the southern one.
devatas[].cells[].columnFromWest requirednumberColumn of the grid, 1 at the western edge and 9 at the eastern one.
Show all fieldsShow fewer fields
FieldTypeDescription
devatas[].padaCount requirednumberHow many squares the devata holds: one, two or three for the 44 enumerated devatas, and nine for Brahma.
devatas[].entrancePadanumberThe entrance pada this devata governs, 1 to 32. Present only on the outer 32, since only a perimeter square can hold a main door.
devatas[].role requiredstringWhat the devata holds, as a sentence composed from the sourced structure. There is deliberately no meaning field: no source read for this package gives a devata a meaning, and inventing one would be unsourced content on a route that sells a citation per verdict. Translated in place when lang is set.
devatas[].verses requiredarray of stringWhich verses of chapter 53 place this devata and fix its pada count, so a report can print the citation.
devatas[].notestringWhere the sources disagree or contradict themselves about this row, and where Brahma sits outside the pada-count scheme. Present on the six rows that carry a recorded divergence: the two Indras, the north-east and south-east corner devatas where the Manasara differs from the Brihat Samhita, Prthvidhara, whom the chapter places on two different squares in two different verses, and Brahma. Original prose, translated in place when lang is set.
devatas[].source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
devatas[].source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
devatas[].source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
devatas[].source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
devatas[].source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
devatas[].source.yearnumberPublication year of that edition. Absent on a convention.
devatas[].source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
devatas[].source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
Example response
{
  "total": 45,
  "limit": 45,
  "offset": 0,
  "devatas": [
    {
      "id": "jayanta",
      "name": "Jayanta",
      "class": "perimeter",
      "group": "dvipada",
      "side": "East",
      "quadrant": "Northeast",
      "squares": [
        3,
        12
      ],
      "cells": [
        {
          "rowFromNorth": 3,
          "columnFromWest": 9
        }
      ],
      "padaCount": 2,
      "entrancePada": 3,
      "role": "The devata Jayanta holds 2 of the eighty one squares on the East side of the mandala.",
      "verses": [
        "53.43",
        "53.44"
      ],
      "note": "Iyer prints Indra for BOTH this square and the other; the printed text therefore yields 44 distinct names for 45 padas.",
      "source": {
        "text": "Brihat Samhita",
        "chapter": 53,
        "verse": "118",
        "translation": "N. Chidambaram Iyer",
        "year": 1884,
        "publicDomain": true,
        "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
      }
    }
  ]
}

Try it

Not sent

Look up one devata - Vastu mandala devata reference API

GET /api/v2/vastu/devatas/{id}

Look up one devata of the Vastu Purusha Mandala: the squares it holds, its ring and side, its pada count, the entrance pada it governs where it sits on the perimeter, and the verses that place it. Case and punctuation in the id are folded, so indra-outer, Indra_Outer and INDRA OUTER all resolve.

Parameters

ParameterTypeDescription
id required pathstring enumDevata id, lower case transliteration. The two Indras are indra-outer for the east perimeter square and indra-inner for the inner ring one. Case and punctuation are folded.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vastu/devatas/jayanta" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringIdentifier of the devata, lower case transliteration. Always English, safe to compare against. Indra appears twice in the chapter, on the east perimeter and on the inner ring, so those two carry the ids indra-outer and indra-inner, which are ours: no source read for this package prints a distinguishing name for either.
name requiredstringDisplay name of the devata. A Sanskrit proper noun: romanised with the diacritics the transliteration carries in every language, and written in Devanagari as the Sanskrit text prints it when lang is hi. Compare on id, never on this.
class requiredstring enumWhich ring of the mandala the devata belongs to: perimeter for the outer 32, innerRing for the eight around Brahma, innerCorner for the four on the inner diagonals, center for Brahma alone. 32 plus 8 plus 4 plus 1 is 45. Always English.
groupstringHow many squares the devata holds under 53.49 to 50: padika for one, dvipada for two, tripada for three. Absent for Brahma, whom those verses leave outside the scheme while enumerating 44 devatas.
sidestringWhich side of the perimeter the devata sits on. Present only on the outer 32, which are the ones the verses enumerate side by side.
quadrantstringWhich quarter of the mandala the devata occupies, where it sits in one. Absent for a devata spread along a side rather than gathered in a corner.
squares requiredarray of numberWhich of the 81 squares the devata holds. The verses name one square per devata and fix the pada count of each, and the remaining squares follow from that count: a dvipada takes its named square plus the one a step inward, a tripada the three cell cardinal run of the second ring.
cells requiredarray of objectThe same squares as row and column pairs, which is what you draw with. The corners of the grid are 1 north-east, 9 south-east, 73 north-west and 81 south-west.
cells[].rowFromNorth requirednumberRow of the grid, 1 at the northern edge and 9 at the southern one.
cells[].columnFromWest requirednumberColumn of the grid, 1 at the western edge and 9 at the eastern one.
padaCount requirednumberHow many squares the devata holds: one, two or three for the 44 enumerated devatas, and nine for Brahma.
entrancePadanumberThe entrance pada this devata governs, 1 to 32. Present only on the outer 32, since only a perimeter square can hold a main door.
role requiredstringWhat the devata holds, as a sentence composed from the sourced structure. There is deliberately no meaning field: no source read for this package gives a devata a meaning, and inventing one would be unsourced content on a route that sells a citation per verdict. Translated in place when lang is set.
verses requiredarray of stringWhich verses of chapter 53 place this devata and fix its pada count, so a report can print the citation.
Show all fieldsShow fewer fields
FieldTypeDescription
notestringWhere the sources disagree or contradict themselves about this row, and where Brahma sits outside the pada-count scheme. Present on the six rows that carry a recorded divergence: the two Indras, the north-east and south-east corner devatas where the Manasara differs from the Brihat Samhita, Prthvidhara, whom the chapter places on two different squares in two different verses, and Brahma. Original prose, translated in place when lang is set.
source requiredobjectWhere a verdict comes from: a chapter and verse of a named public-domain edition, or the literal convention with the practice it rests on. Every verdict in this domain carries one.
source.text requiredstringThe primary text this verdict rests on, or the literal value convention where no verse states the rule. Always English, safe to compare against.
source.chapternumberChapter of the primary text. Absent on a convention, which has no chapter to cite.
source.versestringVerse or verse range inside the chapter. Absent on a convention. A range is written with a hyphen, as in 115-117.
source.translationstringTranslator of the edition the verse was read in. Absent on a convention.
source.yearnumberPublication year of that edition. Absent on a convention.
source.publicDomainbooleanWhether the cited edition is in the public domain. True on the 1884 Brihat Samhita edition, whose verses are quoted. False on the 1933 Manasara edition behind the Ayadi formulas, from which only the multipliers, divisors and names are taken, never a sentence.
source.basisstringWhy a convention rule says what it says. Present only when text is convention, and it names the tradition the rule comes from rather than a verse.
Example response
{
  "id": "jayanta",
  "name": "Jayanta",
  "class": "perimeter",
  "group": "dvipada",
  "side": "East",
  "quadrant": "Northeast",
  "squares": [
    3,
    12
  ],
  "cells": [
    {
      "rowFromNorth": 3,
      "columnFromWest": 9
    }
  ],
  "padaCount": 2,
  "entrancePada": 3,
  "role": "The devata Jayanta holds 2 of the eighty one squares on the East side of the mandala.",
  "verses": [
    "53.43",
    "53.44"
  ],
  "note": "Iyer prints Indra for BOTH this square and the other; the printed text therefore yields 44 distinct names for 45 padas.",
  "source": {
    "text": "Brihat Samhita",
    "chapter": 53,
    "verse": "118",
    "translation": "N. Chidambaram Iyer",
    "year": 1884,
    "publicDomain": true,
    "basis": "the south-west placement of the principal bedroom is later Vastu practice; chapter 53 places no bedroom"
  }
}

Try it

Not sent