@roxyapi/sdk 1.2.60 → 1.2.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.gen.ts CHANGED
@@ -74,6 +74,10 @@ export type NatalChartResponse = {
74
74
  * Whether the planet is in retrograde motion.
75
75
  */
76
76
  isRetrograde: boolean;
77
+ /**
78
+ * Essential dignity of this body in the sign it occupies: domicile (the sign it rules, its strongest placement), exaltation (honoured and amplified), detriment (opposite its rulership, where it struggles), fall (opposite its exaltation, where it is weakened), or peregrine (in none of its own dignity signs). Absent for the lunar nodes, Chiron and Black Moon Lilith, which rule no sign and therefore hold no dignity at all, so an absent field and peregrine are different answers. Derived by sign only, so triplicity, bounds and face are not considered. Always English, whatever the lang parameter says, so it stays safe to compare against in code. The four dignity signs behind it are published per body by GET /planet-meanings/{id}.
79
+ */
80
+ dignity?: 'domicile' | 'exaltation' | 'detriment' | 'fall' | 'peregrine';
77
81
  /**
78
82
  * Planet-in-sign-in-house interpretation. Narrative analysis of what this placement means in the natal chart.
79
83
  */
@@ -166,9 +170,22 @@ export type NatalChartResponse = {
166
170
  */
167
171
  strength: number;
168
172
  /**
169
- * Aspect nature: harmonious, challenging, or neutral.
173
+ * Aspect nature: harmonious, challenging, or neutral. Always English, whatever the lang parameter says, because it is an identifier to compare and style on. Read aspectInterpretation for the sentence a reader sees.
170
174
  */
171
175
  interpretation: string;
176
+ /**
177
+ * Narrative interpretation of this aspect for this chart. The reference description of the aspect TYPE is not repeated per row, use GET or POST /astrology/aspects for that card.
178
+ */
179
+ aspectInterpretation: {
180
+ /**
181
+ * One-sentence read of THIS pair: which two bodies, how tight the aspect is, whether it is applying or separating, and how it is classified. Translated in place, so it arrives in the requested language.
182
+ */
183
+ summary: string;
184
+ /**
185
+ * Themes this aspect activates between the two bodies. Translated in place, so they arrive in the requested language.
186
+ */
187
+ keywords: Array<string>;
188
+ };
172
189
  }>;
173
190
  /**
174
191
  * Detected multi-planet aspect configurations (Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle, Stellium). Grand Cross suppresses contained T-Squares, Kite suppresses underlying Grand Trine.
@@ -398,6 +415,10 @@ export type NatalChartRequest = {
398
415
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
399
416
  */
400
417
  timezone: number | string;
418
+ /**
419
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
420
+ */
421
+ nodeType?: 'mean' | 'true';
401
422
  /**
402
423
  * House system for dividing the chart into 12 houses. Placidus (default) is most popular in Western astrology and time-sensitive. Whole Sign assigns one sign per house (simpler, ancient). Equal houses divide chart into 30° segments from Ascendant. Koch emphasizes houses in high latitudes.
403
424
  */
@@ -576,7 +597,7 @@ export type AspectsResponse = {
576
597
  */
577
598
  strength: number;
578
599
  /**
579
- * Aspect nature: harmonious, challenging, or neutral.
600
+ * Aspect nature for this pair: harmonious, challenging, or neutral. Always English, whatever the lang parameter says, because it is an identifier to compare and style on. This is the field to branch on; meaning.nature is the reference card characterisation of the aspect type and is translated for display.
580
601
  */
581
602
  interpretation: string;
582
603
  /**
@@ -605,7 +626,7 @@ export type AspectsResponse = {
605
626
  */
606
627
  keywords: Array<string>;
607
628
  /**
608
- * Aspect nature classification.
629
+ * How this aspect type is characterised in its reference card, in the requested language, exactly like the name, description and keywords beside it. This is a property of the aspect TYPE, so branch on the aspect-level interpretation field instead, which is always English and is the classification applied to this particular pair.
609
630
  */
610
631
  nature: string;
611
632
  };
@@ -805,6 +826,10 @@ export type AspectPatternsRequest = {
805
826
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
806
827
  */
807
828
  timezone: number | string;
829
+ /**
830
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
831
+ */
832
+ nodeType?: 'mean' | 'true';
808
833
  };
809
834
 
810
835
  export type TransitsResponse = {
@@ -971,6 +996,10 @@ export type TransitsRequest = {
971
996
  * Transit timezone: decimal hours from UTC OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the transit date. Defaults to 0 (UTC).
972
997
  */
973
998
  timezone?: number | string;
999
+ /**
1000
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
1001
+ */
1002
+ nodeType?: 'mean' | 'true';
974
1003
  /**
975
1004
  * Optional natal chart data to compare transits against
976
1005
  */
@@ -1029,9 +1058,13 @@ export type AstrocartographyResponse = {
1029
1058
  */
1030
1059
  lines: Array<{
1031
1060
  /**
1032
- * Celestial body this set of planetary lines belongs to.
1061
+ * Celestial body this set of planetary lines belongs to. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
1033
1062
  */
1034
1063
  planet: string;
1064
+ /**
1065
+ * Body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1066
+ */
1067
+ planetLocalized?: string;
1035
1068
  /**
1036
1069
  * Unicode astronomical symbol for this body.
1037
1070
  */
@@ -1323,7 +1356,7 @@ export type RelocationChartResponse = {
1323
1356
 
1324
1357
  export type RelocationPlanet = {
1325
1358
  /**
1326
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
1359
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
1327
1360
  */
1328
1361
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
1329
1362
  /**
@@ -1447,9 +1480,13 @@ export type LocalSpaceResponse = {
1447
1480
  */
1448
1481
  bodies: Array<{
1449
1482
  /**
1450
- * Body name (Sun, Moon, Mercury through Pluto, plus North Node, Chiron, or Black Moon Lilith when requested). Localized when a translation exists.
1483
+ * Body name (Sun, Moon, Mercury through Pluto, plus North Node, Chiron, or Black Moon Lilith when requested). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
1451
1484
  */
1452
1485
  planet: string;
1486
+ /**
1487
+ * Body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1488
+ */
1489
+ planetLocalized?: string;
1453
1490
  /**
1454
1491
  * Unicode astronomical symbol for this body.
1455
1492
  */
@@ -1570,9 +1607,13 @@ export type FixedStarsResponse = {
1570
1607
  */
1571
1608
  conjunctions: Array<{
1572
1609
  /**
1573
- * Natal point conjunct this star: a planet name, or the chart angles MC and ASC. Planet names are localized to the requested language.
1610
+ * Natal point conjunct this star: a planet name, or the chart angles MC and ASC. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use pointLocalized for anything a reader sees.
1574
1611
  */
1575
1612
  point: string;
1613
+ /**
1614
+ * Natal point name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1615
+ */
1616
+ pointLocalized?: string;
1576
1617
  /**
1577
1618
  * Tropical ecliptic longitude of the natal point in degrees (0-360).
1578
1619
  */
@@ -1592,9 +1633,13 @@ export type FixedStarsResponse = {
1592
1633
  */
1593
1634
  star: string;
1594
1635
  /**
1595
- * Natal point conjunct the star: a localized planet name, or the chart angles MC and ASC.
1636
+ * Natal point conjunct the star: a planet name, or the chart angles MC and ASC. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use pointLocalized for anything a reader sees.
1596
1637
  */
1597
1638
  point: string;
1639
+ /**
1640
+ * Natal point name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1641
+ */
1642
+ pointLocalized?: string;
1598
1643
  /**
1599
1644
  * Angular separation in degrees between the star and the natal point.
1600
1645
  */
@@ -1645,13 +1690,17 @@ export type ArabicLotsResponse = {
1645
1690
  */
1646
1691
  lots: Array<{
1647
1692
  /**
1648
- * Stable machine identifier for the lot (fortune, spirit, eros, necessity, courage, victory, nemesis). Use this for lookups; the name field carries the localized display label.
1693
+ * Stable machine identifier for the lot (fortune, spirit, eros, necessity, courage, victory, nemesis). Use this for lookups.
1649
1694
  */
1650
1695
  id: string;
1651
1696
  /**
1652
- * Display name of the lot, localized to the requested language.
1697
+ * Name of the lot. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
1653
1698
  */
1654
1699
  name: string;
1700
+ /**
1701
+ * Lot name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1702
+ */
1703
+ nameLocalized?: string;
1655
1704
  /**
1656
1705
  * Absolute tropical ecliptic longitude of the lot in degrees (0 to 360).
1657
1706
  */
@@ -1700,6 +1749,10 @@ export type ArabicLotsRequest = {
1700
1749
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
1701
1750
  */
1702
1751
  timezone: number | string;
1752
+ /**
1753
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
1754
+ */
1755
+ nodeType?: 'mean' | 'true';
1703
1756
  /**
1704
1757
  * House system used to place the Sun, which determines the chart sect (day when the Sun is above the horizon, night when below) and therefore which lot formula applies. Placidus (default), Whole Sign, Equal, or Koch.
1705
1758
  */
@@ -1741,9 +1794,13 @@ export type AsteroidsResponse = {
1741
1794
  */
1742
1795
  asteroids: Array<{
1743
1796
  /**
1744
- * Display name of the asteroid, localized to the requested language.
1797
+ * Name of the asteroid: Ceres, Pallas, Juno, or Vesta. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
1745
1798
  */
1746
1799
  name: string;
1800
+ /**
1801
+ * Asteroid name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1802
+ */
1803
+ nameLocalized?: string;
1747
1804
  /**
1748
1805
  * Absolute tropical ecliptic longitude of the asteroid in degrees (0 to 360).
1749
1806
  */
@@ -1804,6 +1861,10 @@ export type AsteroidsRequest = {
1804
1861
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
1805
1862
  */
1806
1863
  timezone: number | string;
1864
+ /**
1865
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
1866
+ */
1867
+ nodeType?: 'mean' | 'true';
1807
1868
  /**
1808
1869
  * House system used to assign each asteroid to a natal house. Placidus (default), Whole Sign, Equal, or Koch. Above the polar circle, quadrant systems fall back to Whole Sign and the echoed houseSystem reports the system actually used.
1809
1870
  */
@@ -1845,9 +1906,13 @@ export type LilithResponse = {
1845
1906
  */
1846
1907
  lilith: Array<{
1847
1908
  /**
1848
- * Which lunar apogee this entry describes, localized to the requested language. The mean variant is the smoothed average apogee; the true variant is the instantaneous osculating apogee.
1909
+ * Which lunar apogee this entry describes. The mean variant is the smoothed average apogee; the true variant is the instantaneous osculating apogee. Always one of these two English literals, whatever the lang parameter says, so it stays safe to compare against in code. Use variantLocalized for anything a reader sees.
1849
1910
  */
1850
- variant: string;
1911
+ variant: 'mean' | 'true';
1912
+ /**
1913
+ * Apogee variant label in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
1914
+ */
1915
+ variantLocalized?: string;
1851
1916
  /**
1852
1917
  * Absolute tropical ecliptic longitude of the apogee in degrees (0 to 360).
1853
1918
  */
@@ -1912,6 +1977,10 @@ export type LilithRequest = {
1912
1977
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
1913
1978
  */
1914
1979
  timezone: number | string;
1980
+ /**
1981
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
1982
+ */
1983
+ nodeType?: 'mean' | 'true';
1915
1984
  /**
1916
1985
  * House system used to place each Lilith variant in a house. Placidus (default), Whole Sign, Equal, or Koch.
1917
1986
  */
@@ -2070,6 +2139,10 @@ export type ProgressionsRequest = {
2070
2139
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
2071
2140
  */
2072
2141
  timezone: number | string;
2142
+ /**
2143
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
2144
+ */
2145
+ nodeType?: 'mean' | 'true';
2073
2146
  /**
2074
2147
  * Date to progress the chart to, in YYYY-MM-DD format. Usually today or a forecast date. The day-for-a-year key turns the elapsed years since birth into the same number of ephemeris days after the birth moment.
2075
2148
  */
@@ -2119,9 +2192,13 @@ export type SolarArcResponse = {
2119
2192
  */
2120
2193
  directed: Array<{
2121
2194
  /**
2122
- * Name of the directed point, localized to the requested language. This covers the planets and the two angles, the Ascendant and the Midheaven, alike.
2195
+ * Name of the directed point, covering the planets and the two angles, the Ascendant and the Midheaven, alike. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
2123
2196
  */
2124
2197
  name: string;
2198
+ /**
2199
+ * Directed point name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
2200
+ */
2201
+ nameLocalized?: string;
2125
2202
  /**
2126
2203
  * Absolute tropical ecliptic longitude of the point in the natal chart, in degrees (0 to 360).
2127
2204
  */
@@ -2166,6 +2243,10 @@ export type SolarArcRequest = {
2166
2243
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
2167
2244
  */
2168
2245
  timezone: number | string;
2246
+ /**
2247
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
2248
+ */
2249
+ nodeType?: 'mean' | 'true';
2169
2250
  /**
2170
2251
  * Date to direct the chart to, in YYYY-MM-DD format. Every natal point is advanced by the solar arc accumulated from birth to this date, about one degree for each year of life.
2171
2252
  */
@@ -2262,6 +2343,10 @@ export type ProfectionsRequest = {
2262
2343
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
2263
2344
  */
2264
2345
  timezone: number | string;
2346
+ /**
2347
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
2348
+ */
2349
+ nodeType?: 'mean' | 'true';
2265
2350
  /**
2266
2351
  * Date whose profection year you want, in YYYY-MM-DD format. The completed whole years from the birth date to this date select the profected house and sign. Must fall on or after the birth date.
2267
2352
  */
@@ -4409,7 +4494,7 @@ export type KpPlanetsRequest = {
4409
4494
  */
4410
4495
  ayanamsaValue?: number;
4411
4496
  /**
4412
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
4497
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
4413
4498
  */
4414
4499
  nodeType?: 'mean' | 'true';
4415
4500
  };
@@ -4867,7 +4952,7 @@ export type KpChartRequest = {
4867
4952
  */
4868
4953
  ayanamsaValue?: number;
4869
4954
  /**
4870
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
4955
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
4871
4956
  */
4872
4957
  nodeType?: 'mean' | 'true';
4873
4958
  };
@@ -5241,7 +5326,7 @@ export type KpSublordChangesRequest = {
5241
5326
  */
5242
5327
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5243
5328
  /**
5244
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
5329
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
5245
5330
  */
5246
5331
  nodeType?: 'mean' | 'true';
5247
5332
  };
@@ -5320,7 +5405,7 @@ export type KpRasiChangesRequest = {
5320
5405
  */
5321
5406
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5322
5407
  /**
5323
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
5408
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
5324
5409
  */
5325
5410
  nodeType?: 'mean' | 'true';
5326
5411
  };
@@ -5446,7 +5531,7 @@ export type KpPlanetsIntervalRequest = {
5446
5531
  */
5447
5532
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5448
5533
  /**
5449
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
5534
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
5450
5535
  */
5451
5536
  nodeType?: 'mean' | 'true';
5452
5537
  };
@@ -5730,7 +5815,7 @@ export type KpHoraryRequest = {
5730
5815
  */
5731
5816
  ayanamsaValue?: number;
5732
5817
  /**
5733
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
5818
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
5734
5819
  */
5735
5820
  nodeType?: 'mean' | 'true';
5736
5821
  };
@@ -7506,9 +7591,13 @@ export type GetAstrologySignsResponses = {
7506
7591
  */
7507
7592
  symbol?: string;
7508
7593
  /**
7509
- * Elemental classification: Fire, Earth, Air, or Water.
7594
+ * Elemental classification: fire, earth, air, or water. Always one of these four English literals, whatever the lang parameter says, so it stays safe to compare against in code. Use elementLocalized for anything a reader sees.
7510
7595
  */
7511
7596
  element: 'fire' | 'earth' | 'air' | 'water';
7597
+ /**
7598
+ * Element name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
7599
+ */
7600
+ elementLocalized?: string;
7512
7601
  /**
7513
7602
  * Tropical zodiac date range for this sign.
7514
7603
  */
@@ -7687,17 +7776,29 @@ export type GetAstrologySignsByIdResponses = {
7687
7776
  */
7688
7777
  symbolName: string;
7689
7778
  /**
7690
- * Elemental classification: Fire, Earth, Air, or Water. Determines temperament and compatibility group.
7779
+ * Elemental classification: fire, earth, air, or water. Determines temperament and compatibility group. Always one of these four English literals, whatever the lang parameter says, so it stays safe to compare against in code. Use elementLocalized for anything a reader sees.
7691
7780
  */
7692
7781
  element: 'fire' | 'earth' | 'air' | 'water';
7693
7782
  /**
7694
- * Quality/modality: Cardinal (initiating), Fixed (sustaining), or Mutable (adapting).
7783
+ * Element name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
7784
+ */
7785
+ elementLocalized?: string;
7786
+ /**
7787
+ * Quality/modality: cardinal (initiating), fixed (sustaining), or mutable (adapting). Always one of these three English literals, whatever the lang parameter says, so it stays safe to compare against in code. Use modalityLocalized for anything a reader sees.
7695
7788
  */
7696
7789
  modality: 'cardinal' | 'fixed' | 'mutable';
7697
7790
  /**
7698
- * Traditional ruling planet that governs this sign.
7791
+ * Modality name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
7792
+ */
7793
+ modalityLocalized?: string;
7794
+ /**
7795
+ * Traditional ruling planet that governs this sign. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use rulingPlanetLocalized for anything a reader sees.
7699
7796
  */
7700
7797
  rulingPlanet: string;
7798
+ /**
7799
+ * Ruling planet name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
7800
+ */
7801
+ rulingPlanetLocalized?: string;
7701
7802
  /**
7702
7803
  * Tropical zodiac date range for this sign.
7703
7804
  */
@@ -8272,6 +8373,10 @@ export type PostAstrologyPlanetsData = {
8272
8373
  * Time in 24-hour HH:MM:SS format for precise calculations. Moon moves ~13° per day, so time matters for accurate lunar position. Use 12:00:00 (noon) as default if exact time not needed.
8273
8374
  */
8274
8375
  time: string;
8376
+ /**
8377
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
8378
+ */
8379
+ nodeType?: 'mean' | 'true';
8275
8380
  /**
8276
8381
  * Observer latitude in decimal degrees (-90 to 90). While planetary longitudes are geocentric (same worldwide), this is needed for house calculations if extending functionality. For basic ephemeris, use 0 as default.
8277
8382
  */
@@ -9193,6 +9298,10 @@ export type PostAstrologySynastryData = {
9193
9298
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
9194
9299
  */
9195
9300
  timezone: number | string;
9301
+ /**
9302
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
9303
+ */
9304
+ nodeType?: 'mean' | 'true';
9196
9305
  /**
9197
9306
  * Optional display name for this person. Included in the response for easy identification.
9198
9307
  */
@@ -9219,6 +9328,10 @@ export type PostAstrologySynastryData = {
9219
9328
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
9220
9329
  */
9221
9330
  timezone: number | string;
9331
+ /**
9332
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
9333
+ */
9334
+ nodeType?: 'mean' | 'true';
9222
9335
  /**
9223
9336
  * Optional display name for this person. Included in the response for easy identification.
9224
9337
  */
@@ -9580,7 +9693,7 @@ export type PostAstrologySynastryResponses = {
9580
9693
  */
9581
9694
  keywords: Array<string>;
9582
9695
  /**
9583
- * Aspect nature classification.
9696
+ * How this aspect type is characterised in its reference card, in the requested language, exactly like the name, description and keywords beside it. Branch on the aspect-level interpretation field instead, which is always English.
9584
9697
  */
9585
9698
  nature: string;
9586
9699
  /**
@@ -10197,6 +10310,10 @@ export type PostAstrologyTransitAspectsData = {
10197
10310
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
10198
10311
  */
10199
10312
  timezone: number | string;
10313
+ /**
10314
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
10315
+ */
10316
+ nodeType?: 'mean' | 'true';
10200
10317
  };
10201
10318
  /**
10202
10319
  * Transit date in YYYY-MM-DD format. Defaults to current date if omitted. Use future dates for predictive transit analysis.
@@ -10350,12 +10467,58 @@ export type PostAstrologyTransitAspectsResponses = {
10350
10467
  * House system actually used for the natal cusps behind every house number in this response. Differs from the requested system only above the polar circle, where quadrant systems fall back to Whole Sign.
10351
10468
  */
10352
10469
  houseSystem: 'placidus' | 'whole-sign' | 'equal' | 'koch';
10470
+ /**
10471
+ * The twelve NATAL house cusps that every house number in this response is read against, in the house system named by houseSystem. Same shape as the natal-chart houses array, so a bi-wheel can be drawn with real house sectors from this one response instead of pairing it with a second call.
10472
+ */
10473
+ houses: Array<{
10474
+ /**
10475
+ * House number (1-12). Each house governs specific life themes in Western astrology.
10476
+ */
10477
+ number: number;
10478
+ /**
10479
+ * Ecliptic longitude of this house cusp in degrees (0-360).
10480
+ */
10481
+ longitude: number;
10482
+ /**
10483
+ * Zodiac sign on this house cusp. Colors the themes of this life area.
10484
+ */
10485
+ sign: string;
10486
+ /**
10487
+ * Degree within the zodiac sign on this cusp (0-29.999).
10488
+ */
10489
+ degree: number;
10490
+ /**
10491
+ * Zodiac sign name on this cusp in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
10492
+ */
10493
+ signLocalized?: string;
10494
+ }>;
10495
+ /**
10496
+ * The natal Ascendant (rising sign): the eastern horizon at birth, and the left-hand horizon a chart wheel is oriented to. Reported alongside the cusps because the two are not the same longitude in every house system: Whole Sign puts the first cusp at 0 degrees of the rising sign, which can sit most of a sign away from the Ascendant itself.
10497
+ */
10498
+ ascendant: {
10499
+ /**
10500
+ * Tropical zodiac sign on the natal Ascendant. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
10501
+ */
10502
+ sign: string;
10503
+ /**
10504
+ * Ascendant sign name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
10505
+ */
10506
+ signLocalized?: string;
10507
+ /**
10508
+ * Degree within the Ascendant sign (0-29.999).
10509
+ */
10510
+ degree: number;
10511
+ /**
10512
+ * Absolute ecliptic longitude of the natal Ascendant in degrees (0-360).
10513
+ */
10514
+ longitude: number;
10515
+ };
10353
10516
  /**
10354
10517
  * Current transiting positions in the tropical zodiac, each placed in the natal house it is passing through. All 14 celestial bodies: the 10 classical planets (Sun through Pluto), the lunar nodes, Chiron, and Black Moon Lilith.
10355
10518
  */
10356
10519
  transitPlanets: Array<{
10357
10520
  /**
10358
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
10521
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
10359
10522
  */
10360
10523
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10361
10524
  /**
@@ -10400,7 +10563,7 @@ export type PostAstrologyTransitAspectsResponses = {
10400
10563
  */
10401
10564
  natalPlanets: Array<{
10402
10565
  /**
10403
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
10566
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
10404
10567
  */
10405
10568
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10406
10569
  /**
@@ -10473,7 +10636,7 @@ export type PostAstrologyTransitAspectsResponses = {
10473
10636
  */
10474
10637
  strength: number;
10475
10638
  /**
10476
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
10639
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
10477
10640
  */
10478
10641
  interpretation: 'harmonious' | 'challenging' | 'neutral';
10479
10642
  /**
@@ -10488,7 +10651,10 @@ export type PostAstrologyTransitAspectsResponses = {
10488
10651
  * Aspect type name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
10489
10652
  */
10490
10653
  typeLocalized?: string;
10491
- transitInterpretation?: {
10654
+ /**
10655
+ * Rich interpretation of the transit aspect: narrative summary, timing, impact assessment, practical guidance, and keywords.
10656
+ */
10657
+ transitInterpretation: {
10492
10658
  /**
10493
10659
  * Narrative interpretation of this transit aspect and its life impact.
10494
10660
  */
@@ -10564,7 +10730,7 @@ export type PostAstrologyTransitAspectsResponses = {
10564
10730
  */
10565
10731
  strength: number;
10566
10732
  /**
10567
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
10733
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
10568
10734
  */
10569
10735
  interpretation: 'harmonious' | 'challenging' | 'neutral';
10570
10736
  /**
@@ -10579,6 +10745,31 @@ export type PostAstrologyTransitAspectsResponses = {
10579
10745
  * Aspect type name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
10580
10746
  */
10581
10747
  typeLocalized?: string;
10748
+ /**
10749
+ * Rich interpretation of the transit aspect: narrative summary, timing, impact assessment, practical guidance, and keywords.
10750
+ */
10751
+ transitInterpretation: {
10752
+ /**
10753
+ * Narrative interpretation of this transit aspect and its life impact.
10754
+ */
10755
+ summary: string;
10756
+ /**
10757
+ * When this transit is most active and how long its influence lasts, localized. The bucket follows the speed of the transiting body: a few hours for the Moon, a few days for the Sun, Mercury, Venus and Mars, one to two weeks for Jupiter, several weeks for Saturn, and an extended period for Uranus, Neptune and Pluto.
10758
+ */
10759
+ timing: string;
10760
+ /**
10761
+ * Strength and nature of this transit effect — constructive, challenging, or neutral.
10762
+ */
10763
+ impact: string;
10764
+ /**
10765
+ * Practical advice for working with this transit energy.
10766
+ */
10767
+ guidance: string;
10768
+ /**
10769
+ * Key themes activated by this transit aspect.
10770
+ */
10771
+ keywords: Array<string>;
10772
+ };
10582
10773
  } | null;
10583
10774
  /**
10584
10775
  * Transit aspect counts grouped by aspect type (conjunction, trine, square, opposition, sextile, etc.). Useful for quickly assessing the transit weather.
@@ -10801,11 +10992,11 @@ export type PostAstrologySolarReturnResponses = {
10801
10992
  timezone: number;
10802
10993
  };
10803
10994
  /**
10804
- * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node), Chiron, and Black Moon Lilith.
10995
+ * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node, in the requested `nodeType` convention), Chiron, and Black Moon Lilith.
10805
10996
  */
10806
10997
  planets: Array<{
10807
10998
  /**
10808
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
10999
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
10809
11000
  */
10810
11001
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10811
11002
  /**
@@ -10895,7 +11086,7 @@ export type PostAstrologySolarReturnResponses = {
10895
11086
  */
10896
11087
  strength: number;
10897
11088
  /**
10898
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
11089
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
10899
11090
  */
10900
11091
  interpretation: 'harmonious' | 'challenging' | 'neutral';
10901
11092
  }>;
@@ -11182,11 +11373,11 @@ export type PostAstrologyLunarReturnResponses = {
11182
11373
  timezone: number;
11183
11374
  };
11184
11375
  /**
11185
- * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node), Chiron, and Black Moon Lilith.
11376
+ * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node, in the requested `nodeType` convention), Chiron, and Black Moon Lilith.
11186
11377
  */
11187
11378
  planets: Array<{
11188
11379
  /**
11189
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
11380
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
11190
11381
  */
11191
11382
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
11192
11383
  /**
@@ -11276,7 +11467,7 @@ export type PostAstrologyLunarReturnResponses = {
11276
11467
  */
11277
11468
  strength: number;
11278
11469
  /**
11279
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
11470
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
11280
11471
  */
11281
11472
  interpretation: 'harmonious' | 'challenging' | 'neutral';
11282
11473
  }>;
@@ -11384,6 +11575,10 @@ export type PostAstrologyCompositeChartData = {
11384
11575
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
11385
11576
  */
11386
11577
  timezone: number | string;
11578
+ /**
11579
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
11580
+ */
11581
+ nodeType?: 'mean' | 'true';
11387
11582
  };
11388
11583
  /**
11389
11584
  * Second person birth details (date, time, location, timezone).
@@ -11409,6 +11604,10 @@ export type PostAstrologyCompositeChartData = {
11409
11604
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
11410
11605
  */
11411
11606
  timezone: number | string;
11607
+ /**
11608
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
11609
+ */
11610
+ nodeType?: 'mean' | 'true';
11412
11611
  };
11413
11612
  /**
11414
11613
  * House system for the composite chart. Placidus (default), Whole Sign, Equal, or Koch.
@@ -11589,7 +11788,7 @@ export type PostAstrologyCompositeChartResponses = {
11589
11788
  */
11590
11789
  compositePlanets: Array<{
11591
11790
  /**
11592
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
11791
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
11593
11792
  */
11594
11793
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
11595
11794
  /**
@@ -11726,7 +11925,7 @@ export type PostAstrologyCompositeChartResponses = {
11726
11925
  */
11727
11926
  strength: number;
11728
11927
  /**
11729
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
11928
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
11730
11929
  */
11731
11930
  interpretation: 'harmonious' | 'challenging' | 'neutral';
11732
11931
  }>;
@@ -11778,6 +11977,10 @@ export type PostAstrologyCompatibilityScoreData = {
11778
11977
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
11779
11978
  */
11780
11979
  timezone: number | string;
11980
+ /**
11981
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
11982
+ */
11983
+ nodeType?: 'mean' | 'true';
11781
11984
  };
11782
11985
  /**
11783
11986
  * Second person birth details. Compared against person1 to evaluate inter-chart aspects and compatibility.
@@ -11803,6 +12006,10 @@ export type PostAstrologyCompatibilityScoreData = {
11803
12006
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
11804
12007
  */
11805
12008
  timezone: number | string;
12009
+ /**
12010
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
12011
+ */
12012
+ nodeType?: 'mean' | 'true';
11806
12013
  };
11807
12014
  };
11808
12015
  path?: never;
@@ -13096,11 +13303,11 @@ export type PostAstrologyPlanetaryReturnsResponses = {
13096
13303
  timezone: number;
13097
13304
  };
13098
13305
  /**
13099
- * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node), Chiron, and Black Moon Lilith.
13306
+ * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node, in the requested `nodeType` convention), Chiron, and Black Moon Lilith.
13100
13307
  */
13101
13308
  planets: Array<{
13102
13309
  /**
13103
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
13310
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
13104
13311
  */
13105
13312
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
13106
13313
  /**
@@ -13190,7 +13397,7 @@ export type PostAstrologyPlanetaryReturnsResponses = {
13190
13397
  */
13191
13398
  strength: number;
13192
13399
  /**
13193
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
13400
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
13194
13401
  */
13195
13402
  interpretation: 'harmonious' | 'challenging' | 'neutral';
13196
13403
  }>;
@@ -13290,6 +13497,10 @@ export type PostAstrologyAstrocartographyData = {
13290
13497
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
13291
13498
  */
13292
13499
  timezone: number | string;
13500
+ /**
13501
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
13502
+ */
13503
+ nodeType?: 'mean' | 'true';
13293
13504
  };
13294
13505
  path?: never;
13295
13506
  query?: {
@@ -13715,6 +13926,10 @@ export type PostAstrologyFixedStarsData = {
13715
13926
  * Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
13716
13927
  */
13717
13928
  timezone: number | string;
13929
+ /**
13930
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
13931
+ */
13932
+ nodeType?: 'mean' | 'true';
13718
13933
  };
13719
13934
  path?: never;
13720
13935
  query?: {
@@ -20835,7 +21050,7 @@ export type PostVedicAstrologyKpRulingPlanetsData = {
20835
21050
  */
20836
21051
  birthTime?: string;
20837
21052
  /**
20838
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
21053
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
20839
21054
  */
20840
21055
  nodeType?: 'mean' | 'true';
20841
21056
  };
@@ -20997,7 +21212,7 @@ export type PostVedicAstrologyKpRulingPlanetsIntervalData = {
20997
21212
  */
20998
21213
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
20999
21214
  /**
21000
- * Lunar node type for Rahu and Ketu positions. "mean" uses the smooth mean node (traditional Vedic astrology default). "true" uses the osculating node with perturbation corrections, oscillating up to 1.5 degrees from mean with a 173-day period. Impacts KP sub-lord assignments in narrow boundary cases. Defaults to "mean".
21215
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
21001
21216
  */
21002
21217
  nodeType?: 'mean' | 'true';
21003
21218
  };
@@ -22409,6 +22624,19 @@ export type PostVedicAstrologyTransitResponses = {
22409
22624
  * Transit analysis calculated successfully
22410
22625
  */
22411
22626
  200: {
22627
+ /**
22628
+ * The zodiac frame every longitude in this response was computed in, so a cached or forwarded payload is self describing. Sidereal requests report the Lahiri ayanamsa, read at the birth instant; the transit positions use the same named frame resolved at their own instant, which moves by about 50 arcseconds a year. A tropical request reports "tropical" with 0 degrees subtracted, which is the one case a Vedic table can otherwise be rendered in the wrong zodiac with nothing on screen saying so.
22629
+ */
22630
+ frame: {
22631
+ /**
22632
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
22633
+ */
22634
+ ayanamsa: string;
22635
+ /**
22636
+ * Degrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
22637
+ */
22638
+ ayanamsaDegrees: number;
22639
+ };
22412
22640
  /**
22413
22641
  * Birth datetime used for the natal chart, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). Combine it with the timezone field to recover the UTC instant.
22414
22642
  */
@@ -22455,11 +22683,15 @@ export type PostVedicAstrologyTransitResponses = {
22455
22683
  */
22456
22684
  sign: string;
22457
22685
  /**
22458
- * Which natal house (whole-sign bhava from the Lagna) this planet is currently transiting through. Key for Gochar predictions.
22686
+ * Which natal house (whole-sign bhava counted from the Lagna) this graha is currently transiting through. This is the Lagna reading of the transit, which is what a transit chart drawn over the birth chart shows. For the house classical Gochara is judged from, read houseFromMoon instead.
22459
22687
  */
22460
22688
  natalHouse: number;
22461
22689
  /**
22462
- * Aspects formed between this transiting planet and natal planets.
22690
+ * Which house this graha is transiting counted from the natal Moon sign (Janma Rashi), 1-12 whole-sign and counted inclusively, so the Moon sign itself is 1. This is the number classical Gochara is reckoned in: Phaladeepika chapter 26 opens by saying that of all the Lagnas only the Moon Lagna matters for transit results, and the Vedha and Ashtakavarga transit rules are counted from the Moon throughout. The reference sign is the sign of the Moon entry in natalPlanets, so a client can label the column without a second request.
22691
+ */
22692
+ houseFromMoon: number;
22693
+ /**
22694
+ * Degree-based angular aspects between this transiting graha and the natal grahas. Western vocabulary, kept for callers who read a chart that way; drishtiToNatal is the Vedic answer to the same question.
22463
22695
  */
22464
22696
  aspectsToNatal: Array<{
22465
22697
  /**
@@ -22467,7 +22699,7 @@ export type PostVedicAstrologyTransitResponses = {
22467
22699
  */
22468
22700
  natalPlanet: string;
22469
22701
  /**
22470
- * Aspect type: conjunction, opposition, trine, square, or sextile.
22702
+ * Degree-based angular aspect between the two longitudes: conjunction, opposition, trine, square, or sextile. This is the Western aspect vocabulary and it is offered for charts read that way. Parashari jyotish has no sextile, square or trine, so for the Vedic reading use drishtiToNatal, which reports graha drishti by house count.
22471
22703
  */
22472
22704
  aspectType: string;
22473
22705
  /**
@@ -22475,6 +22707,27 @@ export type PostVedicAstrologyTransitResponses = {
22475
22707
  */
22476
22708
  orb: number;
22477
22709
  }>;
22710
+ /**
22711
+ * Graha drishti cast by this transiting graha onto the natal grahas, the Vedic reading of transit-to-natal aspects. Rahu and Ketu cast none. Empty when this graha reaches no occupied natal sign.
22712
+ */
22713
+ drishtiToNatal: Array<{
22714
+ /**
22715
+ * Natal graha receiving the drishti from this transiting graha.
22716
+ */
22717
+ natalPlanet: string;
22718
+ /**
22719
+ * Which house the drishti falls on, counted whole-sign and inclusively from the transiting graha. Every graha aspects the 7th; Mars adds the 4th and 8th, Jupiter the 5th and 9th, Saturn the 3rd and 10th. Same vocabulary the /aspects endpoint returns, so the two can be compared directly.
22720
+ */
22721
+ aspectType: 'conjunction' | '7th' | '4th' | '8th' | '5th' | '9th' | '3rd' | '10th';
22722
+ /**
22723
+ * Drishti strength as a percentage. Full and special aspects are 100; the partial quarter, half and three-quarter sights are not reported.
22724
+ */
22725
+ strength: number;
22726
+ /**
22727
+ * Gap between the two degrees-in-sign, in degrees. Graha drishti is whole-sign and does not depend on this, so read it as how exact the sight is inside the pair of rashis rather than as a condition for the aspect.
22728
+ */
22729
+ orb: number;
22730
+ }>;
22478
22731
  /**
22479
22732
  * Gochara Kaksha: the ashtakavarga-qualified reading of this transit. The sign says where a graha is, this says whether the exact stretch it currently occupies is one its own Bhinnashtakavarga supports, which is the classical way of refining a transit verdict from sign-level to under four degrees.
22480
22733
  */
@@ -22514,17 +22767,25 @@ export type PostVedicAstrologyTransitResponses = {
22514
22767
  */
22515
22768
  planet: string;
22516
22769
  /**
22517
- * Human-readable transit summary.
22770
+ * Human-readable transit summary, naming the rashi being transited and both house readings: from the Lagna, then from the natal Moon.
22518
22771
  */
22519
22772
  description: string;
22520
22773
  /**
22521
- * Natal house being transited by this slow planet.
22774
+ * Natal house being transited by this slow graha, counted whole-sign from the Lagna. Mirrors natalHouse on the matching transitingPlanets entry.
22522
22775
  */
22523
22776
  natalHouse: number;
22524
22777
  /**
22525
- * Notable aspects to natal planets from this slow-moving transiting planet.
22778
+ * House being transited by this slow graha counted from the natal Moon sign (Janma Rashi), the classical Gochara reference. Mirrors houseFromMoon on the matching transitingPlanets entry.
22779
+ */
22780
+ houseFromMoon: number;
22781
+ /**
22782
+ * Notable degree-based angular aspects to natal planets from this slow-moving transiting planet, in Western vocabulary.
22526
22783
  */
22527
22784
  aspects: Array<string>;
22785
+ /**
22786
+ * Graha drishti this slow-moving transiting graha casts on the natal grahas, the Vedic reading. Empty for Rahu and Ketu, which cast none.
22787
+ */
22788
+ drishti: Array<string>;
22528
22789
  }>;
22529
22790
  };
22530
22791
  };
@@ -26570,11 +26831,11 @@ export type PostForecastSolarReturnResponses = {
26570
26831
  timezone: number;
26571
26832
  };
26572
26833
  /**
26573
- * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node), Chiron, and Black Moon Lilith.
26834
+ * All 14 celestial bodies in the tropical zodiac with house placements: the 10 classical planets (Sun through Pluto), the lunar nodes (North Node, South Node, in the requested `nodeType` convention), Chiron, and Black Moon Lilith.
26574
26835
  */
26575
26836
  planets: Array<{
26576
26837
  /**
26577
- * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee).
26838
+ * Body name. One of the 10 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto), the lunar nodes (North Node, South Node), Chiron, or Black Moon Lilith (the mean lunar apogee). The nodes follow the request `nodeType`, which defaults to the true (osculating) node; pass "mean" for the smoothed node. The two differ by up to about 1.8 degrees and no other body is affected.
26578
26839
  */
26579
26840
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
26580
26841
  /**
@@ -26664,7 +26925,7 @@ export type PostForecastSolarReturnResponses = {
26664
26925
  */
26665
26926
  strength: number;
26666
26927
  /**
26667
- * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
26928
+ * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies. Always English, whatever the lang parameter says: it is an identifier consumers switch and style on. Use interpretationLocalized for anything a reader sees.
26668
26929
  */
26669
26930
  interpretation: 'harmonious' | 'challenging' | 'neutral';
26670
26931
  }>;
@@ -26735,7 +26996,7 @@ export type PostHumanDesignBodygraphData = {
26735
26996
  */
26736
26997
  longitude?: number;
26737
26998
  /**
26738
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
26999
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
26739
27000
  */
26740
27001
  nodeType?: 'mean' | 'true';
26741
27002
  };
@@ -26859,9 +27120,13 @@ export type PostHumanDesignBodygraphResponses = {
26859
27120
  */
26860
27121
  200: {
26861
27122
  /**
26862
- * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector.
27123
+ * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use typeLocalized for anything a reader sees.
26863
27124
  */
26864
27125
  type: string;
27126
+ /**
27127
+ * Energy type name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27128
+ */
27129
+ typeLocalized?: string;
26865
27130
  /**
26866
27131
  * What the aura of this type does and how it is designed to engage life. The grounding text for the type label, so a consuming agent does not have to supply the meaning itself.
26867
27132
  */
@@ -26871,29 +27136,45 @@ export type PostHumanDesignBodygraphResponses = {
26871
27136
  */
26872
27137
  aura: string;
26873
27138
  /**
26874
- * The aura strategy for engaging life correctly for this type.
27139
+ * The aura strategy for engaging life correctly for this type. Always English, whatever the lang parameter says. Use strategyLocalized for anything a reader sees.
26875
27140
  */
26876
27141
  strategy: string;
27142
+ /**
27143
+ * Strategy name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27144
+ */
27145
+ strategyLocalized?: string;
26877
27146
  /**
26878
27147
  * How to actually apply the strategy. The strategy field alone is a bare label such as Respond or Inform; this is the operating instruction behind it.
26879
27148
  */
26880
27149
  strategyDescription: string;
26881
27150
  /**
26882
- * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar.
27151
+ * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use authorityLocalized for anything a reader sees.
26883
27152
  */
26884
27153
  authority: string;
27154
+ /**
27155
+ * Inner authority name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27156
+ */
27157
+ authorityLocalized?: string;
26885
27158
  /**
26886
27159
  * How the decision is made, the timing it requires, and the characteristic trap. Inner authority is the most actionable output of a Human Design chart, so this is the field to lean on when grounding a reading.
26887
27160
  */
26888
27161
  authorityDescription: string;
26889
27162
  /**
26890
- * The signature feeling of living in alignment with the type.
27163
+ * The signature feeling of living in alignment with the type. Always English, whatever the lang parameter says. Use signatureLocalized for anything a reader sees.
26891
27164
  */
26892
27165
  signature: string;
26893
27166
  /**
26894
- * The not-self theme, the recurring feeling that signals being out of alignment.
27167
+ * Signature theme name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27168
+ */
27169
+ signatureLocalized?: string;
27170
+ /**
27171
+ * The not-self theme, the recurring feeling that signals being out of alignment. Always English, whatever the lang parameter says. Use notSelfLocalized for anything a reader sees.
26895
27172
  */
26896
27173
  notSelf: string;
27174
+ /**
27175
+ * Not-self theme name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27176
+ */
27177
+ notSelfLocalized?: string;
26897
27178
  /**
26898
27179
  * Profile in conscious/unconscious form from the Personality Sun line over the Design Sun line.
26899
27180
  */
@@ -26924,9 +27205,13 @@ export type PostHumanDesignBodygraphResponses = {
26924
27205
  */
26925
27206
  profileDescription: string;
26926
27207
  /**
26927
- * Definition type from the number of connected components among defined centers. One of None, Single, Split, Triple Split, Quadruple Split.
27208
+ * Definition type from the number of connected components among defined centers. One of None, Single, Split, Triple Split, Quadruple Split. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use definitionLocalized for anything a reader sees.
26928
27209
  */
26929
27210
  definition: string;
27211
+ /**
27212
+ * Definition type name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27213
+ */
27214
+ definitionLocalized?: string;
26930
27215
  /**
26931
27216
  * How energy flows through the defined centers in this configuration, and what the configuration needs. For a split, this is where the bridging gates of other people matter.
26932
27217
  */
@@ -26946,9 +27231,13 @@ export type PostHumanDesignBodygraphResponses = {
26946
27231
  */
26947
27232
  gates: Array<number>;
26948
27233
  /**
26949
- * Cross angle. One of Right Angle, Juxtaposition, Left Angle.
27234
+ * Cross angle. One of Right Angle, Juxtaposition, Left Angle. Always English, whatever the lang parameter says. Use angleLocalized for anything a reader sees.
26950
27235
  */
26951
27236
  angle: string;
27237
+ /**
27238
+ * Cross angle name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27239
+ */
27240
+ angleLocalized?: string;
26952
27241
  /**
26953
27242
  * Short code for the angle. One of RAX, JXT, LAX.
26954
27243
  */
@@ -26971,9 +27260,13 @@ export type PostHumanDesignBodygraphResponses = {
26971
27260
  */
26972
27261
  id: string;
26973
27262
  /**
26974
- * Display name of the center.
27263
+ * Display name of the center. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
26975
27264
  */
26976
27265
  name: string;
27266
+ /**
27267
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27268
+ */
27269
+ nameLocalized?: string;
26977
27270
  /**
26978
27271
  * Whether the center is defined. A defined center is a consistent source of energy or awareness; an undefined center is open and conditioned by others.
26979
27272
  */
@@ -27016,13 +27309,21 @@ export type PostHumanDesignBodygraphResponses = {
27016
27309
  */
27017
27310
  gateB: number;
27018
27311
  /**
27019
- * Name of the defined channel.
27312
+ * Name of the defined channel. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27020
27313
  */
27021
27314
  name: string;
27022
27315
  /**
27023
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27316
+ * Channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27317
+ */
27318
+ nameLocalized?: string;
27319
+ /**
27320
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27024
27321
  */
27025
27322
  circuit: string;
27323
+ /**
27324
+ * Circuit family name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27325
+ */
27326
+ circuitLocalized?: string;
27026
27327
  /**
27027
27328
  * The two centers this channel connects and defines.
27028
27329
  */
@@ -27041,9 +27342,13 @@ export type PostHumanDesignBodygraphResponses = {
27041
27342
  */
27042
27343
  gates: Array<{
27043
27344
  /**
27044
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
27345
+ * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Always English, whatever the lang parameter says, so it stays safe to compare against in code and to key a glyph table on. Use planetLocalized for anything a reader sees.
27045
27346
  */
27046
27347
  planet: string;
27348
+ /**
27349
+ * Activating body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27350
+ */
27351
+ planetLocalized?: string;
27047
27352
  /**
27048
27353
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
27049
27354
  */
@@ -27057,9 +27362,13 @@ export type PostHumanDesignBodygraphResponses = {
27057
27362
  */
27058
27363
  line: number;
27059
27364
  /**
27060
- * Human Design keynote name of the gate, describing its bodygraph function.
27365
+ * Human Design keynote name of the gate, describing its bodygraph function. Always English, whatever the lang parameter says. Use gateNameLocalized for anything a reader sees.
27061
27366
  */
27062
27367
  gateName: string;
27368
+ /**
27369
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27370
+ */
27371
+ gateNameLocalized?: string;
27063
27372
  /**
27064
27373
  * Bodygraph function of the gate: what it does in the center it sits in and the channel it forms. This is NOT the meaning of the I-Ching hexagram that shares its number. They share a number, not a definition.
27065
27374
  */
@@ -27118,7 +27427,7 @@ export type PostHumanDesignConnectionData = {
27118
27427
  */
27119
27428
  longitude?: number;
27120
27429
  /**
27121
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
27430
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
27122
27431
  */
27123
27432
  nodeType?: 'mean' | 'true';
27124
27433
  };
@@ -27147,7 +27456,7 @@ export type PostHumanDesignConnectionData = {
27147
27456
  */
27148
27457
  longitude?: number;
27149
27458
  /**
27150
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
27459
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
27151
27460
  */
27152
27461
  nodeType?: 'mean' | 'true';
27153
27462
  };
@@ -27288,21 +27597,33 @@ export type PostHumanDesignConnectionResponses = {
27288
27597
  */
27289
27598
  gateB: number;
27290
27599
  /**
27291
- * Name of the channel whose connection dynamic is reported.
27600
+ * Name of the channel whose connection dynamic is reported. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27292
27601
  */
27293
27602
  name: string;
27294
27603
  /**
27295
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27604
+ * Channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27605
+ */
27606
+ nameLocalized?: string;
27607
+ /**
27608
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27296
27609
  */
27297
27610
  circuit: string;
27611
+ /**
27612
+ * Circuit family name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27613
+ */
27614
+ circuitLocalized?: string;
27298
27615
  /**
27299
27616
  * The two centers this channel connects in the bodygraph.
27300
27617
  */
27301
27618
  centers: Array<string>;
27302
27619
  /**
27303
- * Connection dynamic for this channel. Electromagnetic means each person holds one of the two gates and the channel completes only together, the classic point of attraction. Dominance means one person holds both gates and the other holds neither, a one-way conditioning. Compromise means one person holds both gates and the other holds a single hanging gate. Companionship means both people independently hold both gates, a shared and familiar frequency.
27620
+ * Connection dynamic for this channel. Electromagnetic means each person holds one of the two gates and the channel completes only together, the classic point of attraction. Dominance means one person holds both gates and the other holds neither, a one-way conditioning. Compromise means one person holds both gates and the other holds a single hanging gate. Companionship means both people independently hold both gates, a shared and familiar frequency. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use dynamicLocalized for anything a reader sees.
27304
27621
  */
27305
27622
  dynamic: string;
27623
+ /**
27624
+ * Connection dynamic name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27625
+ */
27626
+ dynamicLocalized?: string;
27306
27627
  /**
27307
27628
  * Which of the channel two gates person A holds, from one to both.
27308
27629
  */
@@ -27321,9 +27642,13 @@ export type PostHumanDesignConnectionResponses = {
27321
27642
  */
27322
27643
  id: string;
27323
27644
  /**
27324
- * Display name of the center.
27645
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27325
27646
  */
27326
27647
  name: string;
27648
+ /**
27649
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27650
+ */
27651
+ nameLocalized?: string;
27327
27652
  /**
27328
27653
  * Whether the center is defined in the combined connection bodygraph, where a channel counts as defined when the two people together hold both of its gates.
27329
27654
  */
@@ -27334,9 +27659,13 @@ export type PostHumanDesignConnectionResponses = {
27334
27659
  definedBy: Array<string>;
27335
27660
  }>;
27336
27661
  /**
27337
- * Definition of the combined connection bodygraph from connected components among its defined centers. One of None, Single, Split, Triple Split, Quadruple Split.
27662
+ * Definition of the combined connection bodygraph from connected components among its defined centers. One of None, Single, Split, Triple Split, Quadruple Split. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use combinedDefinitionLocalized for anything a reader sees.
27338
27663
  */
27339
27664
  combinedDefinition: string;
27665
+ /**
27666
+ * Combined definition name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27667
+ */
27668
+ combinedDefinitionLocalized?: string;
27340
27669
  /**
27341
27670
  * Count of each connection dynamic across all connected channels.
27342
27671
  */
@@ -27390,7 +27719,7 @@ export type PostHumanDesignPentaData = {
27390
27719
  */
27391
27720
  longitude?: number;
27392
27721
  /**
27393
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
27722
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
27394
27723
  */
27395
27724
  nodeType?: 'mean' | 'true';
27396
27725
  }>;
@@ -27531,13 +27860,21 @@ export type PostHumanDesignPentaResponses = {
27531
27860
  */
27532
27861
  gateB: number;
27533
27862
  /**
27534
- * Name of the Penta channel. One of The Alpha, Inspiration, The Prodigal, Rhythm, The Beat, Discovery.
27863
+ * Name of the Penta channel. One of The Alpha, Inspiration, The Prodigal, Rhythm, The Beat, Discovery. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27535
27864
  */
27536
27865
  name: string;
27537
27866
  /**
27538
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27867
+ * Penta channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27868
+ */
27869
+ nameLocalized?: string;
27870
+ /**
27871
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27539
27872
  */
27540
27873
  circuit: string;
27874
+ /**
27875
+ * Circuit family name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27876
+ */
27877
+ circuitLocalized?: string;
27541
27878
  /**
27542
27879
  * Position of the channel in the Penta. upper channels run from the G Center to the Throat and carry the leadership and how-the-group-presents roles. lower channels run from the G Center to the Sacral and carry the managed, generative, resource roles.
27543
27880
  */
@@ -27568,9 +27905,13 @@ export type PostHumanDesignPentaResponses = {
27568
27905
  */
27569
27906
  gate: number;
27570
27907
  /**
27571
- * Human Design keynote name of the gate, describing the role it brings to the group.
27908
+ * Human Design keynote name of the gate, describing the role it brings to the group. Always English, whatever the lang parameter says. Use gateNameLocalized for anything a reader sees.
27572
27909
  */
27573
27910
  gateName: string;
27911
+ /**
27912
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
27913
+ */
27914
+ gateNameLocalized?: string;
27574
27915
  /**
27575
27916
  * Whether at least one member holds this gate. A gate held by nobody is a gap that conditions the group to compensate for the missing role.
27576
27917
  */
@@ -27633,7 +27974,7 @@ export type PostHumanDesignTransitData = {
27633
27974
  */
27634
27975
  longitude?: number;
27635
27976
  /**
27636
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
27977
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
27637
27978
  */
27638
27979
  nodeType?: 'mean' | 'true';
27639
27980
  };
@@ -27782,9 +28123,13 @@ export type PostHumanDesignTransitResponses = {
27782
28123
  */
27783
28124
  activations: Array<{
27784
28125
  /**
27785
- * Transiting body whose current position lands on this gate. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
28126
+ * Transiting body whose current position lands on this gate. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Always English, whatever the lang parameter says, so it stays safe to compare against in code and to key a glyph table on. Use bodyLocalized for anything a reader sees.
27786
28127
  */
27787
28128
  body: string;
28129
+ /**
28130
+ * Transiting body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28131
+ */
28132
+ bodyLocalized?: string;
27788
28133
  /**
27789
28134
  * Human Design gate number from 1 to 64 this transiting body currently sits in.
27790
28135
  */
@@ -27794,9 +28139,13 @@ export type PostHumanDesignTransitResponses = {
27794
28139
  */
27795
28140
  line: number;
27796
28141
  /**
27797
- * Human Design keynote name of the gate the transiting body activates.
28142
+ * Human Design keynote name of the gate the transiting body activates. Always English, whatever the lang parameter says. Use gateNameLocalized for anything a reader sees.
27798
28143
  */
27799
28144
  gateName: string;
28145
+ /**
28146
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28147
+ */
28148
+ gateNameLocalized?: string;
27800
28149
  /**
27801
28150
  * Cross-reference to the I-Ching hexagram that shares this gate number.
27802
28151
  */
@@ -27824,21 +28173,33 @@ export type PostHumanDesignTransitResponses = {
27824
28173
  */
27825
28174
  gateB: number;
27826
28175
  /**
27827
- * Name of the channel the transit temporarily completes.
28176
+ * Name of the channel the transit temporarily completes. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27828
28177
  */
27829
28178
  name: string;
27830
28179
  /**
27831
- * Circuit family of the channel. One of Individual, Collective, Tribal.
28180
+ * Channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28181
+ */
28182
+ nameLocalized?: string;
28183
+ /**
28184
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27832
28185
  */
27833
28186
  circuit: string;
28187
+ /**
28188
+ * Circuit family name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28189
+ */
28190
+ circuitLocalized?: string;
27834
28191
  /**
27835
28192
  * The two centers this channel connects and temporarily defines.
27836
28193
  */
27837
28194
  centers: Array<string>;
27838
28195
  /**
27839
- * How the transit completes the channel. personal means the natal chart already holds one gate and the transit supplies the other, the classic electromagnetic completion. educational means both gates are open in the natal chart and the transit supplies both at once.
28196
+ * How the transit completes the channel. personal means the natal chart already holds one gate and the transit supplies the other, the classic electromagnetic completion. educational means both gates are open in the natal chart and the transit supplies both at once. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use kindLocalized for anything a reader sees.
27840
28197
  */
27841
28198
  kind: string;
28199
+ /**
28200
+ * Completion kind name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28201
+ */
28202
+ kindLocalized?: string;
27842
28203
  /**
27843
28204
  * Gate or gates of this channel the natal chart already holds. Empty for an educational channel.
27844
28205
  */
@@ -27857,9 +28218,13 @@ export type PostHumanDesignTransitResponses = {
27857
28218
  */
27858
28219
  id: string;
27859
28220
  /**
27860
- * Display name of the center.
28221
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27861
28222
  */
27862
28223
  name: string;
28224
+ /**
28225
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28226
+ */
28227
+ nameLocalized?: string;
27863
28228
  /**
27864
28229
  * Always true. The center is open in the natal chart and temporarily defined by a transit-completed channel for the duration of the transit.
27865
28230
  */
@@ -27897,7 +28262,7 @@ export type PostHumanDesignTypeData = {
27897
28262
  */
27898
28263
  longitude?: number;
27899
28264
  /**
27900
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
28265
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
27901
28266
  */
27902
28267
  nodeType?: 'mean' | 'true';
27903
28268
  };
@@ -28021,9 +28386,13 @@ export type PostHumanDesignTypeResponses = {
28021
28386
  */
28022
28387
  200: {
28023
28388
  /**
28024
- * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector.
28389
+ * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use typeLocalized for anything a reader sees.
28025
28390
  */
28026
28391
  type: string;
28392
+ /**
28393
+ * Energy type name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28394
+ */
28395
+ typeLocalized?: string;
28027
28396
  /**
28028
28397
  * What the aura of this type does and how it is designed to engage life. The grounding text for the type label, so a consuming agent does not have to supply the meaning itself.
28029
28398
  */
@@ -28033,29 +28402,45 @@ export type PostHumanDesignTypeResponses = {
28033
28402
  */
28034
28403
  aura: string;
28035
28404
  /**
28036
- * The aura strategy for engaging life correctly for this type.
28405
+ * The aura strategy for engaging life correctly for this type. Always English, whatever the lang parameter says. Use strategyLocalized for anything a reader sees.
28037
28406
  */
28038
28407
  strategy: string;
28408
+ /**
28409
+ * Strategy name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28410
+ */
28411
+ strategyLocalized?: string;
28039
28412
  /**
28040
28413
  * How to actually apply the strategy. The strategy field alone is a bare label such as Respond or Inform; this is the operating instruction behind it.
28041
28414
  */
28042
28415
  strategyDescription: string;
28043
28416
  /**
28044
- * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar.
28417
+ * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use authorityLocalized for anything a reader sees.
28045
28418
  */
28046
28419
  authority: string;
28420
+ /**
28421
+ * Inner authority name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28422
+ */
28423
+ authorityLocalized?: string;
28047
28424
  /**
28048
28425
  * How the decision is made, the timing it requires, and the characteristic trap. Inner authority is the most actionable output of a Human Design chart.
28049
28426
  */
28050
28427
  authorityDescription: string;
28051
28428
  /**
28052
- * The signature feeling of living in alignment.
28429
+ * The signature feeling of living in alignment. Always English, whatever the lang parameter says. Use signatureLocalized for anything a reader sees.
28053
28430
  */
28054
28431
  signature: string;
28055
28432
  /**
28056
- * The not-self theme that signals being out of alignment.
28433
+ * Signature theme name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28434
+ */
28435
+ signatureLocalized?: string;
28436
+ /**
28437
+ * The not-self theme that signals being out of alignment. Always English, whatever the lang parameter says. Use notSelfLocalized for anything a reader sees.
28057
28438
  */
28058
28439
  notSelf: string;
28440
+ /**
28441
+ * Not-self theme name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28442
+ */
28443
+ notSelfLocalized?: string;
28059
28444
  /**
28060
28445
  * Profile from the Personality Sun line over the Design Sun line.
28061
28446
  */
@@ -28088,7 +28473,7 @@ export type PostHumanDesignGatesData = {
28088
28473
  */
28089
28474
  longitude?: number;
28090
28475
  /**
28091
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
28476
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
28092
28477
  */
28093
28478
  nodeType?: 'mean' | 'true';
28094
28479
  };
@@ -28216,9 +28601,13 @@ export type PostHumanDesignGatesResponses = {
28216
28601
  */
28217
28602
  personality: Array<{
28218
28603
  /**
28219
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
28604
+ * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Always English, whatever the lang parameter says, so it stays safe to compare against in code and to key a glyph table on. Use planetLocalized for anything a reader sees.
28220
28605
  */
28221
28606
  planet: string;
28607
+ /**
28608
+ * Activating body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28609
+ */
28610
+ planetLocalized?: string;
28222
28611
  /**
28223
28612
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
28224
28613
  */
@@ -28232,9 +28621,13 @@ export type PostHumanDesignGatesResponses = {
28232
28621
  */
28233
28622
  line: number;
28234
28623
  /**
28235
- * Human Design keynote name of the gate, describing its bodygraph function.
28624
+ * Human Design keynote name of the gate, describing its bodygraph function. Always English, whatever the lang parameter says. Use gateNameLocalized for anything a reader sees.
28236
28625
  */
28237
28626
  gateName: string;
28627
+ /**
28628
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28629
+ */
28630
+ gateNameLocalized?: string;
28238
28631
  /**
28239
28632
  * Bodygraph function of the gate: what it does in the center it sits in and the channel it forms. This is NOT the meaning of the I-Ching hexagram that shares its number. They share a number, not a definition.
28240
28633
  */
@@ -28266,9 +28659,13 @@ export type PostHumanDesignGatesResponses = {
28266
28659
  */
28267
28660
  design: Array<{
28268
28661
  /**
28269
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
28662
+ * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Always English, whatever the lang parameter says, so it stays safe to compare against in code and to key a glyph table on. Use planetLocalized for anything a reader sees.
28270
28663
  */
28271
28664
  planet: string;
28665
+ /**
28666
+ * Activating body name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28667
+ */
28668
+ planetLocalized?: string;
28272
28669
  /**
28273
28670
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
28274
28671
  */
@@ -28282,9 +28679,13 @@ export type PostHumanDesignGatesResponses = {
28282
28679
  */
28283
28680
  line: number;
28284
28681
  /**
28285
- * Human Design keynote name of the gate, describing its bodygraph function.
28682
+ * Human Design keynote name of the gate, describing its bodygraph function. Always English, whatever the lang parameter says. Use gateNameLocalized for anything a reader sees.
28286
28683
  */
28287
28684
  gateName: string;
28685
+ /**
28686
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28687
+ */
28688
+ gateNameLocalized?: string;
28288
28689
  /**
28289
28690
  * Bodygraph function of the gate: what it does in the center it sits in and the channel it forms. This is NOT the meaning of the I-Ching hexagram that shares its number. They share a number, not a definition.
28290
28691
  */
@@ -28460,17 +28861,25 @@ export type GetHumanDesignGatesByNumberResponses = {
28460
28861
  */
28461
28862
  number: number;
28462
28863
  /**
28463
- * Human Design keynote name of the gate.
28864
+ * Human Design keynote name of the gate. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
28464
28865
  */
28465
28866
  name: string;
28867
+ /**
28868
+ * Gate keynote name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28869
+ */
28870
+ nameLocalized?: string;
28466
28871
  /**
28467
28872
  * Center the gate sits in.
28468
28873
  */
28469
28874
  center: string;
28470
28875
  /**
28471
- * Display name of the center.
28876
+ * Display name of the center. Always English, whatever the lang parameter says. Use centerNameLocalized for anything a reader sees.
28472
28877
  */
28473
28878
  centerName: string;
28879
+ /**
28880
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28881
+ */
28882
+ centerNameLocalized?: string;
28474
28883
  /**
28475
28884
  * The I-Ching hexagram that shares this gate number.
28476
28885
  */
@@ -28493,9 +28902,13 @@ export type GetHumanDesignGatesByNumberResponses = {
28493
28902
  */
28494
28903
  gate: number;
28495
28904
  /**
28496
- * Name of the shared channel.
28905
+ * Name of the shared channel. Always English, whatever the lang parameter says. Use channelLocalized for anything a reader sees.
28497
28906
  */
28498
28907
  channel: string;
28908
+ /**
28909
+ * Channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
28910
+ */
28911
+ channelLocalized?: string;
28499
28912
  }>;
28500
28913
  };
28501
28914
  };
@@ -28525,7 +28938,7 @@ export type PostHumanDesignChannelsData = {
28525
28938
  */
28526
28939
  longitude?: number;
28527
28940
  /**
28528
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
28941
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
28529
28942
  */
28530
28943
  nodeType?: 'mean' | 'true';
28531
28944
  };
@@ -28661,13 +29074,21 @@ export type PostHumanDesignChannelsResponses = {
28661
29074
  */
28662
29075
  gateB: number;
28663
29076
  /**
28664
- * Name of the defined channel.
29077
+ * Name of the defined channel. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
28665
29078
  */
28666
29079
  name: string;
28667
29080
  /**
28668
- * Circuit family of the channel. One of Individual, Collective, Tribal.
29081
+ * Channel name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29082
+ */
29083
+ nameLocalized?: string;
29084
+ /**
29085
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
28669
29086
  */
28670
29087
  circuit: string;
29088
+ /**
29089
+ * Circuit family name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29090
+ */
29091
+ circuitLocalized?: string;
28671
29092
  /**
28672
29093
  * The two centers this channel connects and defines.
28673
29094
  */
@@ -28717,7 +29138,7 @@ export type PostHumanDesignCentersData = {
28717
29138
  */
28718
29139
  longitude?: number;
28719
29140
  /**
28720
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
29141
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
28721
29142
  */
28722
29143
  nodeType?: 'mean' | 'true';
28723
29144
  };
@@ -28849,9 +29270,13 @@ export type PostHumanDesignCentersResponses = {
28849
29270
  */
28850
29271
  id: string;
28851
29272
  /**
28852
- * Display name of the center.
29273
+ * Display name of the center. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
28853
29274
  */
28854
29275
  name: string;
29276
+ /**
29277
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29278
+ */
29279
+ nameLocalized?: string;
28855
29280
  /**
28856
29281
  * Whether the center is defined. A defined center is a consistent source of energy or awareness; an undefined center is open and conditioned by others.
28857
29282
  */
@@ -29021,9 +29446,13 @@ export type GetHumanDesignCentersByIdResponses = {
29021
29446
  */
29022
29447
  id: string;
29023
29448
  /**
29024
- * Display name of the center.
29449
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
29025
29450
  */
29026
29451
  name: string;
29452
+ /**
29453
+ * Center name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29454
+ */
29455
+ nameLocalized?: string;
29027
29456
  /**
29028
29457
  * Whether this is a motor center.
29029
29458
  */
@@ -29068,7 +29497,7 @@ export type PostHumanDesignProfileData = {
29068
29497
  */
29069
29498
  longitude?: number;
29070
29499
  /**
29071
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
29500
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
29072
29501
  */
29073
29502
  nodeType?: 'mean' | 'true';
29074
29503
  };
@@ -29239,7 +29668,7 @@ export type PostHumanDesignVariablesData = {
29239
29668
  */
29240
29669
  longitude?: number;
29241
29670
  /**
29242
- * Lunar node convention for the North and South Node activations. Leave unset (or "true") for the standard Human Design chart: "true" is the osculating node used by professional Human Design software (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against. Pass "mean" to match a calculator that uses the smoothed mean node (the traditional Western-astrology default, common in free chart tools). The two agree on almost every chart; they diverge by up to ~1.75 degrees only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority, or definition. If another calculator shows a different type, it is likely using the mean node: pass "mean" to match it.
29671
+ * Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node activations. True is what professional Human Design software uses (HumanDesign.ai, Total Human Design) and is the value RoxyAPI verifies against, so leave it unset for a standard chart. It matters only when a node sits on a gate boundary, where the choice can move a node gate and, rarely, change the completed channels and therefore the type, authority or definition. If another calculator shows a different type, it is almost certainly using the mean node: pass "mean" to match it. Defaults to "true".
29243
29672
  */
29244
29673
  nodeType?: 'mean' | 'true';
29245
29674
  };
@@ -29371,17 +29800,29 @@ export type PostHumanDesignVariablesResponses = {
29371
29800
  */
29372
29801
  key: string;
29373
29802
  /**
29374
- * Arrow name. Determination is the top-left arrow governing the Primary Health System and digestion, Environment the bottom-left arrow, Perspective the bottom-right arrow also called View, and Motivation the top-right arrow.
29803
+ * Arrow name. Determination is the top-left arrow governing the Primary Health System and digestion, Environment the bottom-left arrow, Perspective the bottom-right arrow also called View, and Motivation the top-right arrow. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
29375
29804
  */
29376
29805
  name: string;
29377
29806
  /**
29378
- * Which half of the advanced layer the arrow belongs to. Primary Health System covers the body-side Determination and Environment arrows, Rave Psychology covers the mind-side Perspective and Motivation arrows.
29807
+ * Arrow name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29808
+ */
29809
+ nameLocalized?: string;
29810
+ /**
29811
+ * Which half of the advanced layer the arrow belongs to. Primary Health System covers the body-side Determination and Environment arrows, Rave Psychology covers the mind-side Perspective and Motivation arrows. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use layerLocalized for anything a reader sees.
29379
29812
  */
29380
29813
  layer: string;
29381
29814
  /**
29382
- * Position of the arrow at the head of the bodygraph. One of Top left, Bottom left, Top right, Bottom right.
29815
+ * Layer name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29816
+ */
29817
+ layerLocalized?: string;
29818
+ /**
29819
+ * Position of the arrow at the head of the bodygraph. One of Top left, Bottom left, Top right, Bottom right. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use positionLocalized for anything a reader sees.
29383
29820
  */
29384
29821
  position: string;
29822
+ /**
29823
+ * Arrow position name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29824
+ */
29825
+ positionLocalized?: string;
29385
29826
  /**
29386
29827
  * The single activation, body and chart side, that this arrow is derived from.
29387
29828
  */
@@ -29412,13 +29853,21 @@ export type PostHumanDesignVariablesResponses = {
29412
29853
  */
29413
29854
  direction: string;
29414
29855
  /**
29415
- * Name of the Color theme for this arrow, for example a determination family such as Touch, an environment such as Mountains, a perspective such as Personal, or a motivation such as Hope.
29856
+ * Name of the Color theme for this arrow, for example a determination family such as Touch, an environment such as Mountains, a perspective such as Personal, or a motivation such as Hope. Always English, whatever the lang parameter says. Use colorLabelLocalized for anything a reader sees.
29416
29857
  */
29417
29858
  colorLabel: string;
29418
29859
  /**
29419
- * Keynote of the arrow direction for this arrow, for example Active or Passive for Determination, Focused or Peripheral for Perspective.
29860
+ * Color theme name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29861
+ */
29862
+ colorLabelLocalized?: string;
29863
+ /**
29864
+ * Keynote of the arrow direction for this arrow, for example Active or Passive for Determination, Focused or Peripheral for Perspective. Always English, whatever the lang parameter says. Use directionLabelLocalized for anything a reader sees.
29420
29865
  */
29421
29866
  directionLabel: string;
29867
+ /**
29868
+ * Arrow direction keynote in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29869
+ */
29870
+ directionLabelLocalized?: string;
29422
29871
  /**
29423
29872
  * What this arrow is and what it governs.
29424
29873
  */
@@ -29440,17 +29889,25 @@ export type PostHumanDesignVariablesResponses = {
29440
29889
  */
29441
29890
  directionMeaning: string;
29442
29891
  /**
29443
- * Name of the Base. Informational only: the Base is finer than any civil birth time can resolve.
29892
+ * Name of the Base. Informational only: the Base is finer than any civil birth time can resolve. Always English, whatever the lang parameter says. Use baseNameLocalized for anything a reader sees.
29444
29893
  */
29445
29894
  baseName: string;
29895
+ /**
29896
+ * Base name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29897
+ */
29898
+ baseNameLocalized?: string;
29446
29899
  /**
29447
29900
  * Cognition, the strongest sense, read off the Determination Tone. Present on the determination arrow ONLY: no authority supports reading Cognition from the other three arrows, so it is omitted rather than invented.
29448
29901
  */
29449
29902
  cognition?: {
29450
29903
  /**
29451
- * Name of the Cognition, the strongest sense. One of six read off the Determination Tone: Smell, Taste, Outer Vision, Inner Vision, Feeling, Touch.
29904
+ * Name of the Cognition, the strongest sense. One of six read off the Determination Tone: Smell, Taste, Outer Vision, Inner Vision, Feeling, Touch. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use labelLocalized for anything a reader sees.
29452
29905
  */
29453
29906
  label: string;
29907
+ /**
29908
+ * Cognition name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
29909
+ */
29910
+ labelLocalized?: string;
29454
29911
  /**
29455
29912
  * How this Cognition discriminates what is correct for the body, and the conditions that sharpen it. Renderable as the Cognition paragraph of a Variables or Primary Health System report.
29456
29913
  */
@@ -42272,7 +42729,7 @@ export type GetLocationSearchData = {
42272
42729
  path?: never;
42273
42730
  query: {
42274
42731
  /**
42275
- * City name to search for. Accepts bare city ("berlin"), city plus country ("berlin germany"), or comma-qualified ("berlin, germany", "springfield, illinois") for disambiguation. Matches against city name, province/state, or combined "city country" queries. Case-insensitive with partial matching (e.g. "ber" matches Berlin, Bern, Bergen).
42732
+ * Place to search for, written the way a person would. Accepts a bare city (berlin), a city plus country (berlin germany), a comma-qualified place (richfield, utah), a fully qualified place (richfield, utah, united states), or a historic name (bombay, peking, constantinople). Commas are optional, and a qualifier the dataset spells differently, such as USA for United States, still resolves. Matched against city name, alternate names, state or province, and country. Add the state or country whenever the name is common, since that is what separates the six Springfields, and Richfield, Utah from Richfield, Minnesota.
42276
42733
  */
42277
42734
  q: string;
42278
42735
  /**
@@ -42393,11 +42850,11 @@ export type GetLocationSearchError = GetLocationSearchErrors[keyof GetLocationSe
42393
42850
 
42394
42851
  export type GetLocationSearchResponses = {
42395
42852
  /**
42396
- * Matching cities sorted by relevance (prefix match first) then population
42853
+ * Matching places, best match first, with coordinates, IANA timezone and UTC offset
42397
42854
  */
42398
42855
  200: {
42399
42856
  /**
42400
- * Total number of cities matching the search query.
42857
+ * Number of places matching the query across all pages, not the number returned in this response. Greater than 1 means the name is ambiguous, so show province and country and let the user confirm before using the result for a chart.
42401
42858
  */
42402
42859
  total: number;
42403
42860
  /**
@@ -42405,11 +42862,11 @@ export type GetLocationSearchResponses = {
42405
42862
  */
42406
42863
  limit: number;
42407
42864
  /**
42408
- * Number of cities skipped. Use with limit for pagination.
42865
+ * Number of places skipped. Use with limit to page through results.
42409
42866
  */
42410
42867
  offset: number;
42411
42868
  /**
42412
- * City results for the current page, sorted by relevance (prefix match first) then population.
42869
+ * Matching places for the current page, best match first. Ordered by match quality, then population within equal quality: an exact name beats a qualified name such as richfield, utah, which beats a name merely starting with the query, which beats an incidental match on state or country. Take the first entry when total is 1, otherwise disambiguate on province and country.
42413
42870
  */
42414
42871
  cities: Array<{
42415
42872
  /**
@@ -42417,7 +42874,7 @@ export type GetLocationSearchResponses = {
42417
42874
  */
42418
42875
  city: string;
42419
42876
  /**
42420
- * State, province, canton, or administrative region. Helps disambiguate cities with the same name across regions (e.g. Springfield IL vs Springfield MO).
42877
+ * State, province, canton, or administrative region. Show it whenever more than one result comes back: it is what separates Richfield, Utah from Richfield, Minnesota, and the six US Springfields from each other. Empty for the small number of places with no administrative division recorded.
42421
42878
  */
42422
42879
  province: string;
42423
42880
  /**
@@ -42437,15 +42894,15 @@ export type GetLocationSearchResponses = {
42437
42894
  */
42438
42895
  longitude: number;
42439
42896
  /**
42440
- * IANA timezone identifier following the tz database standard (e.g. Europe/Berlin, America/New_York, Asia/Tokyo). Use with JavaScript Date, Luxon, day.js, or any date library for accurate local time conversion.
42897
+ * IANA timezone identifier following the tz database standard (e.g. Europe/Berlin, America/New_York, Asia/Tokyo). Always present. Pass THIS, not the numeric offset, into any chart or panchang request for a past date: the calculation endpoints resolve it to the offset that was actually in force on that date, including historical daylight saving. Also works directly with JavaScript Date, Luxon, day.js, or any date library.
42441
42898
  */
42442
42899
  timezone: string;
42443
42900
  /**
42444
- * Current UTC offset in decimal hours, automatically adjusted for daylight saving time. Pass directly as the timezone parameter in astrology API endpoints. Examples: 1 for CET, 2 for CEST, -5 for EST, 5.5 for IST, 5.75 for Nepal.
42901
+ * UTC offset in decimal hours for TODAY at this place, already adjusted for daylight saving. Convenient for displaying local time now. For a birth date or any past date use the `timezone` field instead, since the offset in force then may differ. Examples: 1 for CET, 2 for CEST, -5 for EST, 5.5 for IST, 5.75 for Nepal.
42445
42902
  */
42446
42903
  utcOffset: number;
42447
42904
  /**
42448
- * City population estimate from geographic databases. Larger cities rank higher in search results, ensuring major metropolitan areas appear first in autocomplete suggestions.
42905
+ * Population estimate for the place. Breaks ties between results of equal match quality, so among several places matching equally well the largest leads. It never outranks a better match, which is why a small town still wins when its name is typed exactly. May be 0 for a hamlet or administrative seat that carries no published figure.
42449
42906
  */
42450
42907
  population: number;
42451
42908
  }>;
@@ -42580,7 +43037,7 @@ export type GetLocationCountriesResponses = {
42580
43037
  */
42581
43038
  200: {
42582
43039
  /**
42583
- * Total number of countries available.
43040
+ * Total number of countries with at least one place in the dataset.
42584
43041
  */
42585
43042
  total: number;
42586
43043
  /**
@@ -42608,7 +43065,7 @@ export type GetLocationCountriesResponses = {
42608
43065
  */
42609
43066
  iso3: string;
42610
43067
  /**
42611
- * Number of searchable cities available for this country. Useful for showing coverage in UI or deciding whether to offer city search for a given country.
43068
+ * Number of searchable places in this country, including small towns and administrative seats. Useful for showing coverage in a UI or sizing a dependent city dropdown.
42612
43069
  */
42613
43070
  cityCount: number;
42614
43071
  }>;
@@ -42748,7 +43205,7 @@ export type GetLocationCountriesByIso2Responses = {
42748
43205
  */
42749
43206
  200: {
42750
43207
  /**
42751
- * Total number of cities available for this country.
43208
+ * Total number of places available for this country across all pages.
42752
43209
  */
42753
43210
  total: number;
42754
43211
  /**
@@ -42768,7 +43225,7 @@ export type GetLocationCountriesByIso2Responses = {
42768
43225
  */
42769
43226
  city: string;
42770
43227
  /**
42771
- * State, province, canton, or administrative region. Helps disambiguate cities with the same name across regions (e.g. Springfield IL vs Springfield MO).
43228
+ * State, province, canton, or administrative region. Show it whenever more than one result comes back: it is what separates Richfield, Utah from Richfield, Minnesota, and the six US Springfields from each other. Empty for the small number of places with no administrative division recorded.
42772
43229
  */
42773
43230
  province: string;
42774
43231
  /**
@@ -42788,15 +43245,15 @@ export type GetLocationCountriesByIso2Responses = {
42788
43245
  */
42789
43246
  longitude: number;
42790
43247
  /**
42791
- * IANA timezone identifier following the tz database standard (e.g. Europe/Berlin, America/New_York, Asia/Tokyo). Use with JavaScript Date, Luxon, day.js, or any date library for accurate local time conversion.
43248
+ * IANA timezone identifier following the tz database standard (e.g. Europe/Berlin, America/New_York, Asia/Tokyo). Always present. Pass THIS, not the numeric offset, into any chart or panchang request for a past date: the calculation endpoints resolve it to the offset that was actually in force on that date, including historical daylight saving. Also works directly with JavaScript Date, Luxon, day.js, or any date library.
42792
43249
  */
42793
43250
  timezone: string;
42794
43251
  /**
42795
- * Current UTC offset in decimal hours, automatically adjusted for daylight saving time. Pass directly as the timezone parameter in astrology API endpoints. Examples: 1 for CET, 2 for CEST, -5 for EST, 5.5 for IST, 5.75 for Nepal.
43252
+ * UTC offset in decimal hours for TODAY at this place, already adjusted for daylight saving. Convenient for displaying local time now. For a birth date or any past date use the `timezone` field instead, since the offset in force then may differ. Examples: 1 for CET, 2 for CEST, -5 for EST, 5.5 for IST, 5.75 for Nepal.
42796
43253
  */
42797
43254
  utcOffset: number;
42798
43255
  /**
42799
- * City population estimate from geographic databases. Larger cities rank higher in search results, ensuring major metropolitan areas appear first in autocomplete suggestions.
43256
+ * Population estimate for the place. Breaks ties between results of equal match quality, so among several places matching equally well the largest leads. It never outranks a better match, which is why a small town still wins when its name is typed exactly. May be 0 for a hamlet or administrative seat that carries no published figure.
42800
43257
  */
42801
43258
  population: number;
42802
43259
  }>;