@roxyapi/sdk 1.2.59 → 1.2.61

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
@@ -35,9 +35,13 @@ export type NatalChartResponse = {
35
35
  */
36
36
  planets: Array<{
37
37
  /**
38
- * Planet or point name (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, North Node, South Node, Chiron, Black Moon Lilith). The lunar nodes are the mean node; software using the true node may show node positions up to 1.75 degrees different.
38
+ * Planet or point name (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, North Node, South Node, Chiron, Black Moon Lilith). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees. The lunar nodes are the mean node; software using the true node may show node positions up to 1.75 degrees different.
39
39
  */
40
40
  name: string;
41
+ /**
42
+ * Planet or 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.
43
+ */
44
+ nameLocalized?: string;
41
45
  /**
42
46
  * Tropical ecliptic longitude in degrees (0-360).
43
47
  */
@@ -47,9 +51,13 @@ export type NatalChartResponse = {
47
51
  */
48
52
  latitude: number;
49
53
  /**
50
- * Tropical zodiac sign this planet occupies.
54
+ * Tropical zodiac sign this planet occupies. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use signLocalized for anything a reader sees.
51
55
  */
52
56
  sign: string;
57
+ /**
58
+ * Zodiac 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.
59
+ */
60
+ signLocalized?: string;
53
61
  /**
54
62
  * Degree within the zodiac sign (0-29.999).
55
63
  */
@@ -97,9 +105,13 @@ export type NatalChartResponse = {
97
105
  */
98
106
  longitude: number;
99
107
  /**
100
- * Zodiac sign on this house cusp.
108
+ * Zodiac sign on this house cusp. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
101
109
  */
102
110
  sign: string;
111
+ /**
112
+ * 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.
113
+ */
114
+ signLocalized?: string;
103
115
  /**
104
116
  * Degree within the zodiac sign (0-29.999).
105
117
  */
@@ -114,17 +126,29 @@ export type NatalChartResponse = {
114
126
  */
115
127
  aspects: Array<{
116
128
  /**
117
- * First planet in the aspect pair.
129
+ * First planet in the aspect pair. Always English, whatever the lang parameter says. Use planet1Localized for anything a reader sees.
118
130
  */
119
131
  planet1: string;
120
132
  /**
121
- * Second planet in the aspect pair.
133
+ * First 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.
134
+ */
135
+ planet1Localized?: string;
136
+ /**
137
+ * Second planet in the aspect pair. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
122
138
  */
123
139
  planet2: string;
124
140
  /**
125
- * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.).
141
+ * Second 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.
142
+ */
143
+ planet2Localized?: string;
144
+ /**
145
+ * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.). Always English, whatever the lang parameter says. Use typeLocalized for anything a reader sees.
126
146
  */
127
147
  type: string;
148
+ /**
149
+ * 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.
150
+ */
151
+ typeLocalized?: string;
128
152
  /**
129
153
  * Exact angle of this aspect type in degrees.
130
154
  */
@@ -227,9 +251,13 @@ export type NatalChartResponse = {
227
251
  */
228
252
  ascendant: {
229
253
  /**
230
- * Zodiac sign on the Ascendant (rising sign).
254
+ * Zodiac sign on the Ascendant (rising sign). Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
231
255
  */
232
256
  sign: string;
257
+ /**
258
+ * 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.
259
+ */
260
+ signLocalized?: string;
233
261
  /**
234
262
  * Degree within the Ascendant sign (0-29.999).
235
263
  */
@@ -244,9 +272,13 @@ export type NatalChartResponse = {
244
272
  */
245
273
  midheaven: {
246
274
  /**
247
- * Zodiac sign on the Midheaven (MC).
275
+ * Zodiac sign on the Midheaven (MC). Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
248
276
  */
249
277
  sign: string;
278
+ /**
279
+ * Midheaven 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.
280
+ */
281
+ signLocalized?: string;
250
282
  /**
251
283
  * Degree within the Midheaven sign (0-29.999).
252
284
  */
@@ -276,6 +308,10 @@ export type NatalChartResponse = {
276
308
  * Chart sect used for the calculation. Day (diurnal) when the Sun is above the horizon, night (nocturnal) when below. Day charts use Ascendant plus Moon minus Sun, night charts use Ascendant plus Sun minus Moon.
277
309
  */
278
310
  sect: 'day' | 'night';
311
+ /**
312
+ * Part of Fortune 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.
313
+ */
314
+ signLocalized?: string;
279
315
  };
280
316
  /**
281
317
  * Vertex. The western intersection of the prime vertical with the ecliptic, often read as a point of fated encounters and turning-point relationships. The opposite point is the Anti-Vertex.
@@ -293,23 +329,39 @@ export type NatalChartResponse = {
293
329
  * Absolute ecliptic longitude of the Vertex (0-360).
294
330
  */
295
331
  longitude: number;
332
+ /**
333
+ * Vertex 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.
334
+ */
335
+ signLocalized?: string;
296
336
  };
297
337
  /**
298
338
  * Chart summary with dominant element, modality, retrograde planets, and distribution analysis.
299
339
  */
300
340
  summary: {
301
341
  /**
302
- * Most represented element in the chart (Fire, Earth, Air, Water).
342
+ * Most represented element in the chart (Fire, Earth, Air, Water). Always English, whatever the lang parameter says. Use dominantElementLocalized for anything a reader sees.
303
343
  */
304
344
  dominantElement: string;
305
345
  /**
306
- * Most represented modality in the chart (Cardinal, Fixed, Mutable).
346
+ * 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.
347
+ */
348
+ dominantElementLocalized?: string;
349
+ /**
350
+ * Most represented modality in the chart (Cardinal, Fixed, Mutable). Always English, whatever the lang parameter says. Use dominantModalityLocalized for anything a reader sees.
307
351
  */
308
352
  dominantModality: string;
309
353
  /**
310
- * Planets in retrograde motion at the time of birth.
354
+ * 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.
355
+ */
356
+ dominantModalityLocalized?: string;
357
+ /**
358
+ * Planets in retrograde motion at the time of birth. Always English, whatever the lang parameter says. Use retrogradePlanetsLocalized for anything a reader sees.
311
359
  */
312
360
  retrogradePlanets: Array<string>;
361
+ /**
362
+ * The same retrograde bodies in the requested language, for display only. Index aligned with retrogradePlanets, so entry n of one names entry n of the other. Present only when lang is set to a language other than English, since in English it would repeat retrogradePlanets exactly.
363
+ */
364
+ retrogradePlanetsLocalized?: Array<string>;
313
365
  /**
314
366
  * Count of planets in each element. Shows elemental emphasis in the personality.
315
367
  */
@@ -346,6 +398,10 @@ export type NatalChartRequest = {
346
398
  * 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.
347
399
  */
348
400
  timezone: number | string;
401
+ /**
402
+ * 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".
403
+ */
404
+ nodeType?: 'mean' | 'true';
349
405
  /**
350
406
  * 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.
351
407
  */
@@ -484,17 +540,29 @@ export type AspectsResponse = {
484
540
  */
485
541
  aspects: Array<{
486
542
  /**
487
- * First planet in the aspect pair.
543
+ * First planet in the aspect pair. Always English, whatever the lang parameter says. Use planet1Localized for anything a reader sees.
488
544
  */
489
545
  planet1: string;
490
546
  /**
491
- * Second planet in the aspect pair.
547
+ * First 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.
548
+ */
549
+ planet1Localized?: string;
550
+ /**
551
+ * Second planet in the aspect pair. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
492
552
  */
493
553
  planet2: string;
494
554
  /**
495
- * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.).
555
+ * Second 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.
556
+ */
557
+ planet2Localized?: string;
558
+ /**
559
+ * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.). Always English, whatever the lang parameter says. Use typeLocalized for anything a reader sees.
496
560
  */
497
561
  type: string;
562
+ /**
563
+ * 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.
564
+ */
565
+ typeLocalized?: string;
498
566
  /**
499
567
  * Exact angle defining this aspect type in degrees.
500
568
  */
@@ -741,6 +809,10 @@ export type AspectPatternsRequest = {
741
809
  * 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.
742
810
  */
743
811
  timezone: number | string;
812
+ /**
813
+ * 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".
814
+ */
815
+ nodeType?: 'mean' | 'true';
744
816
  };
745
817
 
746
818
  export type TransitsResponse = {
@@ -761,9 +833,13 @@ export type TransitsResponse = {
761
833
  */
762
834
  transitPlanets: Array<{
763
835
  /**
764
- * Planet name (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, North Node, South Node, Chiron, Black Moon Lilith). The lunar nodes are the mean node; software using the true node may show node positions up to 1.75 degrees different.
836
+ * Planet name (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, North Node, South Node, Chiron, Black Moon Lilith). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees. The lunar nodes are the mean node; software using the true node may show node positions up to 1.75 degrees different.
765
837
  */
766
838
  name: string;
839
+ /**
840
+ * 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.
841
+ */
842
+ nameLocalized?: string;
767
843
  /**
768
844
  * Tropical ecliptic longitude in degrees (0-360). Primary coordinate for sign and aspect calculation.
769
845
  */
@@ -773,9 +849,13 @@ export type TransitsResponse = {
773
849
  */
774
850
  latitude: number;
775
851
  /**
776
- * Tropical zodiac sign the planet currently occupies. Changes when longitude crosses a 30-degree boundary.
852
+ * Tropical zodiac sign the planet currently occupies. Changes when longitude crosses a 30-degree boundary. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
777
853
  */
778
854
  sign: string;
855
+ /**
856
+ * Zodiac 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.
857
+ */
858
+ signLocalized?: string;
779
859
  /**
780
860
  * Degree within the current zodiac sign (0-29.999). Indicates how far into the sign the planet has progressed.
781
861
  */
@@ -794,17 +874,29 @@ export type TransitsResponse = {
794
874
  */
795
875
  transitAspects?: Array<{
796
876
  /**
797
- * Transiting planet forming the aspect.
877
+ * Transiting planet forming the aspect. Always English, whatever the lang parameter says. Use transitPlanetLocalized for anything a reader sees.
798
878
  */
799
879
  transitPlanet: string;
800
880
  /**
801
- * Natal planet being aspected.
881
+ * Transiting 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.
882
+ */
883
+ transitPlanetLocalized?: string;
884
+ /**
885
+ * Natal planet being aspected. Always English, whatever the lang parameter says. Use natalPlanetLocalized for anything a reader sees.
802
886
  */
803
887
  natalPlanet: string;
804
888
  /**
805
- * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.).
889
+ * Natal 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.
890
+ */
891
+ natalPlanetLocalized?: string;
892
+ /**
893
+ * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.). Always English, whatever the lang parameter says. Use typeLocalized for anything a reader sees.
806
894
  */
807
895
  type: string;
896
+ /**
897
+ * 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.
898
+ */
899
+ typeLocalized?: string;
808
900
  /**
809
901
  * Exact angle of this aspect type in degrees.
810
902
  */
@@ -887,6 +979,10 @@ export type TransitsRequest = {
887
979
  * 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).
888
980
  */
889
981
  timezone?: number | string;
982
+ /**
983
+ * 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".
984
+ */
985
+ nodeType?: 'mean' | 'true';
890
986
  /**
891
987
  * Optional natal chart data to compare transits against
892
988
  */
@@ -945,9 +1041,13 @@ export type AstrocartographyResponse = {
945
1041
  */
946
1042
  lines: Array<{
947
1043
  /**
948
- * Celestial body this set of planetary lines belongs to.
1044
+ * 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.
949
1045
  */
950
1046
  planet: string;
1047
+ /**
1048
+ * 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.
1049
+ */
1050
+ planetLocalized?: string;
951
1051
  /**
952
1052
  * Unicode astronomical symbol for this body.
953
1053
  */
@@ -1108,6 +1208,10 @@ export type RelocationChartResponse = {
1108
1208
  * Degree within the zodiac sign on this cusp (0-29.999).
1109
1209
  */
1110
1210
  degree: number;
1211
+ /**
1212
+ * 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.
1213
+ */
1214
+ signLocalized?: string;
1111
1215
  }>;
1112
1216
  /**
1113
1217
  * House system used for the relocated chart (placidus, whole-sign, equal, or koch). Quadrant systems fall back to whole-sign above the polar circle.
@@ -1118,9 +1222,13 @@ export type RelocationChartResponse = {
1118
1222
  */
1119
1223
  ascendant: {
1120
1224
  /**
1121
- * Tropical zodiac sign on this relocated angle.
1225
+ * Tropical zodiac sign on this relocated angle. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
1122
1226
  */
1123
1227
  sign: string;
1228
+ /**
1229
+ * Zodiac sign name on this angle 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.
1230
+ */
1231
+ signLocalized?: string;
1124
1232
  /**
1125
1233
  * Degree within the zodiac sign on this angle (0-29.999).
1126
1234
  */
@@ -1135,9 +1243,13 @@ export type RelocationChartResponse = {
1135
1243
  */
1136
1244
  midheaven: {
1137
1245
  /**
1138
- * Tropical zodiac sign on this relocated angle.
1246
+ * Tropical zodiac sign on this relocated angle. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
1139
1247
  */
1140
1248
  sign: string;
1249
+ /**
1250
+ * Zodiac sign name on this angle 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.
1251
+ */
1252
+ signLocalized?: string;
1141
1253
  /**
1142
1254
  * Degree within the zodiac sign on this angle (0-29.999).
1143
1255
  */
@@ -1163,6 +1275,10 @@ export type RelocationChartResponse = {
1163
1275
  * Absolute ecliptic longitude of the Vertex (0-360).
1164
1276
  */
1165
1277
  longitude: number;
1278
+ /**
1279
+ * Vertex 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.
1280
+ */
1281
+ signLocalized?: string;
1166
1282
  };
1167
1283
  /**
1168
1284
  * How relocation reshapes the chart: Ascendant shift, planets that change house, angular planets, and the move geometry from the birthplace.
@@ -1177,9 +1293,13 @@ export type RelocationChartResponse = {
1177
1293
  */
1178
1294
  planetsChangedHouse: Array<{
1179
1295
  /**
1180
- * Body that occupies a different house after relocation.
1296
+ * Body that occupies a different house after relocation. Always English, whatever the lang parameter says. Use planetLocalized for anything a reader sees.
1181
1297
  */
1182
1298
  planet: string;
1299
+ /**
1300
+ * 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.
1301
+ */
1302
+ planetLocalized?: string;
1183
1303
  /**
1184
1304
  * House this body occupied in the birthplace chart (1-12).
1185
1305
  */
@@ -1190,9 +1310,13 @@ export type RelocationChartResponse = {
1190
1310
  relocatedHouse: number;
1191
1311
  }>;
1192
1312
  /**
1193
- * Bodies within three degrees of a relocated angle (Ascendant, Imum Coeli, Descendant, or Midheaven), where their influence is strongest at this location.
1313
+ * Bodies within three degrees of a relocated angle (Ascendant, Imum Coeli, Descendant, or Midheaven), where their influence is strongest at this location. Always English, whatever the lang parameter says. Use angularPlanetsLocalized for anything a reader sees.
1194
1314
  */
1195
1315
  angularPlanets: Array<string>;
1316
+ /**
1317
+ * The same angular bodies in the requested language, for display only. Index aligned with angularPlanets. Present only when lang is set to a language other than English.
1318
+ */
1319
+ angularPlanetsLocalized?: Array<string>;
1196
1320
  /**
1197
1321
  * Great-circle distance from the birthplace to the new location in kilometers.
1198
1322
  */
@@ -1215,7 +1339,7 @@ export type RelocationChartResponse = {
1215
1339
 
1216
1340
  export type RelocationPlanet = {
1217
1341
  /**
1218
- * 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).
1342
+ * 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.
1219
1343
  */
1220
1344
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
1221
1345
  /**
@@ -1246,6 +1370,14 @@ export type RelocationPlanet = {
1246
1370
  * Whether the planet appears to move backward from Earth perspective. Retrograde periods signal review and introspection.
1247
1371
  */
1248
1372
  isRetrograde: boolean;
1373
+ /**
1374
+ * 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.
1375
+ */
1376
+ nameLocalized?: string;
1377
+ /**
1378
+ * Zodiac 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.
1379
+ */
1380
+ signLocalized?: string;
1249
1381
  /**
1250
1382
  * Relocated placement interpretation. The planet keeps its natal sign, so this reads its meaning through the new house it occupies at this location.
1251
1383
  */
@@ -1331,9 +1463,13 @@ export type LocalSpaceResponse = {
1331
1463
  */
1332
1464
  bodies: Array<{
1333
1465
  /**
1334
- * Body name (Sun, Moon, Mercury through Pluto, plus North Node, Chiron, or Black Moon Lilith when requested). Localized when a translation exists.
1466
+ * 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.
1335
1467
  */
1336
1468
  planet: string;
1469
+ /**
1470
+ * 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.
1471
+ */
1472
+ planetLocalized?: string;
1337
1473
  /**
1338
1474
  * Unicode astronomical symbol for this body.
1339
1475
  */
@@ -1454,9 +1590,13 @@ export type FixedStarsResponse = {
1454
1590
  */
1455
1591
  conjunctions: Array<{
1456
1592
  /**
1457
- * Natal point conjunct this star: a planet name, or the chart angles MC and ASC. Planet names are localized to the requested language.
1593
+ * 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.
1458
1594
  */
1459
1595
  point: string;
1596
+ /**
1597
+ * 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.
1598
+ */
1599
+ pointLocalized?: string;
1460
1600
  /**
1461
1601
  * Tropical ecliptic longitude of the natal point in degrees (0-360).
1462
1602
  */
@@ -1476,9 +1616,13 @@ export type FixedStarsResponse = {
1476
1616
  */
1477
1617
  star: string;
1478
1618
  /**
1479
- * Natal point conjunct the star: a localized planet name, or the chart angles MC and ASC.
1619
+ * 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.
1480
1620
  */
1481
1621
  point: string;
1622
+ /**
1623
+ * 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.
1624
+ */
1625
+ pointLocalized?: string;
1482
1626
  /**
1483
1627
  * Angular separation in degrees between the star and the natal point.
1484
1628
  */
@@ -1529,13 +1673,17 @@ export type ArabicLotsResponse = {
1529
1673
  */
1530
1674
  lots: Array<{
1531
1675
  /**
1532
- * 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.
1676
+ * Stable machine identifier for the lot (fortune, spirit, eros, necessity, courage, victory, nemesis). Use this for lookups.
1533
1677
  */
1534
1678
  id: string;
1535
1679
  /**
1536
- * Display name of the lot, localized to the requested language.
1680
+ * 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.
1537
1681
  */
1538
1682
  name: string;
1683
+ /**
1684
+ * 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.
1685
+ */
1686
+ nameLocalized?: string;
1539
1687
  /**
1540
1688
  * Absolute tropical ecliptic longitude of the lot in degrees (0 to 360).
1541
1689
  */
@@ -1584,6 +1732,10 @@ export type ArabicLotsRequest = {
1584
1732
  * 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.
1585
1733
  */
1586
1734
  timezone: number | string;
1735
+ /**
1736
+ * 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".
1737
+ */
1738
+ nodeType?: 'mean' | 'true';
1587
1739
  /**
1588
1740
  * 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.
1589
1741
  */
@@ -1625,9 +1777,13 @@ export type AsteroidsResponse = {
1625
1777
  */
1626
1778
  asteroids: Array<{
1627
1779
  /**
1628
- * Display name of the asteroid, localized to the requested language.
1780
+ * 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.
1629
1781
  */
1630
1782
  name: string;
1783
+ /**
1784
+ * 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.
1785
+ */
1786
+ nameLocalized?: string;
1631
1787
  /**
1632
1788
  * Absolute tropical ecliptic longitude of the asteroid in degrees (0 to 360).
1633
1789
  */
@@ -1688,6 +1844,10 @@ export type AsteroidsRequest = {
1688
1844
  * 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.
1689
1845
  */
1690
1846
  timezone: number | string;
1847
+ /**
1848
+ * 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".
1849
+ */
1850
+ nodeType?: 'mean' | 'true';
1691
1851
  /**
1692
1852
  * 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.
1693
1853
  */
@@ -1729,9 +1889,13 @@ export type LilithResponse = {
1729
1889
  */
1730
1890
  lilith: Array<{
1731
1891
  /**
1732
- * 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.
1892
+ * 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.
1893
+ */
1894
+ variant: 'mean' | 'true';
1895
+ /**
1896
+ * 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.
1733
1897
  */
1734
- variant: string;
1898
+ variantLocalized?: string;
1735
1899
  /**
1736
1900
  * Absolute tropical ecliptic longitude of the apogee in degrees (0 to 360).
1737
1901
  */
@@ -1796,6 +1960,10 @@ export type LilithRequest = {
1796
1960
  * 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.
1797
1961
  */
1798
1962
  timezone: number | string;
1963
+ /**
1964
+ * 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".
1965
+ */
1966
+ nodeType?: 'mean' | 'true';
1799
1967
  /**
1800
1968
  * House system used to place each Lilith variant in a house. Placidus (default), Whole Sign, Equal, or Koch.
1801
1969
  */
@@ -1845,17 +2013,25 @@ export type ProgressionsResponse = {
1845
2013
  */
1846
2014
  planets: Array<{
1847
2015
  /**
1848
- * Body name in canonical English. One of the 10 classical planets, the lunar nodes, Chiron, or Black Moon Lilith.
2016
+ * Body name in canonical English. One of the 10 classical planets, the lunar nodes, Chiron, or Black Moon Lilith. Unchanged by the lang parameter, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
1849
2017
  */
1850
2018
  name: string;
2019
+ /**
2020
+ * 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.
2021
+ */
2022
+ nameLocalized?: string;
1851
2023
  /**
1852
2024
  * Progressed tropical ecliptic longitude in degrees (0 to 360).
1853
2025
  */
1854
2026
  longitude: number;
1855
2027
  /**
1856
- * Tropical zodiac sign the progressed body falls in.
2028
+ * Tropical zodiac sign the progressed body falls in. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
1857
2029
  */
1858
2030
  sign: string;
2031
+ /**
2032
+ * Zodiac 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.
2033
+ */
2034
+ signLocalized?: string;
1859
2035
  /**
1860
2036
  * Degree of the progressed body within its zodiac sign (0 to 29.999).
1861
2037
  */
@@ -1886,9 +2062,13 @@ export type ProgressionsResponse = {
1886
2062
  */
1887
2063
  longitude: number;
1888
2064
  /**
1889
- * Tropical zodiac sign the progressed angle falls in.
2065
+ * Tropical zodiac sign the progressed angle falls in. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
1890
2066
  */
1891
2067
  sign: string;
2068
+ /**
2069
+ * Zodiac sign name on this angle 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.
2070
+ */
2071
+ signLocalized?: string;
1892
2072
  /**
1893
2073
  * Degree of the progressed angle within its zodiac sign (0 to 29.999).
1894
2074
  */
@@ -1903,9 +2083,13 @@ export type ProgressionsResponse = {
1903
2083
  */
1904
2084
  longitude: number;
1905
2085
  /**
1906
- * Tropical zodiac sign the progressed angle falls in.
2086
+ * Tropical zodiac sign the progressed angle falls in. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
1907
2087
  */
1908
2088
  sign: string;
2089
+ /**
2090
+ * Zodiac sign name on this angle 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.
2091
+ */
2092
+ signLocalized?: string;
1909
2093
  /**
1910
2094
  * Degree of the progressed angle within its zodiac sign (0 to 29.999).
1911
2095
  */
@@ -1938,6 +2122,10 @@ export type ProgressionsRequest = {
1938
2122
  * 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.
1939
2123
  */
1940
2124
  timezone: number | string;
2125
+ /**
2126
+ * 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".
2127
+ */
2128
+ nodeType?: 'mean' | 'true';
1941
2129
  /**
1942
2130
  * 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.
1943
2131
  */
@@ -1987,9 +2175,13 @@ export type SolarArcResponse = {
1987
2175
  */
1988
2176
  directed: Array<{
1989
2177
  /**
1990
- * Name of the directed point, localized to the requested language. This covers the planets and the two angles, the Ascendant and the Midheaven, alike.
2178
+ * 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.
1991
2179
  */
1992
2180
  name: string;
2181
+ /**
2182
+ * 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.
2183
+ */
2184
+ nameLocalized?: string;
1993
2185
  /**
1994
2186
  * Absolute tropical ecliptic longitude of the point in the natal chart, in degrees (0 to 360).
1995
2187
  */
@@ -2034,6 +2226,10 @@ export type SolarArcRequest = {
2034
2226
  * 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.
2035
2227
  */
2036
2228
  timezone: number | string;
2229
+ /**
2230
+ * 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".
2231
+ */
2232
+ nodeType?: 'mean' | 'true';
2037
2233
  /**
2038
2234
  * 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.
2039
2235
  */
@@ -2130,6 +2326,10 @@ export type ProfectionsRequest = {
2130
2326
  * 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.
2131
2327
  */
2132
2328
  timezone: number | string;
2329
+ /**
2330
+ * 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".
2331
+ */
2332
+ nodeType?: 'mean' | 'true';
2133
2333
  /**
2134
2334
  * 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.
2135
2335
  */
@@ -4277,7 +4477,7 @@ export type KpPlanetsRequest = {
4277
4477
  */
4278
4478
  ayanamsaValue?: number;
4279
4479
  /**
4280
- * 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".
4480
+ * 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".
4281
4481
  */
4282
4482
  nodeType?: 'mean' | 'true';
4283
4483
  };
@@ -4735,7 +4935,7 @@ export type KpChartRequest = {
4735
4935
  */
4736
4936
  ayanamsaValue?: number;
4737
4937
  /**
4738
- * 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".
4938
+ * 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".
4739
4939
  */
4740
4940
  nodeType?: 'mean' | 'true';
4741
4941
  };
@@ -5109,7 +5309,7 @@ export type KpSublordChangesRequest = {
5109
5309
  */
5110
5310
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5111
5311
  /**
5112
- * 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".
5312
+ * 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".
5113
5313
  */
5114
5314
  nodeType?: 'mean' | 'true';
5115
5315
  };
@@ -5188,7 +5388,7 @@ export type KpRasiChangesRequest = {
5188
5388
  */
5189
5389
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5190
5390
  /**
5191
- * 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".
5391
+ * 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".
5192
5392
  */
5193
5393
  nodeType?: 'mean' | 'true';
5194
5394
  };
@@ -5314,7 +5514,7 @@ export type KpPlanetsIntervalRequest = {
5314
5514
  */
5315
5515
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5316
5516
  /**
5317
- * 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".
5517
+ * 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".
5318
5518
  */
5319
5519
  nodeType?: 'mean' | 'true';
5320
5520
  };
@@ -5598,7 +5798,7 @@ export type KpHoraryRequest = {
5598
5798
  */
5599
5799
  ayanamsaValue?: number;
5600
5800
  /**
5601
- * 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".
5801
+ * 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".
5602
5802
  */
5603
5803
  nodeType?: 'mean' | 'true';
5604
5804
  };
@@ -7374,9 +7574,13 @@ export type GetAstrologySignsResponses = {
7374
7574
  */
7375
7575
  symbol?: string;
7376
7576
  /**
7377
- * Elemental classification: Fire, Earth, Air, or Water.
7577
+ * 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.
7378
7578
  */
7379
7579
  element: 'fire' | 'earth' | 'air' | 'water';
7580
+ /**
7581
+ * 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.
7582
+ */
7583
+ elementLocalized?: string;
7380
7584
  /**
7381
7585
  * Tropical zodiac date range for this sign.
7382
7586
  */
@@ -7555,17 +7759,29 @@ export type GetAstrologySignsByIdResponses = {
7555
7759
  */
7556
7760
  symbolName: string;
7557
7761
  /**
7558
- * Elemental classification: Fire, Earth, Air, or Water. Determines temperament and compatibility group.
7762
+ * 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.
7559
7763
  */
7560
7764
  element: 'fire' | 'earth' | 'air' | 'water';
7561
7765
  /**
7562
- * Quality/modality: Cardinal (initiating), Fixed (sustaining), or Mutable (adapting).
7766
+ * 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.
7767
+ */
7768
+ elementLocalized?: string;
7769
+ /**
7770
+ * 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.
7563
7771
  */
7564
7772
  modality: 'cardinal' | 'fixed' | 'mutable';
7565
7773
  /**
7566
- * Traditional ruling planet that governs this sign.
7774
+ * 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.
7775
+ */
7776
+ modalityLocalized?: string;
7777
+ /**
7778
+ * 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.
7567
7779
  */
7568
7780
  rulingPlanet: string;
7781
+ /**
7782
+ * 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.
7783
+ */
7784
+ rulingPlanetLocalized?: string;
7569
7785
  /**
7570
7786
  * Tropical zodiac date range for this sign.
7571
7787
  */
@@ -8140,6 +8356,10 @@ export type PostAstrologyPlanetsData = {
8140
8356
  * 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.
8141
8357
  */
8142
8358
  time: string;
8359
+ /**
8360
+ * 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".
8361
+ */
8362
+ nodeType?: 'mean' | 'true';
8143
8363
  /**
8144
8364
  * 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.
8145
8365
  */
@@ -8347,6 +8567,191 @@ export type PostAstrologyPlanetsResponses = {
8347
8567
 
8348
8568
  export type PostAstrologyPlanetsResponse = PostAstrologyPlanetsResponses[keyof PostAstrologyPlanetsResponses];
8349
8569
 
8570
+ export type PostAstrologyPlanetsMonthlyData = {
8571
+ body?: {
8572
+ /**
8573
+ * Year for the monthly ephemeris (1900-2100). Defaults to the current year (UTC).
8574
+ */
8575
+ year?: number;
8576
+ /**
8577
+ * Month number (1-12) for the ephemeris. Defaults to the current month (UTC).
8578
+ */
8579
+ month?: number;
8580
+ };
8581
+ path?: never;
8582
+ query?: {
8583
+ /**
8584
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
8585
+ */
8586
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
8587
+ };
8588
+ url: '/astrology/planets/monthly';
8589
+ };
8590
+
8591
+ export type PostAstrologyPlanetsMonthlyErrors = {
8592
+ /**
8593
+ * Validation error. `issues[]` lists every failed field.
8594
+ */
8595
+ 400: {
8596
+ /**
8597
+ * First issue summary.
8598
+ */
8599
+ error: string;
8600
+ code: 'validation_error';
8601
+ /**
8602
+ * Every validation failure. Use this to rebuild a valid request.
8603
+ */
8604
+ issues: Array<{
8605
+ /**
8606
+ * Dot-separated field path, or "(root)" for top-level.
8607
+ */
8608
+ path: string;
8609
+ message: string;
8610
+ /**
8611
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
8612
+ */
8613
+ code?: string;
8614
+ /**
8615
+ * Expected type for invalid_type.
8616
+ */
8617
+ expected?: string;
8618
+ /**
8619
+ * Minimum bound for too_small issues.
8620
+ */
8621
+ minimum?: number | string;
8622
+ /**
8623
+ * Maximum bound for too_big issues.
8624
+ */
8625
+ maximum?: number | string;
8626
+ inclusive?: boolean;
8627
+ /**
8628
+ * Format name for string issues (regex, email, url, uuid).
8629
+ */
8630
+ format?: string;
8631
+ /**
8632
+ * Regex pattern when format is regex.
8633
+ */
8634
+ pattern?: string;
8635
+ }>;
8636
+ };
8637
+ /**
8638
+ * Invalid or missing API key
8639
+ */
8640
+ 401: {
8641
+ /**
8642
+ * Human-readable error message. May change wording.
8643
+ */
8644
+ error: string;
8645
+ /**
8646
+ * Machine-readable error code. Stable identifier.
8647
+ */
8648
+ code: string;
8649
+ };
8650
+ /**
8651
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
8652
+ */
8653
+ 405: {
8654
+ error: string;
8655
+ code: 'method_not_allowed';
8656
+ /**
8657
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
8658
+ */
8659
+ allow: Array<string>;
8660
+ /**
8661
+ * Link to the product page for this domain.
8662
+ */
8663
+ docs?: string;
8664
+ };
8665
+ /**
8666
+ * Monthly rate limit exceeded
8667
+ */
8668
+ 429: {
8669
+ /**
8670
+ * Human-readable error message. May change wording.
8671
+ */
8672
+ error: string;
8673
+ /**
8674
+ * Machine-readable error code. Stable identifier.
8675
+ */
8676
+ code: string;
8677
+ };
8678
+ /**
8679
+ * Internal server error
8680
+ */
8681
+ 500: {
8682
+ /**
8683
+ * Human-readable error message. May change wording.
8684
+ */
8685
+ error: string;
8686
+ /**
8687
+ * Machine-readable error code. Stable identifier.
8688
+ */
8689
+ code: string;
8690
+ };
8691
+ };
8692
+
8693
+ export type PostAstrologyPlanetsMonthlyError = PostAstrologyPlanetsMonthlyErrors[keyof PostAstrologyPlanetsMonthlyErrors];
8694
+
8695
+ export type PostAstrologyPlanetsMonthlyResponses = {
8696
+ /**
8697
+ * Monthly ephemeris data
8698
+ */
8699
+ 200: {
8700
+ /**
8701
+ * Year of the ephemeris. Echoes the year that was requested, or the current UTC year when it was omitted.
8702
+ */
8703
+ year: number;
8704
+ /**
8705
+ * Month of the ephemeris. Echoes the month that was requested, or the current UTC month when it was omitted.
8706
+ */
8707
+ month: number;
8708
+ /**
8709
+ * Daily planetary position entries for the entire month.
8710
+ */
8711
+ days: Array<{
8712
+ /**
8713
+ * Date in YYYY-MM-DD format.
8714
+ */
8715
+ date: string;
8716
+ /**
8717
+ * Tropical positions of all 14 Western bodies on this date at noon UTC.
8718
+ */
8719
+ positions: Array<{
8720
+ /**
8721
+ * Body name, one of the 14 bodies Western astrology reads: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, North Node, South Node, Chiron, Black Moon Lilith. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
8722
+ */
8723
+ planet: string;
8724
+ /**
8725
+ * Body name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
8726
+ */
8727
+ planetLocalized?: string;
8728
+ /**
8729
+ * Tropical ecliptic longitude in degrees (0-360), measured from the vernal equinox. This is the Western zodiac, not the sidereal one, so the two differ by the ayanamsa of roughly 24 degrees.
8730
+ */
8731
+ longitude: number;
8732
+ /**
8733
+ * Tropical zodiac sign the body occupies on this date. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use signLocalized for anything a reader sees.
8734
+ */
8735
+ sign: string;
8736
+ /**
8737
+ * Zodiac sign name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat sign exactly.
8738
+ */
8739
+ signLocalized?: string;
8740
+ /**
8741
+ * Degrees traversed within the current sign (0-30). Useful for precise transit tracking and for printing a position as sign plus degree.
8742
+ */
8743
+ degreeInSign: number;
8744
+ /**
8745
+ * Whether the body is in apparent retrograde motion on this date. The lunar nodes are always retrograde and Black Moon Lilith is always direct.
8746
+ */
8747
+ isRetrograde: boolean;
8748
+ }>;
8749
+ }>;
8750
+ };
8751
+ };
8752
+
8753
+ export type PostAstrologyPlanetsMonthlyResponse = PostAstrologyPlanetsMonthlyResponses[keyof PostAstrologyPlanetsMonthlyResponses];
8754
+
8350
8755
  export type GetAstrologyMoonPhaseCurrentData = {
8351
8756
  body?: never;
8352
8757
  path?: never;
@@ -8876,6 +9281,10 @@ export type PostAstrologySynastryData = {
8876
9281
  * 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.
8877
9282
  */
8878
9283
  timezone: number | string;
9284
+ /**
9285
+ * 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".
9286
+ */
9287
+ nodeType?: 'mean' | 'true';
8879
9288
  /**
8880
9289
  * Optional display name for this person. Included in the response for easy identification.
8881
9290
  */
@@ -8902,6 +9311,10 @@ export type PostAstrologySynastryData = {
8902
9311
  * 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.
8903
9312
  */
8904
9313
  timezone: number | string;
9314
+ /**
9315
+ * 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".
9316
+ */
9317
+ nodeType?: 'mean' | 'true';
8905
9318
  /**
8906
9319
  * Optional display name for this person. Included in the response for easy identification.
8907
9320
  */
@@ -9044,38 +9457,58 @@ export type PostAstrologySynastryResponses = {
9044
9457
  */
9045
9458
  ascendant: {
9046
9459
  /**
9047
- * Ascendant (rising sign) of this person.
9460
+ * Ascendant (rising sign) of this person. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
9048
9461
  */
9049
9462
  sign: string;
9463
+ /**
9464
+ * 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.
9465
+ */
9466
+ signLocalized?: string;
9050
9467
  /**
9051
9468
  * Degree within the Ascendant sign (0-29.999).
9052
9469
  */
9053
9470
  degree: number;
9054
9471
  };
9055
9472
  /**
9056
- * Sun sign (zodiac sign) of this person. Core identity and ego expression.
9473
+ * Sun sign (zodiac sign) of this person. Core identity and ego expression. Always English, whatever the lang parameter says. Use sunSignLocalized for anything a reader sees.
9057
9474
  */
9058
9475
  sunSign: string;
9059
9476
  /**
9060
- * Moon sign of this person. Emotional nature and inner needs.
9477
+ * Sun 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.
9478
+ */
9479
+ sunSignLocalized?: string;
9480
+ /**
9481
+ * Moon sign of this person. Emotional nature and inner needs. Always English, whatever the lang parameter says. Use moonSignLocalized for anything a reader sees.
9061
9482
  */
9062
9483
  moonSign: string;
9484
+ /**
9485
+ * Moon 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.
9486
+ */
9487
+ moonSignLocalized?: string;
9063
9488
  /**
9064
9489
  * Planet positions for person 1, enough to render this side of a dual wheel without a second request. Per-planet interpretations are not repeated here; call the natal chart endpoint for an individual reading.
9065
9490
  */
9066
9491
  planets: Array<{
9067
9492
  /**
9068
- * Planet or point name. Matches the names used in interAspects.
9493
+ * Planet or point name. Matches the names used in interAspects. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
9069
9494
  */
9070
9495
  name: string;
9496
+ /**
9497
+ * Planet or 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.
9498
+ */
9499
+ nameLocalized?: string;
9071
9500
  /**
9072
9501
  * Ecliptic longitude in degrees (0-360) measured from 0 Aries. This is the value a wheel plots.
9073
9502
  */
9074
9503
  longitude: number;
9075
9504
  /**
9076
- * Zodiac sign containing the planet.
9505
+ * Zodiac sign containing the planet. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
9077
9506
  */
9078
9507
  sign: string;
9508
+ /**
9509
+ * Zodiac 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.
9510
+ */
9511
+ signLocalized?: string;
9079
9512
  /**
9080
9513
  * Degree within the sign (0-29.999).
9081
9514
  */
@@ -9103,38 +9536,58 @@ export type PostAstrologySynastryResponses = {
9103
9536
  */
9104
9537
  ascendant: {
9105
9538
  /**
9106
- * Ascendant (rising sign) of this person.
9539
+ * Ascendant (rising sign) of this person. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
9107
9540
  */
9108
9541
  sign: string;
9542
+ /**
9543
+ * 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.
9544
+ */
9545
+ signLocalized?: string;
9109
9546
  /**
9110
9547
  * Degree within the Ascendant sign (0-29.999).
9111
9548
  */
9112
9549
  degree: number;
9113
9550
  };
9114
9551
  /**
9115
- * Sun sign (zodiac sign) of this person. Core identity and ego expression.
9552
+ * Sun sign (zodiac sign) of this person. Core identity and ego expression. Always English, whatever the lang parameter says. Use sunSignLocalized for anything a reader sees.
9116
9553
  */
9117
9554
  sunSign: string;
9118
9555
  /**
9119
- * Moon sign of this person. Emotional nature and inner needs.
9556
+ * Sun 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.
9557
+ */
9558
+ sunSignLocalized?: string;
9559
+ /**
9560
+ * Moon sign of this person. Emotional nature and inner needs. Always English, whatever the lang parameter says. Use moonSignLocalized for anything a reader sees.
9120
9561
  */
9121
9562
  moonSign: string;
9563
+ /**
9564
+ * Moon 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.
9565
+ */
9566
+ moonSignLocalized?: string;
9122
9567
  /**
9123
9568
  * Planet positions for person 2, enough to render this side of a dual wheel without a second request. Per-planet interpretations are not repeated here; call the natal chart endpoint for an individual reading.
9124
9569
  */
9125
9570
  planets: Array<{
9126
9571
  /**
9127
- * Planet or point name. Matches the names used in interAspects.
9572
+ * Planet or point name. Matches the names used in interAspects. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
9128
9573
  */
9129
9574
  name: string;
9575
+ /**
9576
+ * Planet or 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.
9577
+ */
9578
+ nameLocalized?: string;
9130
9579
  /**
9131
9580
  * Ecliptic longitude in degrees (0-360) measured from 0 Aries. This is the value a wheel plots.
9132
9581
  */
9133
9582
  longitude: number;
9134
9583
  /**
9135
- * Zodiac sign containing the planet.
9584
+ * Zodiac sign containing the planet. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
9136
9585
  */
9137
9586
  sign: string;
9587
+ /**
9588
+ * Zodiac 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.
9589
+ */
9590
+ signLocalized?: string;
9138
9591
  /**
9139
9592
  * Degree within the sign (0-29.999).
9140
9593
  */
@@ -9158,17 +9611,29 @@ export type PostAstrologySynastryResponses = {
9158
9611
  */
9159
9612
  interAspects: Array<{
9160
9613
  /**
9161
- * Planet from person 1 chart.
9614
+ * Planet from person 1 chart. Always English, whatever the lang parameter says. Use planet1Localized for anything a reader sees.
9162
9615
  */
9163
9616
  planet1: string;
9164
9617
  /**
9165
- * Planet from person 2 chart.
9618
+ * Person 1 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.
9619
+ */
9620
+ planet1Localized?: string;
9621
+ /**
9622
+ * Planet from person 2 chart. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
9166
9623
  */
9167
9624
  planet2: string;
9168
9625
  /**
9169
- * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.).
9626
+ * Person 2 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.
9627
+ */
9628
+ planet2Localized?: string;
9629
+ /**
9630
+ * Aspect type (CONJUNCTION, OPPOSITION, TRINE, SQUARE, SEXTILE, etc.). Always English, whatever the lang parameter says. Use typeLocalized for anything a reader sees.
9170
9631
  */
9171
9632
  type: string;
9633
+ /**
9634
+ * 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.
9635
+ */
9636
+ typeLocalized?: string;
9172
9637
  /**
9173
9638
  * Exact angle of this aspect type in degrees.
9174
9639
  */
@@ -9828,6 +10293,10 @@ export type PostAstrologyTransitAspectsData = {
9828
10293
  * 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.
9829
10294
  */
9830
10295
  timezone: number | string;
10296
+ /**
10297
+ * 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".
10298
+ */
10299
+ nodeType?: 'mean' | 'true';
9831
10300
  };
9832
10301
  /**
9833
10302
  * Transit date in YYYY-MM-DD format. Defaults to current date if omitted. Use future dates for predictive transit analysis.
@@ -9981,12 +10450,58 @@ export type PostAstrologyTransitAspectsResponses = {
9981
10450
  * 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.
9982
10451
  */
9983
10452
  houseSystem: 'placidus' | 'whole-sign' | 'equal' | 'koch';
10453
+ /**
10454
+ * 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.
10455
+ */
10456
+ houses: Array<{
10457
+ /**
10458
+ * House number (1-12). Each house governs specific life themes in Western astrology.
10459
+ */
10460
+ number: number;
10461
+ /**
10462
+ * Ecliptic longitude of this house cusp in degrees (0-360).
10463
+ */
10464
+ longitude: number;
10465
+ /**
10466
+ * Zodiac sign on this house cusp. Colors the themes of this life area.
10467
+ */
10468
+ sign: string;
10469
+ /**
10470
+ * Degree within the zodiac sign on this cusp (0-29.999).
10471
+ */
10472
+ degree: number;
10473
+ /**
10474
+ * 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.
10475
+ */
10476
+ signLocalized?: string;
10477
+ }>;
10478
+ /**
10479
+ * 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.
10480
+ */
10481
+ ascendant: {
10482
+ /**
10483
+ * Tropical zodiac sign on the natal Ascendant. Always English, whatever the lang parameter says. Use signLocalized for anything a reader sees.
10484
+ */
10485
+ sign: string;
10486
+ /**
10487
+ * 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.
10488
+ */
10489
+ signLocalized?: string;
10490
+ /**
10491
+ * Degree within the Ascendant sign (0-29.999).
10492
+ */
10493
+ degree: number;
10494
+ /**
10495
+ * Absolute ecliptic longitude of the natal Ascendant in degrees (0-360).
10496
+ */
10497
+ longitude: number;
10498
+ };
9984
10499
  /**
9985
10500
  * 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.
9986
10501
  */
9987
10502
  transitPlanets: Array<{
9988
10503
  /**
9989
- * 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).
10504
+ * 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.
9990
10505
  */
9991
10506
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
9992
10507
  /**
@@ -10017,13 +10532,21 @@ export type PostAstrologyTransitAspectsResponses = {
10017
10532
  * Whether the planet appears to move backward from Earth perspective. Retrograde periods signal review and introspection.
10018
10533
  */
10019
10534
  isRetrograde: boolean;
10535
+ /**
10536
+ * 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.
10537
+ */
10538
+ nameLocalized?: string;
10539
+ /**
10540
+ * Zodiac 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.
10541
+ */
10542
+ signLocalized?: string;
10020
10543
  }>;
10021
10544
  /**
10022
10545
  * Natal (birth chart) planetary positions used as the baseline for transit aspect comparison, each placed in its natal house.
10023
10546
  */
10024
10547
  natalPlanets: Array<{
10025
10548
  /**
10026
- * 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).
10549
+ * 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.
10027
10550
  */
10028
10551
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10029
10552
  /**
@@ -10054,6 +10577,14 @@ export type PostAstrologyTransitAspectsResponses = {
10054
10577
  * Whether the planet appears to move backward from Earth perspective. Retrograde periods signal review and introspection.
10055
10578
  */
10056
10579
  isRetrograde: boolean;
10580
+ /**
10581
+ * 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.
10582
+ */
10583
+ nameLocalized?: string;
10584
+ /**
10585
+ * Zodiac 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.
10586
+ */
10587
+ signLocalized?: string;
10057
10588
  }>;
10058
10589
  /**
10059
10590
  * Transit-to-natal aspects with interpretations, strength ratings, and guidance. Each aspect represents a transiting planet forming a geometric angle to a natal planet.
@@ -10091,7 +10622,22 @@ export type PostAstrologyTransitAspectsResponses = {
10091
10622
  * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
10092
10623
  */
10093
10624
  interpretation: 'harmonious' | 'challenging' | 'neutral';
10094
- transitInterpretation?: {
10625
+ /**
10626
+ * First 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.
10627
+ */
10628
+ planet1Localized?: string;
10629
+ /**
10630
+ * Second 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.
10631
+ */
10632
+ planet2Localized?: string;
10633
+ /**
10634
+ * 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.
10635
+ */
10636
+ typeLocalized?: string;
10637
+ /**
10638
+ * Rich interpretation of the transit aspect: narrative summary, timing, impact assessment, practical guidance, and keywords.
10639
+ */
10640
+ transitInterpretation: {
10095
10641
  /**
10096
10642
  * Narrative interpretation of this transit aspect and its life impact.
10097
10643
  */
@@ -10170,6 +10716,43 @@ export type PostAstrologyTransitAspectsResponses = {
10170
10716
  * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
10171
10717
  */
10172
10718
  interpretation: 'harmonious' | 'challenging' | 'neutral';
10719
+ /**
10720
+ * First 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.
10721
+ */
10722
+ planet1Localized?: string;
10723
+ /**
10724
+ * Second 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.
10725
+ */
10726
+ planet2Localized?: string;
10727
+ /**
10728
+ * 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.
10729
+ */
10730
+ typeLocalized?: string;
10731
+ /**
10732
+ * Rich interpretation of the transit aspect: narrative summary, timing, impact assessment, practical guidance, and keywords.
10733
+ */
10734
+ transitInterpretation: {
10735
+ /**
10736
+ * Narrative interpretation of this transit aspect and its life impact.
10737
+ */
10738
+ summary: string;
10739
+ /**
10740
+ * 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.
10741
+ */
10742
+ timing: string;
10743
+ /**
10744
+ * Strength and nature of this transit effect — constructive, challenging, or neutral.
10745
+ */
10746
+ impact: string;
10747
+ /**
10748
+ * Practical advice for working with this transit energy.
10749
+ */
10750
+ guidance: string;
10751
+ /**
10752
+ * Key themes activated by this transit aspect.
10753
+ */
10754
+ keywords: Array<string>;
10755
+ };
10173
10756
  } | null;
10174
10757
  /**
10175
10758
  * Transit aspect counts grouped by aspect type (conjunction, trine, square, opposition, sextile, etc.). Useful for quickly assessing the transit weather.
@@ -10392,11 +10975,11 @@ export type PostAstrologySolarReturnResponses = {
10392
10975
  timezone: number;
10393
10976
  };
10394
10977
  /**
10395
- * 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.
10978
+ * 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.
10396
10979
  */
10397
10980
  planets: Array<{
10398
10981
  /**
10399
- * 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).
10982
+ * 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.
10400
10983
  */
10401
10984
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10402
10985
  /**
@@ -10773,11 +11356,11 @@ export type PostAstrologyLunarReturnResponses = {
10773
11356
  timezone: number;
10774
11357
  };
10775
11358
  /**
10776
- * 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.
11359
+ * 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.
10777
11360
  */
10778
11361
  planets: Array<{
10779
11362
  /**
10780
- * 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).
11363
+ * 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.
10781
11364
  */
10782
11365
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
10783
11366
  /**
@@ -10975,6 +11558,10 @@ export type PostAstrologyCompositeChartData = {
10975
11558
  * 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.
10976
11559
  */
10977
11560
  timezone: number | string;
11561
+ /**
11562
+ * 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".
11563
+ */
11564
+ nodeType?: 'mean' | 'true';
10978
11565
  };
10979
11566
  /**
10980
11567
  * Second person birth details (date, time, location, timezone).
@@ -11000,6 +11587,10 @@ export type PostAstrologyCompositeChartData = {
11000
11587
  * 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.
11001
11588
  */
11002
11589
  timezone: number | string;
11590
+ /**
11591
+ * 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".
11592
+ */
11593
+ nodeType?: 'mean' | 'true';
11003
11594
  };
11004
11595
  /**
11005
11596
  * House system for the composite chart. Placidus (default), Whole Sign, Equal, or Koch.
@@ -11180,7 +11771,7 @@ export type PostAstrologyCompositeChartResponses = {
11180
11771
  */
11181
11772
  compositePlanets: Array<{
11182
11773
  /**
11183
- * 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).
11774
+ * 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.
11184
11775
  */
11185
11776
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
11186
11777
  /**
@@ -11369,6 +11960,10 @@ export type PostAstrologyCompatibilityScoreData = {
11369
11960
  * 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.
11370
11961
  */
11371
11962
  timezone: number | string;
11963
+ /**
11964
+ * 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".
11965
+ */
11966
+ nodeType?: 'mean' | 'true';
11372
11967
  };
11373
11968
  /**
11374
11969
  * Second person birth details. Compared against person1 to evaluate inter-chart aspects and compatibility.
@@ -11394,6 +11989,10 @@ export type PostAstrologyCompatibilityScoreData = {
11394
11989
  * 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.
11395
11990
  */
11396
11991
  timezone: number | string;
11992
+ /**
11993
+ * 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".
11994
+ */
11995
+ nodeType?: 'mean' | 'true';
11397
11996
  };
11398
11997
  };
11399
11998
  path?: never;
@@ -12687,11 +13286,11 @@ export type PostAstrologyPlanetaryReturnsResponses = {
12687
13286
  timezone: number;
12688
13287
  };
12689
13288
  /**
12690
- * 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.
13289
+ * 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.
12691
13290
  */
12692
13291
  planets: Array<{
12693
13292
  /**
12694
- * 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).
13293
+ * 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.
12695
13294
  */
12696
13295
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
12697
13296
  /**
@@ -12881,6 +13480,10 @@ export type PostAstrologyAstrocartographyData = {
12881
13480
  * 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.
12882
13481
  */
12883
13482
  timezone: number | string;
13483
+ /**
13484
+ * 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".
13485
+ */
13486
+ nodeType?: 'mean' | 'true';
12884
13487
  };
12885
13488
  path?: never;
12886
13489
  query?: {
@@ -13306,6 +13909,10 @@ export type PostAstrologyFixedStarsData = {
13306
13909
  * 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.
13307
13910
  */
13308
13911
  timezone: number | string;
13912
+ /**
13913
+ * 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".
13914
+ */
13915
+ nodeType?: 'mean' | 'true';
13309
13916
  };
13310
13917
  path?: never;
13311
13918
  query?: {
@@ -14816,20 +15423,25 @@ export type PostVedicAstrologyPlanetaryPositionsResponse = PostVedicAstrologyPla
14816
15423
  export type PostVedicAstrologyPlanetaryPositionsMonthlyData = {
14817
15424
  body?: {
14818
15425
  /**
14819
- * Year for monthly ephemeris (1900-2100).
15426
+ * Year for monthly ephemeris (1900-2100). Defaults to the current year (UTC).
14820
15427
  */
14821
- year: number;
15428
+ year?: number;
14822
15429
  /**
14823
- * Month number (1-12) for ephemeris.
15430
+ * Month number (1-12) for ephemeris. Defaults to the current month (UTC).
14824
15431
  */
14825
- month: number;
15432
+ month?: number;
14826
15433
  /**
14827
15434
  * Coordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa - standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
14828
15435
  */
14829
15436
  coordinateSystem?: 'sidereal' | 'tropical';
14830
15437
  };
14831
15438
  path?: never;
14832
- query?: never;
15439
+ query?: {
15440
+ /**
15441
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
15442
+ */
15443
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
15444
+ };
14833
15445
  url: '/vedic-astrology/planetary-positions/monthly';
14834
15446
  };
14835
15447
 
@@ -14943,11 +15555,11 @@ export type PostVedicAstrologyPlanetaryPositionsMonthlyResponses = {
14943
15555
  */
14944
15556
  200: {
14945
15557
  /**
14946
- * Year of the ephemeris.
15558
+ * Year of the ephemeris. Echoes the year that was requested, or the current UTC year when it was omitted.
14947
15559
  */
14948
15560
  year: number;
14949
15561
  /**
14950
- * Month of the ephemeris.
15562
+ * Month of the ephemeris. Echoes the month that was requested, or the current UTC month when it was omitted.
14951
15563
  */
14952
15564
  month: number;
14953
15565
  /**
@@ -14963,17 +15575,25 @@ export type PostVedicAstrologyPlanetaryPositionsMonthlyResponses = {
14963
15575
  */
14964
15576
  positions: Array<{
14965
15577
  /**
14966
- * Planet name, one of the Navagraha (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu).
15578
+ * Planet name, one of the Navagraha (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
14967
15579
  */
14968
15580
  planet: string;
15581
+ /**
15582
+ * Planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly. Rahu and Ketu are rendered as the lunar nodes they are, so Spanish returns Nodo Norte and Nodo Sur while Hindi returns their Sanskrit names.
15583
+ */
15584
+ planetLocalized?: string;
14969
15585
  /**
14970
15586
  * Sidereal ecliptic longitude in degrees (0-360) using Lahiri ayanamsa.
14971
15587
  */
14972
15588
  longitude: number;
14973
15589
  /**
14974
- * Zodiac sign (rashi) the planet occupies on this date.
15590
+ * Zodiac sign (rashi) the planet occupies on this date. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use signLocalized for anything a reader sees.
14975
15591
  */
14976
15592
  sign: string;
15593
+ /**
15594
+ * Zodiac sign name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat sign exactly.
15595
+ */
15596
+ signLocalized?: string;
14977
15597
  /**
14978
15598
  * Degrees traversed within the current sign (0-30). Useful for precise transit tracking.
14979
15599
  */
@@ -20413,7 +21033,7 @@ export type PostVedicAstrologyKpRulingPlanetsData = {
20413
21033
  */
20414
21034
  birthTime?: string;
20415
21035
  /**
20416
- * 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".
21036
+ * 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".
20417
21037
  */
20418
21038
  nodeType?: 'mean' | 'true';
20419
21039
  };
@@ -20575,7 +21195,7 @@ export type PostVedicAstrologyKpRulingPlanetsIntervalData = {
20575
21195
  */
20576
21196
  ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
20577
21197
  /**
20578
- * 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".
21198
+ * 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".
20579
21199
  */
20580
21200
  nodeType?: 'mean' | 'true';
20581
21201
  };
@@ -21433,13 +22053,13 @@ export type PostVedicAstrologyAspectsResponse = PostVedicAstrologyAspectsRespons
21433
22053
  export type PostVedicAstrologyAspectsMonthlyData = {
21434
22054
  body?: {
21435
22055
  /**
21436
- * Year for monthly analysis (1900-2100).
22056
+ * Year for monthly analysis (1900-2100). Defaults to the current year (UTC).
21437
22057
  */
21438
- year: number;
22058
+ year?: number;
21439
22059
  /**
21440
- * Month number (1-12).
22060
+ * Month number (1-12). Defaults to the current month (UTC).
21441
22061
  */
21442
- month: number;
22062
+ month?: number;
21443
22063
  /**
21444
22064
  * Timezone offset from UTC in hours. Output times are converted to this timezone. Defaults to 0 (UTC).
21445
22065
  */
@@ -21450,7 +22070,12 @@ export type PostVedicAstrologyAspectsMonthlyData = {
21450
22070
  coordinateSystem?: 'sidereal' | 'tropical';
21451
22071
  };
21452
22072
  path?: never;
21453
- query?: never;
22073
+ query?: {
22074
+ /**
22075
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22076
+ */
22077
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22078
+ };
21454
22079
  url: '/vedic-astrology/aspects/monthly';
21455
22080
  };
21456
22081
 
@@ -21564,11 +22189,11 @@ export type PostVedicAstrologyAspectsMonthlyResponses = {
21564
22189
  */
21565
22190
  200: {
21566
22191
  /**
21567
- * Year of the aspect analysis.
22192
+ * Year of the aspect analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
21568
22193
  */
21569
22194
  year: number;
21570
22195
  /**
21571
- * Month of the aspect analysis.
22196
+ * Month of the aspect analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
21572
22197
  */
21573
22198
  month: number;
21574
22199
  /**
@@ -21580,13 +22205,21 @@ export type PostVedicAstrologyAspectsMonthlyResponses = {
21580
22205
  */
21581
22206
  events: Array<{
21582
22207
  /**
21583
- * First planet forming the aspect. One of the Navagraha, Sun through Ketu.
22208
+ * First planet forming the aspect. One of the Navagraha, Sun through Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planet1Localized for anything a reader sees.
21584
22209
  */
21585
22210
  planet1: string;
21586
22211
  /**
21587
- * Second planet forming the aspect.
22212
+ * First planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet1 exactly.
22213
+ */
22214
+ planet1Localized?: string;
22215
+ /**
22216
+ * Second planet forming the aspect. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
21588
22217
  */
21589
22218
  planet2: string;
22219
+ /**
22220
+ * Second planet name in the requested language, for display. Present only when lang is set to a language other than English.
22221
+ */
22222
+ planet2Localized?: string;
21590
22223
  /**
21591
22224
  * Aspect type. major: conjunction (0 deg), opposition (180 deg), trine (120 deg), square (90 deg), sextile (60 deg). Minor: vigintile (18 deg), semi-sextile (30 deg), undecile (32.73 deg), semi-quintile (36 deg), novile (40 deg), semi-square (45 deg), septile (51.43 deg), quintile (72 deg), binovile (80 deg), centile (100 deg), biseptile (102.86 deg), tredecile (108 deg), sesqui-square (135 deg), bi-quintile (144 deg), quincunx (150 deg), triseptile (154.29 deg), quadranovile (160 deg).
21592
22225
  */
@@ -21628,13 +22261,13 @@ export type PostVedicAstrologyAspectsMonthlyResponse = PostVedicAstrologyAspects
21628
22261
  export type PostVedicAstrologyAspectsLunarData = {
21629
22262
  body?: {
21630
22263
  /**
21631
- * Year for monthly analysis (1900-2100).
22264
+ * Year for monthly analysis (1900-2100). Defaults to the current year (UTC).
21632
22265
  */
21633
- year: number;
22266
+ year?: number;
21634
22267
  /**
21635
- * Month number (1-12).
22268
+ * Month number (1-12). Defaults to the current month (UTC).
21636
22269
  */
21637
- month: number;
22270
+ month?: number;
21638
22271
  /**
21639
22272
  * Timezone offset from UTC in hours. Output times are converted to this timezone. Defaults to 0 (UTC).
21640
22273
  */
@@ -21645,7 +22278,12 @@ export type PostVedicAstrologyAspectsLunarData = {
21645
22278
  coordinateSystem?: 'sidereal' | 'tropical';
21646
22279
  };
21647
22280
  path?: never;
21648
- query?: never;
22281
+ query?: {
22282
+ /**
22283
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22284
+ */
22285
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22286
+ };
21649
22287
  url: '/vedic-astrology/aspects/lunar';
21650
22288
  };
21651
22289
 
@@ -21759,11 +22397,11 @@ export type PostVedicAstrologyAspectsLunarResponses = {
21759
22397
  */
21760
22398
  200: {
21761
22399
  /**
21762
- * Year of the lunar aspect analysis.
22400
+ * Year of the lunar aspect analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
21763
22401
  */
21764
22402
  year: number;
21765
22403
  /**
21766
- * Month of the lunar aspect analysis.
22404
+ * Month of the lunar aspect analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
21767
22405
  */
21768
22406
  month: number;
21769
22407
  /**
@@ -21775,9 +22413,13 @@ export type PostVedicAstrologyAspectsLunarResponses = {
21775
22413
  */
21776
22414
  events: Array<{
21777
22415
  /**
21778
- * Planet that the Moon forms an aspect with.
22416
+ * Planet that the Moon forms an aspect with. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
21779
22417
  */
21780
22418
  planet: string;
22419
+ /**
22420
+ * Planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
22421
+ */
22422
+ planetLocalized?: string;
21781
22423
  /**
21782
22424
  * Aspect type. major: conjunction, opposition, trine, square, sextile. Minor: vigintile, semi-sextile, undecile, semi-quintile, novile, semi-square, septile, quintile, binovile, centile, biseptile, tredecile, sesqui-square, bi-quintile, quincunx, triseptile, quadranovile.
21783
22425
  */
@@ -21965,6 +22607,19 @@ export type PostVedicAstrologyTransitResponses = {
21965
22607
  * Transit analysis calculated successfully
21966
22608
  */
21967
22609
  200: {
22610
+ /**
22611
+ * 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.
22612
+ */
22613
+ frame: {
22614
+ /**
22615
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
22616
+ */
22617
+ ayanamsa: string;
22618
+ /**
22619
+ * 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.
22620
+ */
22621
+ ayanamsaDegrees: number;
22622
+ };
21968
22623
  /**
21969
22624
  * 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.
21970
22625
  */
@@ -22011,11 +22666,15 @@ export type PostVedicAstrologyTransitResponses = {
22011
22666
  */
22012
22667
  sign: string;
22013
22668
  /**
22014
- * Which natal house (whole-sign bhava from the Lagna) this planet is currently transiting through. Key for Gochar predictions.
22669
+ * 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.
22015
22670
  */
22016
22671
  natalHouse: number;
22017
22672
  /**
22018
- * Aspects formed between this transiting planet and natal planets.
22673
+ * 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.
22674
+ */
22675
+ houseFromMoon: number;
22676
+ /**
22677
+ * 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.
22019
22678
  */
22020
22679
  aspectsToNatal: Array<{
22021
22680
  /**
@@ -22023,7 +22682,7 @@ export type PostVedicAstrologyTransitResponses = {
22023
22682
  */
22024
22683
  natalPlanet: string;
22025
22684
  /**
22026
- * Aspect type: conjunction, opposition, trine, square, or sextile.
22685
+ * 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.
22027
22686
  */
22028
22687
  aspectType: string;
22029
22688
  /**
@@ -22031,6 +22690,27 @@ export type PostVedicAstrologyTransitResponses = {
22031
22690
  */
22032
22691
  orb: number;
22033
22692
  }>;
22693
+ /**
22694
+ * 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.
22695
+ */
22696
+ drishtiToNatal: Array<{
22697
+ /**
22698
+ * Natal graha receiving the drishti from this transiting graha.
22699
+ */
22700
+ natalPlanet: string;
22701
+ /**
22702
+ * 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.
22703
+ */
22704
+ aspectType: 'conjunction' | '7th' | '4th' | '8th' | '5th' | '9th' | '3rd' | '10th';
22705
+ /**
22706
+ * Drishti strength as a percentage. Full and special aspects are 100; the partial quarter, half and three-quarter sights are not reported.
22707
+ */
22708
+ strength: number;
22709
+ /**
22710
+ * 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.
22711
+ */
22712
+ orb: number;
22713
+ }>;
22034
22714
  /**
22035
22715
  * 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.
22036
22716
  */
@@ -22070,17 +22750,25 @@ export type PostVedicAstrologyTransitResponses = {
22070
22750
  */
22071
22751
  planet: string;
22072
22752
  /**
22073
- * Human-readable transit summary.
22753
+ * Human-readable transit summary, naming the rashi being transited and both house readings: from the Lagna, then from the natal Moon.
22074
22754
  */
22075
22755
  description: string;
22076
22756
  /**
22077
- * Natal house being transited by this slow planet.
22757
+ * Natal house being transited by this slow graha, counted whole-sign from the Lagna. Mirrors natalHouse on the matching transitingPlanets entry.
22078
22758
  */
22079
22759
  natalHouse: number;
22080
22760
  /**
22081
- * Notable aspects to natal planets from this slow-moving transiting planet.
22761
+ * 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.
22762
+ */
22763
+ houseFromMoon: number;
22764
+ /**
22765
+ * Notable degree-based angular aspects to natal planets from this slow-moving transiting planet, in Western vocabulary.
22082
22766
  */
22083
22767
  aspects: Array<string>;
22768
+ /**
22769
+ * Graha drishti this slow-moving transiting graha casts on the natal grahas, the Vedic reading. Empty for Rahu and Ketu, which cast none.
22770
+ */
22771
+ drishti: Array<string>;
22084
22772
  }>;
22085
22773
  };
22086
22774
  };
@@ -22090,13 +22778,13 @@ export type PostVedicAstrologyTransitResponse = PostVedicAstrologyTransitRespons
22090
22778
  export type PostVedicAstrologyTransitMonthlyData = {
22091
22779
  body?: {
22092
22780
  /**
22093
- * Year for monthly transit analysis (1900-2100).
22781
+ * Year for monthly transit analysis (1900-2100). Defaults to the current year (UTC).
22094
22782
  */
22095
- year: number;
22783
+ year?: number;
22096
22784
  /**
22097
- * Month number (1-12) for transit analysis.
22785
+ * Month number (1-12) for transit analysis. Defaults to the current month (UTC).
22098
22786
  */
22099
- month: number;
22787
+ month?: number;
22100
22788
  /**
22101
22789
  * Timezone offset from UTC in hours. Output times are converted to this timezone. Defaults to 0 (UTC).
22102
22790
  */
@@ -22107,7 +22795,12 @@ export type PostVedicAstrologyTransitMonthlyData = {
22107
22795
  coordinateSystem?: 'sidereal' | 'tropical';
22108
22796
  };
22109
22797
  path?: never;
22110
- query?: never;
22798
+ query?: {
22799
+ /**
22800
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22801
+ */
22802
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22803
+ };
22111
22804
  url: '/vedic-astrology/transit/monthly';
22112
22805
  };
22113
22806
 
@@ -22221,25 +22914,37 @@ export type PostVedicAstrologyTransitMonthlyResponses = {
22221
22914
  */
22222
22915
  200: {
22223
22916
  /**
22224
- * Year of the monthly transit analysis.
22917
+ * Year of the monthly transit analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
22225
22918
  */
22226
22919
  year: number;
22227
22920
  /**
22228
- * Month of the monthly transit analysis.
22921
+ * Month of the monthly transit analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
22229
22922
  */
22230
22923
  month: number;
22924
+ /**
22925
+ * Timezone offset from UTC in hours that the event dates and times are reported in. Echoes the requested timezone.
22926
+ */
22927
+ timezone: number;
22231
22928
  /**
22232
22929
  * Planetary positions at the beginning of the month (day 1, 00:00 UTC).
22233
22930
  */
22234
22931
  startingPositions: Array<{
22235
22932
  /**
22236
- * Planet (graha) name. One of the 9 Navagraha used in Vedic transit (Gochar) analysis.
22933
+ * Planet (graha) name. One of the 9 Navagraha used in Vedic transit (Gochar) analysis. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
22237
22934
  */
22238
22935
  planet: string;
22239
22936
  /**
22240
- * Zodiac sign (rashi) the planet occupies at the start of the month.
22937
+ * Planet name in the requested language, for display. Present only when lang is set to a language other than English.
22938
+ */
22939
+ planetLocalized?: string;
22940
+ /**
22941
+ * Zodiac sign (rashi) the planet occupies at the start of the month. Always English. Use signLocalized for anything a reader sees.
22241
22942
  */
22242
22943
  sign: string;
22944
+ /**
22945
+ * Zodiac sign name in the requested language, for display. Present only when lang is set to a language other than English.
22946
+ */
22947
+ signLocalized?: string;
22243
22948
  /**
22244
22949
  * Sidereal longitude at the start of the month.
22245
22950
  */
@@ -22250,17 +22955,29 @@ export type PostVedicAstrologyTransitMonthlyResponses = {
22250
22955
  */
22251
22956
  transitEvents: Array<{
22252
22957
  /**
22253
- * Planet that changes sign (rashi) during this month. One of the Navagraha: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu.
22958
+ * Planet that changes sign (rashi) during this month. One of the Navagraha: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
22254
22959
  */
22255
22960
  planet: string;
22256
22961
  /**
22257
- * Zodiac sign the planet is leaving (previous rashi).
22962
+ * Planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
22963
+ */
22964
+ planetLocalized?: string;
22965
+ /**
22966
+ * Zodiac sign the planet is leaving (previous rashi). Always English. Use fromSignLocalized for anything a reader sees.
22258
22967
  */
22259
22968
  fromSign: string;
22260
22969
  /**
22261
- * Zodiac sign the planet is entering (new rashi transit).
22970
+ * Name of the sign being left, in the requested language, for display. Present only when lang is set to a language other than English.
22971
+ */
22972
+ fromSignLocalized?: string;
22973
+ /**
22974
+ * Zodiac sign the planet is entering (new rashi transit). Always English. Use toSignLocalized for anything a reader sees.
22262
22975
  */
22263
22976
  toSign: string;
22977
+ /**
22978
+ * Name of the sign being entered, in the requested language, for display. Present only when lang is set to a language other than English.
22979
+ */
22980
+ toSignLocalized?: string;
22264
22981
  /**
22265
22982
  * Date of the sign change (YYYY-MM-DD). Adjusted to requested timezone.
22266
22983
  */
@@ -22482,20 +23199,25 @@ export type PostVedicAstrologyParallelsResponse = PostVedicAstrologyParallelsRes
22482
23199
  export type PostVedicAstrologyParallelsMonthlyData = {
22483
23200
  body?: {
22484
23201
  /**
22485
- * Year for monthly parallel analysis (1900-2100).
23202
+ * Year for monthly parallel analysis (1900-2100). Defaults to the current year (UTC).
22486
23203
  */
22487
- year: number;
23204
+ year?: number;
22488
23205
  /**
22489
- * Month number (1-12) for parallel analysis.
23206
+ * Month number (1-12) for parallel analysis. Defaults to the current month (UTC).
22490
23207
  */
22491
- month: number;
23208
+ month?: number;
22492
23209
  /**
22493
23210
  * Timezone offset from UTC in hours. Output times are converted to this timezone. Defaults to 0 (UTC).
22494
23211
  */
22495
23212
  timezone?: number | string;
22496
23213
  };
22497
23214
  path?: never;
22498
- query?: never;
23215
+ query?: {
23216
+ /**
23217
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
23218
+ */
23219
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
23220
+ };
22499
23221
  url: '/vedic-astrology/parallels/monthly';
22500
23222
  };
22501
23223
 
@@ -22609,11 +23331,11 @@ export type PostVedicAstrologyParallelsMonthlyResponses = {
22609
23331
  */
22610
23332
  200: {
22611
23333
  /**
22612
- * Year of the parallel analysis.
23334
+ * Year of the parallel analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
22613
23335
  */
22614
23336
  year: number;
22615
23337
  /**
22616
- * Month of the parallel analysis.
23338
+ * Month of the parallel analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
22617
23339
  */
22618
23340
  month: number;
22619
23341
  /**
@@ -22621,13 +23343,21 @@ export type PostVedicAstrologyParallelsMonthlyResponses = {
22621
23343
  */
22622
23344
  events: Array<{
22623
23345
  /**
22624
- * First planet in the parallel or contraparallel pair.
23346
+ * First planet in the parallel or contraparallel pair. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planet1Localized for anything a reader sees.
22625
23347
  */
22626
23348
  planet1: string;
22627
23349
  /**
22628
- * Second planet in the pair.
23350
+ * First planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet1 exactly.
23351
+ */
23352
+ planet1Localized?: string;
23353
+ /**
23354
+ * Second planet in the pair. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
22629
23355
  */
22630
23356
  planet2: string;
23357
+ /**
23358
+ * Second planet name in the requested language, for display. Present only when lang is set to a language other than English.
23359
+ */
23360
+ planet2Localized?: string;
22631
23361
  /**
22632
23362
  * Parallel = same declination (acts like conjunction in strength). Contraparallel = opposite declination (acts like opposition).
22633
23363
  */
@@ -26084,11 +26814,11 @@ export type PostForecastSolarReturnResponses = {
26084
26814
  timezone: number;
26085
26815
  };
26086
26816
  /**
26087
- * 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.
26817
+ * 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.
26088
26818
  */
26089
26819
  planets: Array<{
26090
26820
  /**
26091
- * 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).
26821
+ * 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.
26092
26822
  */
26093
26823
  name: 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto' | 'North Node' | 'South Node' | 'Chiron' | 'Black Moon Lilith';
26094
26824
  /**
@@ -26249,7 +26979,7 @@ export type PostHumanDesignBodygraphData = {
26249
26979
  */
26250
26980
  longitude?: number;
26251
26981
  /**
26252
- * 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.
26982
+ * 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".
26253
26983
  */
26254
26984
  nodeType?: 'mean' | 'true';
26255
26985
  };
@@ -26373,9 +27103,13 @@ export type PostHumanDesignBodygraphResponses = {
26373
27103
  */
26374
27104
  200: {
26375
27105
  /**
26376
- * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector.
27106
+ * 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.
26377
27107
  */
26378
27108
  type: string;
27109
+ /**
27110
+ * 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.
27111
+ */
27112
+ typeLocalized?: string;
26379
27113
  /**
26380
27114
  * 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.
26381
27115
  */
@@ -26385,29 +27119,45 @@ export type PostHumanDesignBodygraphResponses = {
26385
27119
  */
26386
27120
  aura: string;
26387
27121
  /**
26388
- * The aura strategy for engaging life correctly for this type.
27122
+ * The aura strategy for engaging life correctly for this type. Always English, whatever the lang parameter says. Use strategyLocalized for anything a reader sees.
26389
27123
  */
26390
27124
  strategy: string;
27125
+ /**
27126
+ * 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.
27127
+ */
27128
+ strategyLocalized?: string;
26391
27129
  /**
26392
27130
  * 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.
26393
27131
  */
26394
27132
  strategyDescription: string;
26395
27133
  /**
26396
- * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar.
27134
+ * 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.
26397
27135
  */
26398
27136
  authority: string;
27137
+ /**
27138
+ * 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.
27139
+ */
27140
+ authorityLocalized?: string;
26399
27141
  /**
26400
27142
  * 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.
26401
27143
  */
26402
27144
  authorityDescription: string;
26403
27145
  /**
26404
- * The signature feeling of living in alignment with the type.
27146
+ * The signature feeling of living in alignment with the type. Always English, whatever the lang parameter says. Use signatureLocalized for anything a reader sees.
26405
27147
  */
26406
27148
  signature: string;
26407
27149
  /**
26408
- * The not-self theme, the recurring feeling that signals being out of alignment.
27150
+ * 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.
27151
+ */
27152
+ signatureLocalized?: string;
27153
+ /**
27154
+ * 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.
26409
27155
  */
26410
27156
  notSelf: string;
27157
+ /**
27158
+ * 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.
27159
+ */
27160
+ notSelfLocalized?: string;
26411
27161
  /**
26412
27162
  * Profile in conscious/unconscious form from the Personality Sun line over the Design Sun line.
26413
27163
  */
@@ -26438,9 +27188,13 @@ export type PostHumanDesignBodygraphResponses = {
26438
27188
  */
26439
27189
  profileDescription: string;
26440
27190
  /**
26441
- * Definition type from the number of connected components among defined centers. One of None, Single, Split, Triple Split, Quadruple Split.
27191
+ * 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.
26442
27192
  */
26443
27193
  definition: string;
27194
+ /**
27195
+ * 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.
27196
+ */
27197
+ definitionLocalized?: string;
26444
27198
  /**
26445
27199
  * 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.
26446
27200
  */
@@ -26460,9 +27214,13 @@ export type PostHumanDesignBodygraphResponses = {
26460
27214
  */
26461
27215
  gates: Array<number>;
26462
27216
  /**
26463
- * Cross angle. One of Right Angle, Juxtaposition, Left Angle.
27217
+ * Cross angle. One of Right Angle, Juxtaposition, Left Angle. Always English, whatever the lang parameter says. Use angleLocalized for anything a reader sees.
26464
27218
  */
26465
27219
  angle: string;
27220
+ /**
27221
+ * 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.
27222
+ */
27223
+ angleLocalized?: string;
26466
27224
  /**
26467
27225
  * Short code for the angle. One of RAX, JXT, LAX.
26468
27226
  */
@@ -26485,9 +27243,13 @@ export type PostHumanDesignBodygraphResponses = {
26485
27243
  */
26486
27244
  id: string;
26487
27245
  /**
26488
- * Display name of the center.
27246
+ * 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.
26489
27247
  */
26490
27248
  name: string;
27249
+ /**
27250
+ * 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.
27251
+ */
27252
+ nameLocalized?: string;
26491
27253
  /**
26492
27254
  * 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.
26493
27255
  */
@@ -26530,13 +27292,21 @@ export type PostHumanDesignBodygraphResponses = {
26530
27292
  */
26531
27293
  gateB: number;
26532
27294
  /**
26533
- * Name of the defined channel.
27295
+ * Name of the defined channel. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
26534
27296
  */
26535
27297
  name: string;
26536
27298
  /**
26537
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27299
+ * 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.
27300
+ */
27301
+ nameLocalized?: string;
27302
+ /**
27303
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
26538
27304
  */
26539
27305
  circuit: string;
27306
+ /**
27307
+ * 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.
27308
+ */
27309
+ circuitLocalized?: string;
26540
27310
  /**
26541
27311
  * The two centers this channel connects and defines.
26542
27312
  */
@@ -26555,9 +27325,13 @@ export type PostHumanDesignBodygraphResponses = {
26555
27325
  */
26556
27326
  gates: Array<{
26557
27327
  /**
26558
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
27328
+ * 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.
26559
27329
  */
26560
27330
  planet: string;
27331
+ /**
27332
+ * 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.
27333
+ */
27334
+ planetLocalized?: string;
26561
27335
  /**
26562
27336
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
26563
27337
  */
@@ -26571,9 +27345,13 @@ export type PostHumanDesignBodygraphResponses = {
26571
27345
  */
26572
27346
  line: number;
26573
27347
  /**
26574
- * Human Design keynote name of the gate, describing its bodygraph function.
27348
+ * 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.
26575
27349
  */
26576
27350
  gateName: string;
27351
+ /**
27352
+ * 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.
27353
+ */
27354
+ gateNameLocalized?: string;
26577
27355
  /**
26578
27356
  * 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.
26579
27357
  */
@@ -26632,7 +27410,7 @@ export type PostHumanDesignConnectionData = {
26632
27410
  */
26633
27411
  longitude?: number;
26634
27412
  /**
26635
- * 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.
27413
+ * 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".
26636
27414
  */
26637
27415
  nodeType?: 'mean' | 'true';
26638
27416
  };
@@ -26661,7 +27439,7 @@ export type PostHumanDesignConnectionData = {
26661
27439
  */
26662
27440
  longitude?: number;
26663
27441
  /**
26664
- * 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.
27442
+ * 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".
26665
27443
  */
26666
27444
  nodeType?: 'mean' | 'true';
26667
27445
  };
@@ -26802,21 +27580,33 @@ export type PostHumanDesignConnectionResponses = {
26802
27580
  */
26803
27581
  gateB: number;
26804
27582
  /**
26805
- * Name of the channel whose connection dynamic is reported.
27583
+ * Name of the channel whose connection dynamic is reported. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
26806
27584
  */
26807
27585
  name: string;
26808
27586
  /**
26809
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27587
+ * 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.
27588
+ */
27589
+ nameLocalized?: string;
27590
+ /**
27591
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
26810
27592
  */
26811
27593
  circuit: string;
27594
+ /**
27595
+ * 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.
27596
+ */
27597
+ circuitLocalized?: string;
26812
27598
  /**
26813
27599
  * The two centers this channel connects in the bodygraph.
26814
27600
  */
26815
27601
  centers: Array<string>;
26816
27602
  /**
26817
- * 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.
27603
+ * 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.
26818
27604
  */
26819
27605
  dynamic: string;
27606
+ /**
27607
+ * 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.
27608
+ */
27609
+ dynamicLocalized?: string;
26820
27610
  /**
26821
27611
  * Which of the channel two gates person A holds, from one to both.
26822
27612
  */
@@ -26835,9 +27625,13 @@ export type PostHumanDesignConnectionResponses = {
26835
27625
  */
26836
27626
  id: string;
26837
27627
  /**
26838
- * Display name of the center.
27628
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
26839
27629
  */
26840
27630
  name: string;
27631
+ /**
27632
+ * 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.
27633
+ */
27634
+ nameLocalized?: string;
26841
27635
  /**
26842
27636
  * 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.
26843
27637
  */
@@ -26848,9 +27642,13 @@ export type PostHumanDesignConnectionResponses = {
26848
27642
  definedBy: Array<string>;
26849
27643
  }>;
26850
27644
  /**
26851
- * Definition of the combined connection bodygraph from connected components among its defined centers. One of None, Single, Split, Triple Split, Quadruple Split.
27645
+ * 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.
26852
27646
  */
26853
27647
  combinedDefinition: string;
27648
+ /**
27649
+ * 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.
27650
+ */
27651
+ combinedDefinitionLocalized?: string;
26854
27652
  /**
26855
27653
  * Count of each connection dynamic across all connected channels.
26856
27654
  */
@@ -26904,7 +27702,7 @@ export type PostHumanDesignPentaData = {
26904
27702
  */
26905
27703
  longitude?: number;
26906
27704
  /**
26907
- * 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.
27705
+ * 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".
26908
27706
  */
26909
27707
  nodeType?: 'mean' | 'true';
26910
27708
  }>;
@@ -27045,13 +27843,21 @@ export type PostHumanDesignPentaResponses = {
27045
27843
  */
27046
27844
  gateB: number;
27047
27845
  /**
27048
- * Name of the Penta channel. One of The Alpha, Inspiration, The Prodigal, Rhythm, The Beat, Discovery.
27846
+ * 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.
27049
27847
  */
27050
27848
  name: string;
27051
27849
  /**
27052
- * Circuit family of the channel. One of Individual, Collective, Tribal.
27850
+ * 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.
27851
+ */
27852
+ nameLocalized?: string;
27853
+ /**
27854
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27053
27855
  */
27054
27856
  circuit: string;
27857
+ /**
27858
+ * 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.
27859
+ */
27860
+ circuitLocalized?: string;
27055
27861
  /**
27056
27862
  * 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.
27057
27863
  */
@@ -27082,9 +27888,13 @@ export type PostHumanDesignPentaResponses = {
27082
27888
  */
27083
27889
  gate: number;
27084
27890
  /**
27085
- * Human Design keynote name of the gate, describing the role it brings to the group.
27891
+ * 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.
27086
27892
  */
27087
27893
  gateName: string;
27894
+ /**
27895
+ * 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.
27896
+ */
27897
+ gateNameLocalized?: string;
27088
27898
  /**
27089
27899
  * 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.
27090
27900
  */
@@ -27147,7 +27957,7 @@ export type PostHumanDesignTransitData = {
27147
27957
  */
27148
27958
  longitude?: number;
27149
27959
  /**
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.
27960
+ * 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
27961
  */
27152
27962
  nodeType?: 'mean' | 'true';
27153
27963
  };
@@ -27296,9 +28106,13 @@ export type PostHumanDesignTransitResponses = {
27296
28106
  */
27297
28107
  activations: Array<{
27298
28108
  /**
27299
- * 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.
28109
+ * 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.
27300
28110
  */
27301
28111
  body: string;
28112
+ /**
28113
+ * 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.
28114
+ */
28115
+ bodyLocalized?: string;
27302
28116
  /**
27303
28117
  * Human Design gate number from 1 to 64 this transiting body currently sits in.
27304
28118
  */
@@ -27308,9 +28122,13 @@ export type PostHumanDesignTransitResponses = {
27308
28122
  */
27309
28123
  line: number;
27310
28124
  /**
27311
- * Human Design keynote name of the gate the transiting body activates.
28125
+ * 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.
27312
28126
  */
27313
28127
  gateName: string;
28128
+ /**
28129
+ * 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.
28130
+ */
28131
+ gateNameLocalized?: string;
27314
28132
  /**
27315
28133
  * Cross-reference to the I-Ching hexagram that shares this gate number.
27316
28134
  */
@@ -27338,21 +28156,33 @@ export type PostHumanDesignTransitResponses = {
27338
28156
  */
27339
28157
  gateB: number;
27340
28158
  /**
27341
- * Name of the channel the transit temporarily completes.
28159
+ * Name of the channel the transit temporarily completes. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27342
28160
  */
27343
28161
  name: string;
27344
28162
  /**
27345
- * Circuit family of the channel. One of Individual, Collective, Tribal.
28163
+ * 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.
28164
+ */
28165
+ nameLocalized?: string;
28166
+ /**
28167
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
27346
28168
  */
27347
28169
  circuit: string;
28170
+ /**
28171
+ * 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.
28172
+ */
28173
+ circuitLocalized?: string;
27348
28174
  /**
27349
28175
  * The two centers this channel connects and temporarily defines.
27350
28176
  */
27351
28177
  centers: Array<string>;
27352
28178
  /**
27353
- * 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.
28179
+ * 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.
27354
28180
  */
27355
28181
  kind: string;
28182
+ /**
28183
+ * 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.
28184
+ */
28185
+ kindLocalized?: string;
27356
28186
  /**
27357
28187
  * Gate or gates of this channel the natal chart already holds. Empty for an educational channel.
27358
28188
  */
@@ -27371,9 +28201,13 @@ export type PostHumanDesignTransitResponses = {
27371
28201
  */
27372
28202
  id: string;
27373
28203
  /**
27374
- * Display name of the center.
28204
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27375
28205
  */
27376
28206
  name: string;
28207
+ /**
28208
+ * 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.
28209
+ */
28210
+ nameLocalized?: string;
27377
28211
  /**
27378
28212
  * Always true. The center is open in the natal chart and temporarily defined by a transit-completed channel for the duration of the transit.
27379
28213
  */
@@ -27411,7 +28245,7 @@ export type PostHumanDesignTypeData = {
27411
28245
  */
27412
28246
  longitude?: number;
27413
28247
  /**
27414
- * 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.
28248
+ * 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".
27415
28249
  */
27416
28250
  nodeType?: 'mean' | 'true';
27417
28251
  };
@@ -27535,9 +28369,13 @@ export type PostHumanDesignTypeResponses = {
27535
28369
  */
27536
28370
  200: {
27537
28371
  /**
27538
- * Human Design energy type. One of Manifestor, Generator, Manifesting Generator, Projector, Reflector.
28372
+ * 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.
27539
28373
  */
27540
28374
  type: string;
28375
+ /**
28376
+ * 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.
28377
+ */
28378
+ typeLocalized?: string;
27541
28379
  /**
27542
28380
  * 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.
27543
28381
  */
@@ -27547,29 +28385,45 @@ export type PostHumanDesignTypeResponses = {
27547
28385
  */
27548
28386
  aura: string;
27549
28387
  /**
27550
- * The aura strategy for engaging life correctly for this type.
28388
+ * The aura strategy for engaging life correctly for this type. Always English, whatever the lang parameter says. Use strategyLocalized for anything a reader sees.
27551
28389
  */
27552
28390
  strategy: string;
28391
+ /**
28392
+ * 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.
28393
+ */
28394
+ strategyLocalized?: string;
27553
28395
  /**
27554
28396
  * 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.
27555
28397
  */
27556
28398
  strategyDescription: string;
27557
28399
  /**
27558
- * Inner authority for decision making. One of Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar.
28400
+ * 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.
27559
28401
  */
27560
28402
  authority: string;
28403
+ /**
28404
+ * 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.
28405
+ */
28406
+ authorityLocalized?: string;
27561
28407
  /**
27562
28408
  * 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.
27563
28409
  */
27564
28410
  authorityDescription: string;
27565
28411
  /**
27566
- * The signature feeling of living in alignment.
28412
+ * The signature feeling of living in alignment. Always English, whatever the lang parameter says. Use signatureLocalized for anything a reader sees.
27567
28413
  */
27568
28414
  signature: string;
27569
28415
  /**
27570
- * The not-self theme that signals being out of alignment.
28416
+ * 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.
28417
+ */
28418
+ signatureLocalized?: string;
28419
+ /**
28420
+ * The not-self theme that signals being out of alignment. Always English, whatever the lang parameter says. Use notSelfLocalized for anything a reader sees.
27571
28421
  */
27572
28422
  notSelf: string;
28423
+ /**
28424
+ * 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.
28425
+ */
28426
+ notSelfLocalized?: string;
27573
28427
  /**
27574
28428
  * Profile from the Personality Sun line over the Design Sun line.
27575
28429
  */
@@ -27602,7 +28456,7 @@ export type PostHumanDesignGatesData = {
27602
28456
  */
27603
28457
  longitude?: number;
27604
28458
  /**
27605
- * 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.
28459
+ * 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".
27606
28460
  */
27607
28461
  nodeType?: 'mean' | 'true';
27608
28462
  };
@@ -27730,9 +28584,13 @@ export type PostHumanDesignGatesResponses = {
27730
28584
  */
27731
28585
  personality: Array<{
27732
28586
  /**
27733
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
28587
+ * 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.
27734
28588
  */
27735
28589
  planet: string;
28590
+ /**
28591
+ * 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.
28592
+ */
28593
+ planetLocalized?: string;
27736
28594
  /**
27737
28595
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
27738
28596
  */
@@ -27746,9 +28604,13 @@ export type PostHumanDesignGatesResponses = {
27746
28604
  */
27747
28605
  line: number;
27748
28606
  /**
27749
- * Human Design keynote name of the gate, describing its bodygraph function.
28607
+ * 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.
27750
28608
  */
27751
28609
  gateName: string;
28610
+ /**
28611
+ * 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.
28612
+ */
28613
+ gateNameLocalized?: string;
27752
28614
  /**
27753
28615
  * 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.
27754
28616
  */
@@ -27780,9 +28642,13 @@ export type PostHumanDesignGatesResponses = {
27780
28642
  */
27781
28643
  design: Array<{
27782
28644
  /**
27783
- * Activating body. One of Sun, Earth, Moon, North Node, South Node, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
28645
+ * 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.
27784
28646
  */
27785
28647
  planet: string;
28648
+ /**
28649
+ * 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.
28650
+ */
28651
+ planetLocalized?: string;
27786
28652
  /**
27787
28653
  * Chart side. personality is the conscious birth-moment activation, design is the unconscious activation 88 degrees of solar arc before birth.
27788
28654
  */
@@ -27796,9 +28662,13 @@ export type PostHumanDesignGatesResponses = {
27796
28662
  */
27797
28663
  line: number;
27798
28664
  /**
27799
- * Human Design keynote name of the gate, describing its bodygraph function.
28665
+ * 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.
27800
28666
  */
27801
28667
  gateName: string;
28668
+ /**
28669
+ * 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.
28670
+ */
28671
+ gateNameLocalized?: string;
27802
28672
  /**
27803
28673
  * 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.
27804
28674
  */
@@ -27974,17 +28844,25 @@ export type GetHumanDesignGatesByNumberResponses = {
27974
28844
  */
27975
28845
  number: number;
27976
28846
  /**
27977
- * Human Design keynote name of the gate.
28847
+ * Human Design keynote name of the gate. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
27978
28848
  */
27979
28849
  name: string;
28850
+ /**
28851
+ * 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.
28852
+ */
28853
+ nameLocalized?: string;
27980
28854
  /**
27981
28855
  * Center the gate sits in.
27982
28856
  */
27983
28857
  center: string;
27984
28858
  /**
27985
- * Display name of the center.
28859
+ * Display name of the center. Always English, whatever the lang parameter says. Use centerNameLocalized for anything a reader sees.
27986
28860
  */
27987
28861
  centerName: string;
28862
+ /**
28863
+ * 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.
28864
+ */
28865
+ centerNameLocalized?: string;
27988
28866
  /**
27989
28867
  * The I-Ching hexagram that shares this gate number.
27990
28868
  */
@@ -28007,9 +28885,13 @@ export type GetHumanDesignGatesByNumberResponses = {
28007
28885
  */
28008
28886
  gate: number;
28009
28887
  /**
28010
- * Name of the shared channel.
28888
+ * Name of the shared channel. Always English, whatever the lang parameter says. Use channelLocalized for anything a reader sees.
28011
28889
  */
28012
28890
  channel: string;
28891
+ /**
28892
+ * 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.
28893
+ */
28894
+ channelLocalized?: string;
28013
28895
  }>;
28014
28896
  };
28015
28897
  };
@@ -28039,7 +28921,7 @@ export type PostHumanDesignChannelsData = {
28039
28921
  */
28040
28922
  longitude?: number;
28041
28923
  /**
28042
- * 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.
28924
+ * 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".
28043
28925
  */
28044
28926
  nodeType?: 'mean' | 'true';
28045
28927
  };
@@ -28175,13 +29057,21 @@ export type PostHumanDesignChannelsResponses = {
28175
29057
  */
28176
29058
  gateB: number;
28177
29059
  /**
28178
- * Name of the defined channel.
29060
+ * Name of the defined channel. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
28179
29061
  */
28180
29062
  name: string;
28181
29063
  /**
28182
- * Circuit family of the channel. One of Individual, Collective, Tribal.
29064
+ * 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.
29065
+ */
29066
+ nameLocalized?: string;
29067
+ /**
29068
+ * Circuit family of the channel. One of Individual, Collective, Tribal. Always English, whatever the lang parameter says. Use circuitLocalized for anything a reader sees.
28183
29069
  */
28184
29070
  circuit: string;
29071
+ /**
29072
+ * 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.
29073
+ */
29074
+ circuitLocalized?: string;
28185
29075
  /**
28186
29076
  * The two centers this channel connects and defines.
28187
29077
  */
@@ -28231,7 +29121,7 @@ export type PostHumanDesignCentersData = {
28231
29121
  */
28232
29122
  longitude?: number;
28233
29123
  /**
28234
- * 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.
29124
+ * 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".
28235
29125
  */
28236
29126
  nodeType?: 'mean' | 'true';
28237
29127
  };
@@ -28363,9 +29253,13 @@ export type PostHumanDesignCentersResponses = {
28363
29253
  */
28364
29254
  id: string;
28365
29255
  /**
28366
- * Display name of the center.
29256
+ * 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.
28367
29257
  */
28368
29258
  name: string;
29259
+ /**
29260
+ * 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.
29261
+ */
29262
+ nameLocalized?: string;
28369
29263
  /**
28370
29264
  * 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.
28371
29265
  */
@@ -28535,9 +29429,13 @@ export type GetHumanDesignCentersByIdResponses = {
28535
29429
  */
28536
29430
  id: string;
28537
29431
  /**
28538
- * Display name of the center.
29432
+ * Display name of the center. Always English, whatever the lang parameter says. Use nameLocalized for anything a reader sees.
28539
29433
  */
28540
29434
  name: string;
29435
+ /**
29436
+ * 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.
29437
+ */
29438
+ nameLocalized?: string;
28541
29439
  /**
28542
29440
  * Whether this is a motor center.
28543
29441
  */
@@ -28582,7 +29480,7 @@ export type PostHumanDesignProfileData = {
28582
29480
  */
28583
29481
  longitude?: number;
28584
29482
  /**
28585
- * 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.
29483
+ * 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".
28586
29484
  */
28587
29485
  nodeType?: 'mean' | 'true';
28588
29486
  };
@@ -28753,7 +29651,7 @@ export type PostHumanDesignVariablesData = {
28753
29651
  */
28754
29652
  longitude?: number;
28755
29653
  /**
28756
- * 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.
29654
+ * 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".
28757
29655
  */
28758
29656
  nodeType?: 'mean' | 'true';
28759
29657
  };
@@ -28885,17 +29783,29 @@ export type PostHumanDesignVariablesResponses = {
28885
29783
  */
28886
29784
  key: string;
28887
29785
  /**
28888
- * 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.
29786
+ * 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.
28889
29787
  */
28890
29788
  name: string;
28891
29789
  /**
28892
- * 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.
29790
+ * 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.
29791
+ */
29792
+ nameLocalized?: string;
29793
+ /**
29794
+ * 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.
28893
29795
  */
28894
29796
  layer: string;
28895
29797
  /**
28896
- * Position of the arrow at the head of the bodygraph. One of Top left, Bottom left, Top right, Bottom right.
29798
+ * 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.
29799
+ */
29800
+ layerLocalized?: string;
29801
+ /**
29802
+ * 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.
28897
29803
  */
28898
29804
  position: string;
29805
+ /**
29806
+ * 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.
29807
+ */
29808
+ positionLocalized?: string;
28899
29809
  /**
28900
29810
  * The single activation, body and chart side, that this arrow is derived from.
28901
29811
  */
@@ -28926,13 +29836,21 @@ export type PostHumanDesignVariablesResponses = {
28926
29836
  */
28927
29837
  direction: string;
28928
29838
  /**
28929
- * 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.
29839
+ * 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.
28930
29840
  */
28931
29841
  colorLabel: string;
28932
29842
  /**
28933
- * Keynote of the arrow direction for this arrow, for example Active or Passive for Determination, Focused or Peripheral for Perspective.
29843
+ * 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.
29844
+ */
29845
+ colorLabelLocalized?: string;
29846
+ /**
29847
+ * 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.
28934
29848
  */
28935
29849
  directionLabel: string;
29850
+ /**
29851
+ * 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.
29852
+ */
29853
+ directionLabelLocalized?: string;
28936
29854
  /**
28937
29855
  * What this arrow is and what it governs.
28938
29856
  */
@@ -28954,17 +29872,25 @@ export type PostHumanDesignVariablesResponses = {
28954
29872
  */
28955
29873
  directionMeaning: string;
28956
29874
  /**
28957
- * Name of the Base. Informational only: the Base is finer than any civil birth time can resolve.
29875
+ * 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.
28958
29876
  */
28959
29877
  baseName: string;
29878
+ /**
29879
+ * 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.
29880
+ */
29881
+ baseNameLocalized?: string;
28960
29882
  /**
28961
29883
  * 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.
28962
29884
  */
28963
29885
  cognition?: {
28964
29886
  /**
28965
- * Name of the Cognition, the strongest sense. One of six read off the Determination Tone: Smell, Taste, Outer Vision, Inner Vision, Feeling, Touch.
29887
+ * 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.
28966
29888
  */
28967
29889
  label: string;
29890
+ /**
29891
+ * 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.
29892
+ */
29893
+ labelLocalized?: string;
28968
29894
  /**
28969
29895
  * 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.
28970
29896
  */
@@ -41786,7 +42712,7 @@ export type GetLocationSearchData = {
41786
42712
  path?: never;
41787
42713
  query: {
41788
42714
  /**
41789
- * 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).
42715
+ * 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.
41790
42716
  */
41791
42717
  q: string;
41792
42718
  /**
@@ -41907,11 +42833,11 @@ export type GetLocationSearchError = GetLocationSearchErrors[keyof GetLocationSe
41907
42833
 
41908
42834
  export type GetLocationSearchResponses = {
41909
42835
  /**
41910
- * Matching cities sorted by relevance (prefix match first) then population
42836
+ * Matching places, best match first, with coordinates, IANA timezone and UTC offset
41911
42837
  */
41912
42838
  200: {
41913
42839
  /**
41914
- * Total number of cities matching the search query.
42840
+ * 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.
41915
42841
  */
41916
42842
  total: number;
41917
42843
  /**
@@ -41919,11 +42845,11 @@ export type GetLocationSearchResponses = {
41919
42845
  */
41920
42846
  limit: number;
41921
42847
  /**
41922
- * Number of cities skipped. Use with limit for pagination.
42848
+ * Number of places skipped. Use with limit to page through results.
41923
42849
  */
41924
42850
  offset: number;
41925
42851
  /**
41926
- * City results for the current page, sorted by relevance (prefix match first) then population.
42852
+ * 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.
41927
42853
  */
41928
42854
  cities: Array<{
41929
42855
  /**
@@ -41931,7 +42857,7 @@ export type GetLocationSearchResponses = {
41931
42857
  */
41932
42858
  city: string;
41933
42859
  /**
41934
- * State, province, canton, or administrative region. Helps disambiguate cities with the same name across regions (e.g. Springfield IL vs Springfield MO).
42860
+ * 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.
41935
42861
  */
41936
42862
  province: string;
41937
42863
  /**
@@ -41951,15 +42877,15 @@ export type GetLocationSearchResponses = {
41951
42877
  */
41952
42878
  longitude: number;
41953
42879
  /**
41954
- * 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.
42880
+ * 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.
41955
42881
  */
41956
42882
  timezone: string;
41957
42883
  /**
41958
- * 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.
42884
+ * 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.
41959
42885
  */
41960
42886
  utcOffset: number;
41961
42887
  /**
41962
- * City population estimate from geographic databases. Larger cities rank higher in search results, ensuring major metropolitan areas appear first in autocomplete suggestions.
42888
+ * 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.
41963
42889
  */
41964
42890
  population: number;
41965
42891
  }>;
@@ -42094,7 +43020,7 @@ export type GetLocationCountriesResponses = {
42094
43020
  */
42095
43021
  200: {
42096
43022
  /**
42097
- * Total number of countries available.
43023
+ * Total number of countries with at least one place in the dataset.
42098
43024
  */
42099
43025
  total: number;
42100
43026
  /**
@@ -42122,7 +43048,7 @@ export type GetLocationCountriesResponses = {
42122
43048
  */
42123
43049
  iso3: string;
42124
43050
  /**
42125
- * 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.
43051
+ * 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.
42126
43052
  */
42127
43053
  cityCount: number;
42128
43054
  }>;
@@ -42262,7 +43188,7 @@ export type GetLocationCountriesByIso2Responses = {
42262
43188
  */
42263
43189
  200: {
42264
43190
  /**
42265
- * Total number of cities available for this country.
43191
+ * Total number of places available for this country across all pages.
42266
43192
  */
42267
43193
  total: number;
42268
43194
  /**
@@ -42282,7 +43208,7 @@ export type GetLocationCountriesByIso2Responses = {
42282
43208
  */
42283
43209
  city: string;
42284
43210
  /**
42285
- * State, province, canton, or administrative region. Helps disambiguate cities with the same name across regions (e.g. Springfield IL vs Springfield MO).
43211
+ * 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.
42286
43212
  */
42287
43213
  province: string;
42288
43214
  /**
@@ -42302,15 +43228,15 @@ export type GetLocationCountriesByIso2Responses = {
42302
43228
  */
42303
43229
  longitude: number;
42304
43230
  /**
42305
- * 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.
43231
+ * 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.
42306
43232
  */
42307
43233
  timezone: string;
42308
43234
  /**
42309
- * 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.
43235
+ * 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.
42310
43236
  */
42311
43237
  utcOffset: number;
42312
43238
  /**
42313
- * City population estimate from geographic databases. Larger cities rank higher in search results, ensuring major metropolitan areas appear first in autocomplete suggestions.
43239
+ * 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.
42314
43240
  */
42315
43241
  population: number;
42316
43242
  }>;