@roxyapi/ui-vue 0.20.0 → 0.21.0

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.
Files changed (146) hide show
  1. package/AGENTS.md +4 -0
  2. package/README.md +12 -8
  3. package/dist/components/angel-number-card.js +1 -1
  4. package/dist/components/angel-number-card.js.map +1 -1
  5. package/dist/components/angel-number-lookup.js +1 -1
  6. package/dist/components/angel-number-lookup.js.map +1 -1
  7. package/dist/components/arudha-padas.js +1 -1
  8. package/dist/components/arudha-padas.js.map +1 -1
  9. package/dist/components/ashtakavarga-grid.js +1 -1
  10. package/dist/components/ashtakavarga-grid.js.map +1 -1
  11. package/dist/components/aspects-table.js +1 -1
  12. package/dist/components/aspects-table.js.map +1 -1
  13. package/dist/components/astrocartography-map.js +1 -1
  14. package/dist/components/astrocartography-map.js.map +1 -1
  15. package/dist/components/bhav-chalit-table.d.ts +82 -0
  16. package/dist/components/bhav-chalit-table.d.ts.map +1 -0
  17. package/dist/components/bhav-chalit-table.js +2 -0
  18. package/dist/components/bhav-chalit-table.js.map +7 -0
  19. package/dist/components/bhava-bala-table.d.ts +82 -0
  20. package/dist/components/bhava-bala-table.d.ts.map +1 -0
  21. package/dist/components/bhava-bala-table.js +2 -0
  22. package/dist/components/bhava-bala-table.js.map +7 -0
  23. package/dist/components/biorhythm-chart.js +1 -1
  24. package/dist/components/biorhythm-chart.js.map +1 -1
  25. package/dist/components/bodygraph.js +1 -1
  26. package/dist/components/bodygraph.js.map +1 -1
  27. package/dist/components/chara-karakas.js +1 -1
  28. package/dist/components/chara-karakas.js.map +1 -1
  29. package/dist/components/choghadiya-grid.js +1 -1
  30. package/dist/components/choghadiya-grid.js.map +1 -1
  31. package/dist/components/compatibility-card.js +1 -1
  32. package/dist/components/compatibility-card.js.map +1 -1
  33. package/dist/components/crystal-card.js +1 -1
  34. package/dist/components/crystal-card.js.map +1 -1
  35. package/dist/components/crystal-grid.js +1 -1
  36. package/dist/components/crystal-grid.js.map +1 -1
  37. package/dist/components/dasha-timeline.js +1 -1
  38. package/dist/components/dasha-timeline.js.map +1 -1
  39. package/dist/components/data.js +1 -1
  40. package/dist/components/data.js.map +1 -1
  41. package/dist/components/divisional-chart.js +1 -1
  42. package/dist/components/divisional-chart.js.map +1 -1
  43. package/dist/components/dosha-card.js +1 -1
  44. package/dist/components/dosha-card.js.map +1 -1
  45. package/dist/components/dream-card.js +1 -1
  46. package/dist/components/dream-card.js.map +1 -1
  47. package/dist/components/dream-search.js +1 -1
  48. package/dist/components/dream-search.js.map +1 -1
  49. package/dist/components/endpoint-form.js +1 -1
  50. package/dist/components/endpoint-form.js.map +1 -1
  51. package/dist/components/fixed-stars.js +1 -1
  52. package/dist/components/fixed-stars.js.map +1 -1
  53. package/dist/components/forecast-digest.js +1 -1
  54. package/dist/components/forecast-digest.js.map +1 -1
  55. package/dist/components/forecast-timeline.js +1 -1
  56. package/dist/components/forecast-timeline.js.map +1 -1
  57. package/dist/components/gochara-table.d.ts +82 -0
  58. package/dist/components/gochara-table.d.ts.map +1 -0
  59. package/dist/components/gochara-table.js +2 -0
  60. package/dist/components/gochara-table.js.map +7 -0
  61. package/dist/components/guna-milan.js +1 -1
  62. package/dist/components/guna-milan.js.map +1 -1
  63. package/dist/components/hd-connection.js +1 -1
  64. package/dist/components/hd-connection.js.map +1 -1
  65. package/dist/components/hd-penta.js +1 -1
  66. package/dist/components/hd-penta.js.map +1 -1
  67. package/dist/components/hd-type-card.js +1 -1
  68. package/dist/components/hd-type-card.js.map +1 -1
  69. package/dist/components/hd-variables.js +1 -1
  70. package/dist/components/hd-variables.js.map +1 -1
  71. package/dist/components/heliacal-table.d.ts +82 -0
  72. package/dist/components/heliacal-table.d.ts.map +1 -0
  73. package/dist/components/heliacal-table.js +2 -0
  74. package/dist/components/heliacal-table.js.map +7 -0
  75. package/dist/components/hexagram.js +1 -1
  76. package/dist/components/hexagram.js.map +1 -1
  77. package/dist/components/hora-table.js +1 -1
  78. package/dist/components/hora-table.js.map +1 -1
  79. package/dist/components/horoscope-card.js +1 -1
  80. package/dist/components/horoscope-card.js.map +1 -1
  81. package/dist/components/kp-chart.js +1 -1
  82. package/dist/components/kp-chart.js.map +1 -1
  83. package/dist/components/kp-planets-table.js +1 -1
  84. package/dist/components/kp-planets-table.js.map +1 -1
  85. package/dist/components/kp-ruling-planets.js +1 -1
  86. package/dist/components/kp-ruling-planets.js.map +1 -1
  87. package/dist/components/local-space-compass.js +1 -1
  88. package/dist/components/local-space-compass.js.map +1 -1
  89. package/dist/components/location-search.js +1 -1
  90. package/dist/components/location-search.js.map +1 -1
  91. package/dist/components/moon-phase.js +1 -1
  92. package/dist/components/moon-phase.js.map +1 -1
  93. package/dist/components/nakshatra-card.js +1 -1
  94. package/dist/components/nakshatra-card.js.map +1 -1
  95. package/dist/components/natal-chart.js +1 -1
  96. package/dist/components/natal-chart.js.map +1 -1
  97. package/dist/components/numerology-card.js +1 -1
  98. package/dist/components/numerology-card.js.map +1 -1
  99. package/dist/components/panchang-table.js +1 -1
  100. package/dist/components/panchang-table.js.map +1 -1
  101. package/dist/components/positions-table.js +1 -1
  102. package/dist/components/positions-table.js.map +1 -1
  103. package/dist/components/profection-card.js +1 -1
  104. package/dist/components/profection-card.js.map +1 -1
  105. package/dist/components/reference-card.js +1 -1
  106. package/dist/components/reference-card.js.map +1 -1
  107. package/dist/components/relocation-wheel.js +1 -1
  108. package/dist/components/relocation-wheel.js.map +1 -1
  109. package/dist/components/shadbala-table.js +1 -1
  110. package/dist/components/shadbala-table.js.map +1 -1
  111. package/dist/components/synastry-chart.js +1 -1
  112. package/dist/components/synastry-chart.js.map +1 -1
  113. package/dist/components/tarot-card.js +1 -1
  114. package/dist/components/tarot-card.js.map +1 -1
  115. package/dist/components/tarot-catalog.js +1 -1
  116. package/dist/components/tarot-catalog.js.map +1 -1
  117. package/dist/components/tarot-spread.js +1 -1
  118. package/dist/components/tarot-spread.js.map +1 -1
  119. package/dist/components/transits-table.js +1 -1
  120. package/dist/components/transits-table.js.map +1 -1
  121. package/dist/components/upagraha-table.js +1 -1
  122. package/dist/components/upagraha-table.js.map +1 -1
  123. package/dist/components/vedic-aspects.js +1 -1
  124. package/dist/components/vedic-aspects.js.map +1 -1
  125. package/dist/components/vedic-kundli.js +1 -1
  126. package/dist/components/vedic-kundli.js.map +1 -1
  127. package/dist/components/vedic-planets-table.js +1 -1
  128. package/dist/components/vedic-planets-table.js.map +1 -1
  129. package/dist/components/western-planets-table.js +1 -1
  130. package/dist/components/western-planets-table.js.map +1 -1
  131. package/dist/components/yoga-list.js +1 -1
  132. package/dist/components/yoga-list.js.map +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.cjs.map +4 -4
  135. package/dist/index.d.ts +4 -0
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +1 -1
  138. package/dist/index.js.map +4 -4
  139. package/dist/load-ui.d.ts +1 -1
  140. package/dist/load-ui.js +1 -1
  141. package/dist/load-ui.js.map +1 -1
  142. package/dist/types/index.d.ts +1 -1
  143. package/dist/types/index.d.ts.map +1 -1
  144. package/dist/types/types.gen.d.ts +2104 -266
  145. package/dist/types/types.gen.d.ts.map +1 -1
  146. package/package.json +1 -1
@@ -432,10 +432,25 @@ export type HousesResponse = {
432
432
  */
433
433
  comparison?: {
434
434
  [key: string]: {
435
+ /**
436
+ * All 12 house cusps as this system computes them. Compare the same house number across the four keys to see how far the systems disagree, which is largest at high latitudes and for the intermediate cusps.
437
+ */
435
438
  houses: Array<{
439
+ /**
440
+ * House number (1-12). Each house governs specific life areas.
441
+ */
436
442
  number: number;
443
+ /**
444
+ * Ecliptic longitude of this house cusp in degrees (0-360), as this house system places it.
445
+ */
437
446
  longitude: number;
447
+ /**
448
+ * Zodiac sign on this house cusp in this house system.
449
+ */
438
450
  sign: string;
451
+ /**
452
+ * Degree within the zodiac sign on this cusp (0-29.999).
453
+ */
439
454
  degree: number;
440
455
  }>;
441
456
  };
@@ -809,7 +824,7 @@ export type TransitsResponse = {
809
824
  */
810
825
  summary: string;
811
826
  /**
812
- * How long this transit influence lasts based on the transiting planet speed.
827
+ * How long this transit 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.
813
828
  */
814
829
  timing: string;
815
830
  /**
@@ -873,7 +888,13 @@ export type TransitsRequest = {
873
888
  * Time in 24-hour format. Seconds are optional and default to 00 (14:30 becomes 14:30:00); a single-digit hour is zero-padded. Out-of-range values are rejected.
874
889
  */
875
890
  time: string;
891
+ /**
892
+ * Natal birth latitude in decimal degrees, positive north. Sets the local sidereal time behind the natal Ascendant and house cusps that the transits are measured against.
893
+ */
876
894
  latitude: number;
895
+ /**
896
+ * Natal birth longitude in decimal degrees, positive east and negative west. Example: New York -74.0060, London -0.1276, Sydney 151.2093.
897
+ */
877
898
  longitude: number;
878
899
  /**
879
900
  * Natal timezone: decimal hours OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the natal date.
@@ -973,7 +994,7 @@ export type AstrocartographyResponse = {
973
994
  /**
974
995
  * Absolute latitude in degrees beyond which the body never crosses the horizon, so the line has no points past it. Null when the line spans the full sampled range.
975
996
  */
976
- circumpolarBeyond: number;
997
+ circumpolarBeyond: number | null;
977
998
  /**
978
999
  * Plain language meaning of this rising or setting planetary line for relocation, suitable for chart reports and AI agents.
979
1000
  */
@@ -999,7 +1020,7 @@ export type AstrocartographyResponse = {
999
1020
  /**
1000
1021
  * Absolute latitude in degrees beyond which the body never crosses the horizon, so the line has no points past it. Null when the line spans the full sampled range.
1001
1022
  */
1002
- circumpolarBeyond: number;
1023
+ circumpolarBeyond: number | null;
1003
1024
  /**
1004
1025
  * Plain language meaning of this rising or setting planetary line for relocation, suitable for chart reports and AI agents.
1005
1026
  */
@@ -2092,7 +2113,7 @@ export type ProfectionsRequest = {
2092
2113
  export type BirthChartResponse = {
2093
2114
  aries: {
2094
2115
  /**
2095
- * Zodiac sign name in lowercase.
2116
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2096
2117
  */
2097
2118
  rashi: string;
2098
2119
  /**
@@ -2149,7 +2170,7 @@ export type BirthChartResponse = {
2149
2170
  };
2150
2171
  taurus: {
2151
2172
  /**
2152
- * Zodiac sign name in lowercase.
2173
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2153
2174
  */
2154
2175
  rashi: string;
2155
2176
  /**
@@ -2206,7 +2227,7 @@ export type BirthChartResponse = {
2206
2227
  };
2207
2228
  gemini: {
2208
2229
  /**
2209
- * Zodiac sign name in lowercase.
2230
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2210
2231
  */
2211
2232
  rashi: string;
2212
2233
  /**
@@ -2263,7 +2284,7 @@ export type BirthChartResponse = {
2263
2284
  };
2264
2285
  cancer: {
2265
2286
  /**
2266
- * Zodiac sign name in lowercase.
2287
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2267
2288
  */
2268
2289
  rashi: string;
2269
2290
  /**
@@ -2320,7 +2341,7 @@ export type BirthChartResponse = {
2320
2341
  };
2321
2342
  leo: {
2322
2343
  /**
2323
- * Zodiac sign name in lowercase.
2344
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2324
2345
  */
2325
2346
  rashi: string;
2326
2347
  /**
@@ -2377,7 +2398,7 @@ export type BirthChartResponse = {
2377
2398
  };
2378
2399
  virgo: {
2379
2400
  /**
2380
- * Zodiac sign name in lowercase.
2401
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2381
2402
  */
2382
2403
  rashi: string;
2383
2404
  /**
@@ -2434,7 +2455,7 @@ export type BirthChartResponse = {
2434
2455
  };
2435
2456
  libra: {
2436
2457
  /**
2437
- * Zodiac sign name in lowercase.
2458
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2438
2459
  */
2439
2460
  rashi: string;
2440
2461
  /**
@@ -2491,7 +2512,7 @@ export type BirthChartResponse = {
2491
2512
  };
2492
2513
  scorpio: {
2493
2514
  /**
2494
- * Zodiac sign name in lowercase.
2515
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2495
2516
  */
2496
2517
  rashi: string;
2497
2518
  /**
@@ -2548,7 +2569,7 @@ export type BirthChartResponse = {
2548
2569
  };
2549
2570
  sagittarius: {
2550
2571
  /**
2551
- * Zodiac sign name in lowercase.
2572
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2552
2573
  */
2553
2574
  rashi: string;
2554
2575
  /**
@@ -2605,7 +2626,7 @@ export type BirthChartResponse = {
2605
2626
  };
2606
2627
  capricorn: {
2607
2628
  /**
2608
- * Zodiac sign name in lowercase.
2629
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2609
2630
  */
2610
2631
  rashi: string;
2611
2632
  /**
@@ -2662,7 +2683,7 @@ export type BirthChartResponse = {
2662
2683
  };
2663
2684
  aquarius: {
2664
2685
  /**
2665
- * Zodiac sign name in lowercase.
2686
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2666
2687
  */
2667
2688
  rashi: string;
2668
2689
  /**
@@ -2719,7 +2740,7 @@ export type BirthChartResponse = {
2719
2740
  };
2720
2741
  pisces: {
2721
2742
  /**
2722
- * Zodiac sign name in lowercase.
2743
+ * Zodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
2723
2744
  */
2724
2745
  rashi: string;
2725
2746
  /**
@@ -2774,6 +2795,69 @@ export type BirthChartResponse = {
2774
2795
  deeptadi?: 'Dipta' | 'Svastha' | 'Pramudita' | 'Shanta' | 'Dina' | 'Duhkhita' | 'Vikala' | 'Khala' | 'Kopa';
2775
2796
  }>;
2776
2797
  };
2798
+ /**
2799
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
2800
+ */
2801
+ frame: {
2802
+ /**
2803
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
2804
+ */
2805
+ ayanamsa: string;
2806
+ /**
2807
+ * 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.
2808
+ */
2809
+ ayanamsaDegrees: number;
2810
+ };
2811
+ /**
2812
+ * Uranus, Neptune and Pluto, present only when modernPlanets true was sent. Deliberately separate from meta and deliberately without dignity, avastha, combustion or aspect fields: those are constructs of the nine-graha system and the modern planets rule no sign, so no classical value exists for them. Order is always Uranus, Neptune, Pluto.
2813
+ */
2814
+ modernPlanets?: Array<{
2815
+ /**
2816
+ * Modern planet name. These three are outside the classical Navagraha and are returned only when modernPlanets true is sent.
2817
+ */
2818
+ planet: 'Uranus' | 'Neptune' | 'Pluto';
2819
+ /**
2820
+ * Sanskrit name Indian software prints for this body: Arun for Uranus, Varun for Neptune, Yam for Pluto. Transliterated rather than translated, the same treatment as rashi and nakshatra lord names, so it is identical in every locale.
2821
+ */
2822
+ sanskritName: 'Arun' | 'Varun' | 'Yam';
2823
+ /**
2824
+ * Sidereal longitude in degrees (0-360), in the same ayanamsa frame as every other position in this response.
2825
+ */
2826
+ longitude: number;
2827
+ /**
2828
+ * Zodiac sign (rashi) the body occupies.
2829
+ */
2830
+ rashi: string;
2831
+ /**
2832
+ * Degrees advanced into the sign, 0 to 30. This is the figure a chart displays beside the sign.
2833
+ */
2834
+ degreeInRashi: number;
2835
+ /**
2836
+ * Nakshatra placement. Reported because it is purely positional; it does not imply the body participates in Vimshottari dasha, which is built on the Moon alone.
2837
+ */
2838
+ nakshatra: {
2839
+ /**
2840
+ * Nakshatra (lunar mansion, 1 of 27) the body occupies.
2841
+ */
2842
+ name: string;
2843
+ /**
2844
+ * Nakshatra pada (quarter, 1-4).
2845
+ */
2846
+ pada: number;
2847
+ /**
2848
+ * Nakshatra index (1-27) starting from Ashwini.
2849
+ */
2850
+ key: number;
2851
+ /**
2852
+ * Vimshottari ruling planet of this nakshatra.
2853
+ */
2854
+ lord: 'Ketu' | 'Venus' | 'Sun' | 'Moon' | 'Mars' | 'Rahu' | 'Jupiter' | 'Saturn' | 'Mercury';
2855
+ };
2856
+ /**
2857
+ * True when the body appears to move backward. All three are retrograde for roughly 40 percent of each year, so this is the normal case rather than the exception.
2858
+ */
2859
+ isRetrograde: boolean;
2860
+ }>;
2777
2861
  /**
2778
2862
  * The twelve bhavas (houses) in order, each with its classical name and significations. Houses are counted whole-sign from the Lagna.
2779
2863
  */
@@ -2873,9 +2957,17 @@ export type BirthChartResponse = {
2873
2957
  */
2874
2958
  quality: 'Positive' | 'Negative' | 'Both';
2875
2959
  /**
2876
- * True if every classical condition for the yoga is satisfied by the given chart. False if any rule fails, including "almost-present" cases where dignity is met but kendra/aspect is not, and Nabhasa cases where the yoga matched its own rule but a stronger family outranked it under the classical precedence norms. Read `evidence` to tell those apart.
2960
+ * Classical grouping, ALWAYS present on a detection verdict: one of the four Nabhasa families (asraya, dala, akriti, sankhya) or classical for the twelve single-combination yogas such as Gajakesari and the Pancha Mahapurusha. Group the verdict list on this key to render a Nabhasa result the way the tradition arranges it. Never translated, so grouping works identically under any lang.
2961
+ */
2962
+ family: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
2963
+ /**
2964
+ * True if every classical condition for the yoga is satisfied by the given chart. False means one of TWO different things: the rule failed, or the rule held and a stronger family outranked it. Read `suppressedBy` to tell those apart, which is exact and locale-independent; `evidence` says the same thing in English prose.
2877
2965
  */
2878
2966
  present: boolean;
2967
+ /**
2968
+ * Set ONLY when this yoga matched its own classical rule and was then silenced by a higher-ranking family, so `present` is false for a reason a practitioner reads very differently from a failed rule. Names the family that took precedence, under the four classical norms: Akriti outranks Asraya, and Akriti, Asraya and Dala each outrank Sankhya. Absent means the rule genuinely did not hold.
2969
+ */
2970
+ suppressedBy?: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
2879
2971
  /**
2880
2972
  * Human-readable rationale naming the specific rule that triggered or failed the detection, including planetary positions, dignity, kendradhipati status, lordship, malefic drishti, sign modality, or whole-chart bhava distribution. For a Nabhasa yoga that matched its own rule but was outranked, this names the precedence norm that silenced it, for example that an Akriti yoga outranks Asraya or that any other Nabhasa family suppresses Sankhya.
2881
2973
  */
@@ -2903,11 +2995,11 @@ export type BirthChartResponse = {
2903
2995
  */
2904
2996
  nakshatra: {
2905
2997
  /**
2906
- * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 arcminutes each. Determines dasha lord and behavioral qualities.
2998
+ * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 minutes each. Determines dasha lord and behavioral qualities.
2907
2999
  */
2908
3000
  name: string;
2909
3001
  /**
2910
- * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 arcminutes. Pada determines Navamsa sign and refines personality traits.
3002
+ * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 minutes. Pada determines Navamsa sign and refines personality traits.
2911
3003
  */
2912
3004
  pada: number;
2913
3005
  /**
@@ -2927,6 +3019,41 @@ export type BirthChartResponse = {
2927
3019
  * Bhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi; Lagna itself is house 1). Present on the D1 birth chart; divisional charts omit it.
2928
3020
  */
2929
3021
  house?: number;
3022
+ /**
3023
+ * Localized readings for this graha avastha states, present only when avasthaInfo true was sent. Each key mirrors the state field of the same name and carries a short meaning plus a one-sentence classical interpretation, so a client can label Yuva or Swapna without a second lookup call.
3024
+ */
3025
+ avasthaInfo?: {
3026
+ awastha?: {
3027
+ /**
3028
+ * One or two word gloss of the state, suitable for a table cell beside the graha.
3029
+ */
3030
+ meaning: string;
3031
+ /**
3032
+ * Single-sentence classical reading of what the state does to the graha results, sourced from BPHS ch. 45, Saravali ch. 5 and Phaladeepika ch. 9. Localized by the lang query parameter.
3033
+ */
3034
+ interpretation: string;
3035
+ };
3036
+ jagradadi?: {
3037
+ /**
3038
+ * One or two word gloss of the state, suitable for a table cell beside the graha.
3039
+ */
3040
+ meaning: string;
3041
+ /**
3042
+ * Single-sentence classical reading of what the state does to the graha results, sourced from BPHS ch. 45, Saravali ch. 5 and Phaladeepika ch. 9. Localized by the lang query parameter.
3043
+ */
3044
+ interpretation: string;
3045
+ };
3046
+ deeptadi?: {
3047
+ /**
3048
+ * One or two word gloss of the state, suitable for a table cell beside the graha.
3049
+ */
3050
+ meaning: string;
3051
+ /**
3052
+ * Single-sentence classical reading of what the state does to the graha results, sourced from BPHS ch. 45, Saravali ch. 5 and Phaladeepika ch. 9. Localized by the lang query parameter.
3053
+ */
3054
+ interpretation: string;
3055
+ };
3056
+ };
2930
3057
  /**
2931
3058
  * Baladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
2932
3059
  */
@@ -2963,6 +3090,22 @@ export type BirthChartRequest = {
2963
3090
  * 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. Defaults to 5.5.
2964
3091
  */
2965
3092
  timezone?: number | string;
3093
+ /**
3094
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3095
+ */
3096
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3097
+ /**
3098
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3099
+ */
3100
+ ayanamsaValue?: number;
3101
+ /**
3102
+ * Set true to include a localized meaning and one-sentence classical interpretation beside each graha avastha state, under avasthaInfo on that graha in meta. Defaults to false, so an existing integration is byte-identical until it opts in. Saves a second call to GET /avasthas and the client-side join that would otherwise be needed to turn Yuva or Swapna into readable text.
3103
+ */
3104
+ avasthaInfo?: boolean;
3105
+ /**
3106
+ * Set true to also return Uranus, Neptune and Pluto, under the Sanskrit names Arun, Varun and Yam that Indian software prints for them. They arrive in a separate modernPlanets array, NOT inside meta, because classical Jyotish is defined over nine grahas: the moderns rule no sign, so they have no dignity, avastha, combustion or aspect strength and it would be fabrication to report one. Each carries longitude, rashi, degree in sign, nakshatra with pada and lord, and retrograde status. Defaults to false, so an existing integration is byte-identical until it opts in.
3107
+ */
3108
+ modernPlanets?: boolean;
2966
3109
  };
2967
3110
  export type NavamsaResponse = {
2968
3111
  /**
@@ -2991,11 +3134,11 @@ export type NavamsaResponse = {
2991
3134
  */
2992
3135
  nakshatra: {
2993
3136
  /**
2994
- * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 arcminutes each. Determines dasha lord and behavioral qualities.
3137
+ * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 minutes each. Determines dasha lord and behavioral qualities.
2995
3138
  */
2996
3139
  name: string;
2997
3140
  /**
2998
- * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 arcminutes. Pada determines Navamsa sign and refines personality traits.
3141
+ * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 minutes. Pada determines Navamsa sign and refines personality traits.
2999
3142
  */
3000
3143
  pada: number;
3001
3144
  /**
@@ -3022,7 +3165,7 @@ export type NavamsaResponse = {
3022
3165
  */
3023
3166
  aries: {
3024
3167
  /**
3025
- * Zodiac sign name in lowercase.
3168
+ * Zodiac sign name in lowercase. Always equals the key of the navamsa rashi-house block it sits in.
3026
3169
  */
3027
3170
  rashi: string;
3028
3171
  /**
@@ -3070,6 +3213,19 @@ export type NavamsaResponse = {
3070
3213
  };
3071
3214
  [key: string]: unknown;
3072
3215
  };
3216
+ /**
3217
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3218
+ */
3219
+ frame: {
3220
+ /**
3221
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3222
+ */
3223
+ ayanamsa: string;
3224
+ /**
3225
+ * 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.
3226
+ */
3227
+ ayanamsaDegrees: number;
3228
+ };
3073
3229
  /**
3074
3230
  * Planets that are Vargottama (same sign in D1 and D9)
3075
3231
  */
@@ -3100,6 +3256,14 @@ export type NavamsaRequest = {
3100
3256
  * 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. Defaults to 5.5.
3101
3257
  */
3102
3258
  timezone?: number | string;
3259
+ /**
3260
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3261
+ */
3262
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3263
+ /**
3264
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3265
+ */
3266
+ ayanamsaValue?: number;
3103
3267
  };
3104
3268
  export type DivisionalChartResponse = {
3105
3269
  /**
@@ -3127,6 +3291,19 @@ export type DivisionalChartResponse = {
3127
3291
  */
3128
3292
  significance: string;
3129
3293
  };
3294
+ /**
3295
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3296
+ */
3297
+ frame: {
3298
+ /**
3299
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3300
+ */
3301
+ ayanamsa: string;
3302
+ /**
3303
+ * 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.
3304
+ */
3305
+ ayanamsaDegrees: number;
3306
+ };
3130
3307
  /**
3131
3308
  * Divisional chart showing planetary positions across 12 rashi houses plus a meta lookup. Same structure as birth chart and navamsa responses.
3132
3309
  */
@@ -3153,11 +3330,11 @@ export type DivisionalChartResponse = {
3153
3330
  */
3154
3331
  nakshatra: {
3155
3332
  /**
3156
- * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 arcminutes each. Determines dasha lord and behavioral qualities.
3333
+ * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 minutes each. Determines dasha lord and behavioral qualities.
3157
3334
  */
3158
3335
  name: string;
3159
3336
  /**
3160
- * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 arcminutes. Pada determines Navamsa sign and refines personality traits.
3337
+ * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 minutes. Pada determines Navamsa sign and refines personality traits.
3161
3338
  */
3162
3339
  pada: number;
3163
3340
  /**
@@ -3184,7 +3361,7 @@ export type DivisionalChartResponse = {
3184
3361
  */
3185
3362
  aries: {
3186
3363
  /**
3187
- * Zodiac sign name in lowercase.
3364
+ * Zodiac sign name in lowercase. Always equals the key of the divisional rashi-house block it sits in.
3188
3365
  */
3189
3366
  rashi: string;
3190
3367
  /**
@@ -3258,12 +3435,33 @@ export type DivisionalChartRequest = {
3258
3435
  * 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. Defaults to 5.5.
3259
3436
  */
3260
3437
  timezone?: number | string;
3438
+ /**
3439
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3440
+ */
3441
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3442
+ /**
3443
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3444
+ */
3445
+ ayanamsaValue?: number;
3261
3446
  /**
3262
3447
  * Divisional chart number. Each division reveals a specific life area. Supported: 2 (Hora, wealth), 3 (Drekkana, siblings), 4 (Chaturthamsa, property), 7 (Saptamsa, children), 9 (Navamsa, marriage), 10 (Dasamsa, career), 12 (Dwadasamsa, parents), 16 (Shodasamsa, vehicles), 20 (Vimsamsa, spirituality), 24 (Chaturvimsamsa, education), 27 (Bhamsa, strength), 30 (Trimsamsa, misfortunes), 40 (Khavedamsa, merit), 45 (Akshavedamsa, character), 60 (Shashtiamsa, past life karma).
3263
3448
  */
3264
3449
  division: number;
3265
3450
  };
3266
3451
  export type CompatibilityResponse = {
3452
+ /**
3453
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3454
+ */
3455
+ frame: {
3456
+ /**
3457
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3458
+ */
3459
+ ayanamsa: string;
3460
+ /**
3461
+ * 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.
3462
+ */
3463
+ ayanamsaDegrees: number;
3464
+ };
3267
3465
  /**
3268
3466
  * Total Ashtakoot Gun Milan score out of 36. Scores above 18 are considered compatible for marriage. Higher scores indicate stronger marital harmony.
3269
3467
  */
@@ -3382,6 +3580,14 @@ export type CompatibilityRequest = {
3382
3580
  */
3383
3581
  timezone?: number | string;
3384
3582
  };
3583
+ /**
3584
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3585
+ */
3586
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3587
+ /**
3588
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3589
+ */
3590
+ ayanamsaValue?: number;
3385
3591
  };
3386
3592
  export type PlanetaryPositionsResponse = {
3387
3593
  [key: string]: {
@@ -3410,11 +3616,11 @@ export type PlanetaryPositionsResponse = {
3410
3616
  */
3411
3617
  nakshatra: {
3412
3618
  /**
3413
- * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 arcminutes each.
3619
+ * Nakshatra (lunar mansion) the planet occupies. One of 27 Vedic nakshatras spanning 13 degrees 20 minutes each.
3414
3620
  */
3415
3621
  name: string;
3416
3622
  /**
3417
- * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 arcminutes. Determines Navamsa sign.
3623
+ * Nakshatra pada (quarter, 1-4). Each nakshatra divides into 4 padas of 3 degrees 20 minutes. Determines Navamsa sign.
3418
3624
  */
3419
3625
  pada: number;
3420
3626
  /**
@@ -3460,7 +3666,7 @@ export type PlanetaryPositionsResponse = {
3460
3666
  */
3461
3667
  isRetrograde: boolean;
3462
3668
  /**
3463
- * Whether the planet is combust (asta, moudhya). A planet is combust when too close to the Sun, weakening its significations. Combustion orbs vary by planet: Moon 12 deg, Mars 17 deg, Mercury 14 deg (12 deg if retrograde), Jupiter 11 deg, Venus 10 deg (8 deg if retrograde), Saturn 15 deg. Sun, Rahu, Ketu, and Lagna are never combust. Based on Surya Siddhanta combustion orbs.
3669
+ * Whether the planet is combust (asta, moudhya). A planet is combust when too close to the Sun, weakening its significations. Limits per Surya Siddhanta: Moon 12 deg, Mars 17 deg, Mercury 14 deg (12 deg if retrograde), Jupiter 11 deg, Venus 10 deg (8 deg if retrograde), Saturn 15 deg. Compared against the difference in ecliptic longitude, which is the standard interpretive convention and matches what other Vedic software reports. It is a chart judgement and not a statement about naked-eye visibility, which additionally depends on the observer latitude: for that use the heliacal endpoint, which applies the same limits in the classical degrees of time. The field is omitted entirely for Sun, Rahu, Ketu and Lagna, since the question does not apply to them rather than the answer being no.
3464
3670
  */
3465
3671
  isCombust?: boolean;
3466
3672
  /**
@@ -3494,8 +3700,29 @@ export type PlanetaryPositionsRequest = {
3494
3700
  * 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. Defaults to 5.5.
3495
3701
  */
3496
3702
  timezone?: number | string;
3703
+ /**
3704
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3705
+ */
3706
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3707
+ /**
3708
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3709
+ */
3710
+ ayanamsaValue?: number;
3497
3711
  };
3498
3712
  export type ManglikResponse = {
3713
+ /**
3714
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3715
+ */
3716
+ frame: {
3717
+ /**
3718
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3719
+ */
3720
+ ayanamsa: string;
3721
+ /**
3722
+ * 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.
3723
+ */
3724
+ ayanamsaDegrees: number;
3725
+ };
3499
3726
  /**
3500
3727
  * Whether Manglik dosha (Kuja dosha) is present based on Mars placement from Lagna
3501
3728
  */
@@ -3559,8 +3786,29 @@ export type ManglikRequest = {
3559
3786
  * 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. Defaults to 5.5.
3560
3787
  */
3561
3788
  timezone?: number | string;
3789
+ /**
3790
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3791
+ */
3792
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3793
+ /**
3794
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3795
+ */
3796
+ ayanamsaValue?: number;
3562
3797
  };
3563
3798
  export type KalsarpaResponse = {
3799
+ /**
3800
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3801
+ */
3802
+ frame: {
3803
+ /**
3804
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3805
+ */
3806
+ ayanamsa: string;
3807
+ /**
3808
+ * 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.
3809
+ */
3810
+ ayanamsaDegrees: number;
3811
+ };
3564
3812
  /**
3565
3813
  * Whether Kalsarpa dosha (Kalsarpa yoga) is present, all planets hemmed between Rahu-Ketu axis
3566
3814
  */
@@ -3632,8 +3880,29 @@ export type KalsarpaRequest = {
3632
3880
  * 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. Defaults to 5.5.
3633
3881
  */
3634
3882
  timezone?: number | string;
3883
+ /**
3884
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3885
+ */
3886
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3887
+ /**
3888
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3889
+ */
3890
+ ayanamsaValue?: number;
3635
3891
  };
3636
3892
  export type SadhesatiResponse = {
3893
+ /**
3894
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
3895
+ */
3896
+ frame: {
3897
+ /**
3898
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
3899
+ */
3900
+ ayanamsa: string;
3901
+ /**
3902
+ * 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.
3903
+ */
3904
+ ayanamsaDegrees: number;
3905
+ };
3637
3906
  /**
3638
3907
  * Whether Sade Sati is currently active, Saturn transiting 12th, 1st, or 2nd house from natal Moon
3639
3908
  */
@@ -3691,6 +3960,14 @@ export type SadhesatiRequest = {
3691
3960
  * 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. Defaults to 5.5.
3692
3961
  */
3693
3962
  timezone?: number | string;
3963
+ /**
3964
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
3965
+ */
3966
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3967
+ /**
3968
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3969
+ */
3970
+ ayanamsaValue?: number;
3694
3971
  };
3695
3972
  export type YogaDetail = {
3696
3973
  /**
@@ -3713,6 +3990,10 @@ export type YogaDetail = {
3713
3990
  * Overall nature. Auspicious yogas (Pancha Mahapurusha, Gajakesari) bestow benefits; inauspicious yogas (Kemadruma) indicate challenges; Both denotes context-dependent effects.
3714
3991
  */
3715
3992
  quality: 'Positive' | 'Negative' | 'Both';
3993
+ /**
3994
+ * Nabhasa family this yoga belongs to, present only on the 32 Nabhasa distribution yogas: asraya (3, sign modality), dala (2, benefic or malefic kendra tenancy), akriti (20, bhava shape) and sankhya (7, count of occupied rasis). Absent on every other glossary row, which is most of the catalog, since those are single-combination yogas outside the Nabhasa scheme. Group or filter the catalog on this key; it is never translated.
3995
+ */
3996
+ family?: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
3716
3997
  };
3717
3998
  export type YogaDetectResponse = {
3718
3999
  /**
@@ -3740,14 +4021,35 @@ export type YogaDetectResponse = {
3740
4021
  */
3741
4022
  quality: 'Positive' | 'Negative' | 'Both';
3742
4023
  /**
3743
- * True if every classical condition for the yoga is satisfied by the given chart. False if any rule fails, including "almost-present" cases where dignity is met but kendra/aspect is not, and Nabhasa cases where the yoga matched its own rule but a stronger family outranked it under the classical precedence norms. Read `evidence` to tell those apart.
4024
+ * Classical grouping, ALWAYS present on a detection verdict: one of the four Nabhasa families (asraya, dala, akriti, sankhya) or classical for the twelve single-combination yogas such as Gajakesari and the Pancha Mahapurusha. Group the verdict list on this key to render a Nabhasa result the way the tradition arranges it. Never translated, so grouping works identically under any lang.
4025
+ */
4026
+ family: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
4027
+ /**
4028
+ * True if every classical condition for the yoga is satisfied by the given chart. False means one of TWO different things: the rule failed, or the rule held and a stronger family outranked it. Read `suppressedBy` to tell those apart, which is exact and locale-independent; `evidence` says the same thing in English prose.
3744
4029
  */
3745
4030
  present: boolean;
4031
+ /**
4032
+ * Set ONLY when this yoga matched its own classical rule and was then silenced by a higher-ranking family, so `present` is false for a reason a practitioner reads very differently from a failed rule. Names the family that took precedence, under the four classical norms: Akriti outranks Asraya, and Akriti, Asraya and Dala each outrank Sankhya. Absent means the rule genuinely did not hold.
4033
+ */
4034
+ suppressedBy?: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
3746
4035
  /**
3747
4036
  * Human-readable rationale naming the specific rule that triggered or failed the detection, including planetary positions, dignity, kendradhipati status, lordship, malefic drishti, sign modality, or whole-chart bhava distribution. For a Nabhasa yoga that matched its own rule but was outranked, this names the precedence norm that silenced it, for example that an Akriti yoga outranks Asraya or that any other Nabhasa family suppresses Sankhya.
3748
4037
  */
3749
4038
  evidence?: string;
3750
4039
  }>;
4040
+ /**
4041
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
4042
+ */
4043
+ frame: {
4044
+ /**
4045
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
4046
+ */
4047
+ ayanamsa: string;
4048
+ /**
4049
+ * 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.
4050
+ */
4051
+ ayanamsaDegrees: number;
4052
+ };
3751
4053
  /**
3752
4054
  * Count of yogas where present === true in this chart. Range 0-44, though real charts sit in the low single digits: the Nabhasa families are mutually constrained by the precedence norms, and most shape yogas are rare.
3753
4055
  */
@@ -3756,10 +4058,25 @@ export type YogaDetectResponse = {
3756
4058
  * Echo of the resolved birth data used for detection. Timezone is the numeric offset that the chart engine consumed (IANA names are resolved upstream).
3757
4059
  */
3758
4060
  birthDetails: {
4061
+ /**
4062
+ * Birth date the kundli was cast for, YYYY-MM-DD, echoed back from the request.
4063
+ */
3759
4064
  date: string;
4065
+ /**
4066
+ * Birth time the kundli was cast for, 24-hour HH:MM:SS, echoed back from the request. Lagna moves roughly one rashi every two hours, so this is what pins the bhava-dependent yogas.
4067
+ */
3760
4068
  time: string;
4069
+ /**
4070
+ * Birth latitude in decimal degrees, echoed back from the request. Feeds the local sidereal time behind the Lagna.
4071
+ */
3761
4072
  latitude: number;
4073
+ /**
4074
+ * Birth longitude in decimal degrees, echoed back from the request. East is positive, west is negative.
4075
+ */
3762
4076
  longitude: number;
4077
+ /**
4078
+ * Numeric UTC offset in decimal hours that the chart engine actually consumed. An IANA name sent on the request is resolved to its DST-correct offset upstream, so this is always a number.
4079
+ */
3763
4080
  timezone: number;
3764
4081
  };
3765
4082
  };
@@ -3784,6 +4101,14 @@ export type YogaDetectRequest = {
3784
4101
  * 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. Defaults to 5.5.
3785
4102
  */
3786
4103
  timezone?: number | string;
4104
+ /**
4105
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
4106
+ */
4107
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
4108
+ /**
4109
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
4110
+ */
4111
+ ayanamsaValue?: number;
3787
4112
  };
3788
4113
  export type KpAyanamsaResponse = {
3789
4114
  /**
@@ -3893,9 +4218,9 @@ export type KpPlanetsRequest = {
3893
4218
  */
3894
4219
  timezone?: number | string;
3895
4220
  /**
3896
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
4221
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
3897
4222
  */
3898
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
4223
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3899
4224
  /**
3900
4225
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3901
4226
  */
@@ -3966,6 +4291,10 @@ export type KpCuspsResponse = {
3966
4291
  houseThemes: {
3967
4292
  [key: string]: Array<string>;
3968
4293
  };
4294
+ /**
4295
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
4296
+ */
4297
+ focus: 'general' | 'finance';
3969
4298
  };
3970
4299
  export type KpCuspsRequest = {
3971
4300
  /**
@@ -3989,9 +4318,9 @@ export type KpCuspsRequest = {
3989
4318
  */
3990
4319
  timezone?: number | string;
3991
4320
  /**
3992
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
4321
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
3993
4322
  */
3994
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
4323
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
3995
4324
  /**
3996
4325
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
3997
4326
  */
@@ -4027,7 +4356,7 @@ export type KpChartResponse = {
4027
4356
  */
4028
4357
  ayanamsa: number;
4029
4358
  /**
4030
- * Ayanamsa system used (KP Newcomb).
4359
+ * Ayanamsa system used, echoing the ayanamsa field of the request: "kp-newcomb", "kp-old", "lahiri", "raman" or "custom".
4031
4360
  */
4032
4361
  ayanamsaType: string;
4033
4362
  /**
@@ -4316,6 +4645,10 @@ export type KpChartResponse = {
4316
4645
  houseThemes: {
4317
4646
  [key: string]: Array<string>;
4318
4647
  };
4648
+ /**
4649
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
4650
+ */
4651
+ focus: 'general' | 'finance';
4319
4652
  };
4320
4653
  export type KpChartRequest = {
4321
4654
  /**
@@ -4339,9 +4672,9 @@ export type KpChartRequest = {
4339
4672
  */
4340
4673
  timezone?: number | string;
4341
4674
  /**
4342
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
4675
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
4343
4676
  */
4344
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
4677
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
4345
4678
  /**
4346
4679
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
4347
4680
  */
@@ -4360,8 +4693,17 @@ export type KpRulingPlanetsResponse = {
4360
4693
  * Observer location coordinates
4361
4694
  */
4362
4695
  location: {
4696
+ /**
4697
+ * Observer latitude in decimal degrees, echoed back from the request. Sets the local sidereal time behind the KP ascendant and therefore the Lagna sublord.
4698
+ */
4363
4699
  latitude: number;
4700
+ /**
4701
+ * Observer longitude in decimal degrees, echoed back from the request. East is positive, west is negative.
4702
+ */
4364
4703
  longitude: number;
4704
+ /**
4705
+ * Numeric UTC offset in decimal hours the calculation consumed. An IANA name sent on the request is resolved to its DST-correct offset upstream, so this is always a number.
4706
+ */
4365
4707
  timezone: number;
4366
4708
  };
4367
4709
  /**
@@ -4423,6 +4765,10 @@ export type KpRulingPlanetsResponse = {
4423
4765
  houseThemes?: {
4424
4766
  [key: string]: Array<string>;
4425
4767
  };
4768
+ /**
4769
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
4770
+ */
4771
+ focus?: 'general' | 'finance';
4426
4772
  };
4427
4773
  export type KpRulingPlanetsIntervalResponse = {
4428
4774
  /**
@@ -4618,6 +4964,10 @@ export type KpRulingPlanetsIntervalResponse = {
4618
4964
  houseThemes: {
4619
4965
  [key: string]: Array<string>;
4620
4966
  };
4967
+ /**
4968
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
4969
+ */
4970
+ focus: 'general' | 'finance';
4621
4971
  };
4622
4972
  export type KpSublordChangesResponse = {
4623
4973
  /**
@@ -4696,9 +5046,9 @@ export type KpSublordChangesRequest = {
4696
5046
  */
4697
5047
  timezone?: number | string;
4698
5048
  /**
4699
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. Defaults to "kp-newcomb".
5049
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
4700
5050
  */
4701
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri';
5051
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
4702
5052
  /**
4703
5053
  * 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".
4704
5054
  */
@@ -4773,9 +5123,9 @@ export type KpRasiChangesRequest = {
4773
5123
  */
4774
5124
  timezone?: number | string;
4775
5125
  /**
4776
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. Defaults to "kp-newcomb".
5126
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
4777
5127
  */
4778
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri';
5128
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
4779
5129
  /**
4780
5130
  * 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".
4781
5131
  */
@@ -4897,9 +5247,291 @@ export type KpPlanetsIntervalRequest = {
4897
5247
  */
4898
5248
  timezone?: number | string;
4899
5249
  /**
4900
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. Defaults to "kp-newcomb".
5250
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
4901
5251
  */
4902
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri';
5252
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
5253
+ /**
5254
+ * 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".
5255
+ */
5256
+ nodeType?: 'mean' | 'true';
5257
+ };
5258
+ /**
5259
+ * A complete KP horary (Prashna) chart: the Ascendant from the number, the cusps and planets from the moment of the question, plus ruling planets and four-level significators.
5260
+ */
5261
+ export type KpHoraryResponse = {
5262
+ /**
5263
+ * The number that was asked for, echoed so a stored chart is self describing.
5264
+ */
5265
+ horaryNumber: number;
5266
+ /**
5267
+ * UTC instant the chart was cast for, resolved from the date, time and timezone.
5268
+ */
5269
+ questionTime: string;
5270
+ /**
5271
+ * Sidereal frame used, echoed back.
5272
+ */
5273
+ ayanamsaType: string;
5274
+ /**
5275
+ * Degrees subtracted from every tropical longitude to produce this chart. Compare it against your reference software before treating a placement difference as a disagreement.
5276
+ */
5277
+ ayanamsaDegrees: number;
5278
+ /**
5279
+ * The Ascendant the horary number produced. This is the ONLY part of the chart that comes from the number; everything else comes from the sky at the moment of the question.
5280
+ */
5281
+ ascendant: {
5282
+ /**
5283
+ * Sidereal longitude of the horary Ascendant, taken as the MIDPOINT of the sub division the number names.
5284
+ */
5285
+ longitude: number;
5286
+ /**
5287
+ * Degrees into the sign, 0 to 30, which is what a chart displays.
5288
+ */
5289
+ degreeInSign: number;
5290
+ /**
5291
+ * Zodiac sign (rashi) of this point.
5292
+ */
5293
+ sign: string;
5294
+ /**
5295
+ * Nakshatra (star) this point falls in.
5296
+ */
5297
+ star: string;
5298
+ /**
5299
+ * Nakshatra lord (star lord), the second level of the KP hierarchy.
5300
+ */
5301
+ starLord: string;
5302
+ /**
5303
+ * Sub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
5304
+ */
5305
+ subLord: string;
5306
+ /**
5307
+ * KP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
5308
+ */
5309
+ kpNumber: number;
5310
+ /**
5311
+ * Sidereal longitude where this numbered sub division begins.
5312
+ */
5313
+ spanFrom: number;
5314
+ /**
5315
+ * Sidereal longitude where it ends. The Ascendant sits midway between this and spanFrom.
5316
+ */
5317
+ spanTo: number;
5318
+ };
5319
+ /**
5320
+ * Twelve Placidus cusps, house 1 first. House 1 is the horary Ascendant; the other eleven follow from the house frame that Ascendant implies at this latitude.
5321
+ */
5322
+ cusps: Array<{
5323
+ /**
5324
+ * House (bhava) number 1 to 12.
5325
+ */
5326
+ house: number;
5327
+ /**
5328
+ * Sidereal longitude of the cusp.
5329
+ */
5330
+ longitude: number;
5331
+ /**
5332
+ * Zodiac sign (rashi) of this point.
5333
+ */
5334
+ sign: string;
5335
+ /**
5336
+ * Nakshatra (star) this point falls in.
5337
+ */
5338
+ star: string;
5339
+ /**
5340
+ * Nakshatra lord (star lord), the second level of the KP hierarchy.
5341
+ */
5342
+ starLord: string;
5343
+ /**
5344
+ * Sub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
5345
+ */
5346
+ subLord: string;
5347
+ /**
5348
+ * KP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
5349
+ */
5350
+ kpNumber: number;
5351
+ }>;
5352
+ /**
5353
+ * The nine grahas at the moment of the question, placed against the horary cusps. These come from the real sky, not from the number.
5354
+ */
5355
+ planets: Array<{
5356
+ /**
5357
+ * Graha name.
5358
+ */
5359
+ planet: string;
5360
+ /**
5361
+ * Sidereal longitude at the moment of the question.
5362
+ */
5363
+ longitude: number;
5364
+ /**
5365
+ * Placidus house the graha occupies in this horary chart, counted against the cusps above rather than by whole sign.
5366
+ */
5367
+ house: number;
5368
+ /**
5369
+ * Retrograde motion flag.
5370
+ */
5371
+ isRetrograde: boolean;
5372
+ /**
5373
+ * Sub-sub lord, the fourth KP level, used to refine timing.
5374
+ */
5375
+ subSubLord: string;
5376
+ /**
5377
+ * Zodiac sign (rashi) of this point.
5378
+ */
5379
+ sign: string;
5380
+ /**
5381
+ * Nakshatra (star) this point falls in.
5382
+ */
5383
+ star: string;
5384
+ /**
5385
+ * Nakshatra lord (star lord), the second level of the KP hierarchy.
5386
+ */
5387
+ starLord: string;
5388
+ /**
5389
+ * Sub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
5390
+ */
5391
+ subLord: string;
5392
+ /**
5393
+ * KP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
5394
+ */
5395
+ kpNumber: number;
5396
+ }>;
5397
+ /**
5398
+ * Ruling planets at the moment of the question. NOTE the lagna values here are from the TIME-based ascendant, which is the classical ruling-planet definition, not from the horary number.
5399
+ */
5400
+ rulingPlanets: {
5401
+ /**
5402
+ * Lord of the Hindu weekday, counted from sunrise.
5403
+ */
5404
+ dayLord: string;
5405
+ /**
5406
+ * Sign lord of the Moon.
5407
+ */
5408
+ moonSignLord: string;
5409
+ /**
5410
+ * Star lord of the Moon.
5411
+ */
5412
+ moonStarLord: string;
5413
+ /**
5414
+ * Sub lord of the Moon.
5415
+ */
5416
+ moonSublord: string;
5417
+ /**
5418
+ * Sub-sub lord of the Moon.
5419
+ */
5420
+ moonSubSublord: string;
5421
+ /**
5422
+ * Sign lord of the ascendant at the question moment.
5423
+ */
5424
+ lagnaSignLord: string;
5425
+ /**
5426
+ * Star lord of that ascendant.
5427
+ */
5428
+ lagnaStarLord: string;
5429
+ /**
5430
+ * Sub lord of that ascendant.
5431
+ */
5432
+ lagnaSublord: string;
5433
+ /**
5434
+ * Sub-sub lord of that ascendant.
5435
+ */
5436
+ lagnaSubSublord: string;
5437
+ /**
5438
+ * The distinct ruling planets in KP order of strength. They validate the chart: when they repeat the significators of the houses the question needs, the judgment is considered reliable.
5439
+ */
5440
+ rulingPlanets: Array<string>;
5441
+ };
5442
+ /**
5443
+ * KP significators for event prediction and timing. Shows which planets signify each house (house-wise) and which houses each planet signifies (planet-wise). Strength order: Level 1 (planets in star of occupant) > Level 2 (occupants) > Level 3 (planets in star of owner) > Level 4 (house owner).
5444
+ */
5445
+ significators: {
5446
+ houseWise: Array<{
5447
+ /**
5448
+ * House number 1-12
5449
+ */
5450
+ house: number;
5451
+ significators: Array<{
5452
+ /**
5453
+ * KP significator strength level (1-4). L1: planets in star of occupant (strongest). L2: occupant itself. L3: planets in star of owner. L4: sign owner. Lower number = stronger signification for this house.
5454
+ */
5455
+ level: number;
5456
+ /**
5457
+ * Human-readable label for this KP significator level.
5458
+ */
5459
+ description: string;
5460
+ /**
5461
+ * Planets signifying this house at this strength level.
5462
+ */
5463
+ planets: Array<string>;
5464
+ }>;
5465
+ /**
5466
+ * All significators in order of strength
5467
+ */
5468
+ all: Array<string>;
5469
+ }>;
5470
+ planetWise: Array<{
5471
+ /**
5472
+ * Vedic graha (planet) being analyzed for its house significations.
5473
+ */
5474
+ planet: string;
5475
+ signifies: Array<{
5476
+ /**
5477
+ * KP significator strength level (1-4). L1 strongest, L4 weakest.
5478
+ */
5479
+ level: number;
5480
+ /**
5481
+ * House numbers this planet signifies at this strength level.
5482
+ */
5483
+ houses: Array<number>;
5484
+ }>;
5485
+ /**
5486
+ * All houses signified in order of strength
5487
+ */
5488
+ allHouses: Array<number>;
5489
+ }>;
5490
+ };
5491
+ /**
5492
+ * Significations of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
5493
+ */
5494
+ houseThemes: {
5495
+ [key: string]: Array<string>;
5496
+ };
5497
+ /**
5498
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
5499
+ */
5500
+ focus: 'general' | 'finance';
5501
+ };
5502
+ export type KpHoraryRequest = {
5503
+ /**
5504
+ * Horary number from 1 to 249, given by the querent while focused on their question. It maps to one of the 249 KP sub divisions of the zodiac, and that division sets the Ascendant of the chart. The querent should give the first number that comes to mind and use it once for that question; the astrologer never chooses it. Numbers outside 1 to 249 are rejected rather than wrapped, because a wrapped number would silently answer a different question.
5505
+ */
5506
+ horaryNumber: number;
5507
+ /**
5508
+ * Date the question was taken up for judgment, YYYY-MM-DD. Not a birth date: a horary chart needs no birth details at all, which is the point of the method.
5509
+ */
5510
+ date: string;
5511
+ /**
5512
+ * Time the question was taken up for judgment, 24-hour HH:MM:SS. In KP practice this is the moment the astrologer receives and understands the question, not the moment the querent first thought of it. It sets every planetary position and all twelve cusps except the Ascendant.
5513
+ */
5514
+ time: string;
5515
+ /**
5516
+ * Latitude where the question is judged, decimal degrees. The house cusps are Placidus and therefore latitude dependent, so this is the place of judgment, not the querent birthplace.
5517
+ */
5518
+ latitude: number;
5519
+ /**
5520
+ * Longitude where the question is judged, decimal degrees.
5521
+ */
5522
+ longitude: number;
5523
+ /**
5524
+ * Timezone: IANA name (e.g. "Asia/Kolkata") OR decimal hours from UTC. Defaults to 5.5.
5525
+ */
5526
+ timezone?: number | string;
5527
+ /**
5528
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
5529
+ */
5530
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
5531
+ /**
5532
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
5533
+ */
5534
+ ayanamsaValue?: number;
4903
5535
  /**
4904
5536
  * 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".
4905
5537
  */
@@ -5071,6 +5703,19 @@ export type NakshatraResponse = {
5071
5703
  * Complete upagraha positions for a birth chart
5072
5704
  */
5073
5705
  export type UpagrahaResponse = {
5706
+ /**
5707
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
5708
+ */
5709
+ frame: {
5710
+ /**
5711
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
5712
+ */
5713
+ ayanamsa: string;
5714
+ /**
5715
+ * 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.
5716
+ */
5717
+ ayanamsaDegrees: number;
5718
+ };
5074
5719
  /**
5075
5720
  * Time-based upagrahas derived from the 8-part division of day or night. Gulika and Mandi are from Saturn segment, others from Sun, Mars, Mercury, Jupiter segments. Positions depend on birth time, location, and weekday.
5076
5721
  */
@@ -5159,11 +5804,32 @@ export type UpagrahaRequest = {
5159
5804
  * 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. Defaults to 5.5.
5160
5805
  */
5161
5806
  timezone?: number | string;
5807
+ /**
5808
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
5809
+ */
5810
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
5811
+ /**
5812
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
5813
+ */
5814
+ ayanamsaValue?: number;
5162
5815
  };
5163
5816
  /**
5164
5817
  * Complete Ashtakavarga analysis for a birth chart
5165
5818
  */
5166
5819
  export type AshtakavargaResponse = {
5820
+ /**
5821
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
5822
+ */
5823
+ frame: {
5824
+ /**
5825
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
5826
+ */
5827
+ ayanamsa: string;
5828
+ /**
5829
+ * 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.
5830
+ */
5831
+ ayanamsaDegrees: number;
5832
+ };
5167
5833
  /**
5168
5834
  * Individual planetary strength grids (Bhinnashtakavarga). Eight entries: one for each of the 7 classical planets plus Lagna. Each entry shows how many of the 8 contributors (7 planets + Lagna) give benefic points to that planet in each of the 12 signs.
5169
5835
  */
@@ -5271,11 +5937,115 @@ export type AshtakavargaRequest = {
5271
5937
  * 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. Defaults to 5.5.
5272
5938
  */
5273
5939
  timezone?: number | string;
5940
+ /**
5941
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
5942
+ */
5943
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
5944
+ /**
5945
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
5946
+ */
5947
+ ayanamsaValue?: number;
5274
5948
  };
5275
5949
  /**
5276
5950
  * Complete Shadbala (six-fold planetary strength) analysis for a birth chart per Brihat Parashara Hora Shastra (BPHS).
5277
5951
  */
5278
5952
  export type ShadbalaResponse = {
5953
+ /**
5954
+ * Localized name and one-line meaning for each of the six Shadbala components, keyed by the same field names each planet entry uses. Join it to render a readable strength breakdown in any of the eight supported languages instead of showing six untranslated Sanskrit terms.
5955
+ */
5956
+ balaThemes: {
5957
+ /**
5958
+ * Localized label and meaning for one Shadbala component.
5959
+ */
5960
+ sthanaBala: {
5961
+ /**
5962
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
5963
+ */
5964
+ name: string;
5965
+ /**
5966
+ * One-line localized explanation of what this component measures.
5967
+ */
5968
+ meaning: string;
5969
+ };
5970
+ /**
5971
+ * Localized label and meaning for one Shadbala component.
5972
+ */
5973
+ digBala: {
5974
+ /**
5975
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
5976
+ */
5977
+ name: string;
5978
+ /**
5979
+ * One-line localized explanation of what this component measures.
5980
+ */
5981
+ meaning: string;
5982
+ };
5983
+ /**
5984
+ * Localized label and meaning for one Shadbala component.
5985
+ */
5986
+ kalaBala: {
5987
+ /**
5988
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
5989
+ */
5990
+ name: string;
5991
+ /**
5992
+ * One-line localized explanation of what this component measures.
5993
+ */
5994
+ meaning: string;
5995
+ };
5996
+ /**
5997
+ * Localized label and meaning for one Shadbala component.
5998
+ */
5999
+ chestaBala: {
6000
+ /**
6001
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
6002
+ */
6003
+ name: string;
6004
+ /**
6005
+ * One-line localized explanation of what this component measures.
6006
+ */
6007
+ meaning: string;
6008
+ };
6009
+ /**
6010
+ * Localized label and meaning for one Shadbala component.
6011
+ */
6012
+ naisargikaBala: {
6013
+ /**
6014
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
6015
+ */
6016
+ name: string;
6017
+ /**
6018
+ * One-line localized explanation of what this component measures.
6019
+ */
6020
+ meaning: string;
6021
+ };
6022
+ /**
6023
+ * Localized label and meaning for one Shadbala component.
6024
+ */
6025
+ drikBala: {
6026
+ /**
6027
+ * Localized name of this Shadbala component, suitable for a table header or a bar label.
6028
+ */
6029
+ name: string;
6030
+ /**
6031
+ * One-line localized explanation of what this component measures.
6032
+ */
6033
+ meaning: string;
6034
+ };
6035
+ };
6036
+ /**
6037
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
6038
+ */
6039
+ frame: {
6040
+ /**
6041
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
6042
+ */
6043
+ ayanamsa: string;
6044
+ /**
6045
+ * 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.
6046
+ */
6047
+ ayanamsaDegrees: number;
6048
+ };
5279
6049
  /**
5280
6050
  * Shadbala analysis for all 7 classical planets. Ordered: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn. Each entry contains all 6 strength components, total strength in virupas and Rupas, Ishta/Kashta Phala, minimum required threshold, strength ratio, and relative rank.
5281
6051
  */
@@ -5297,7 +6067,7 @@ export type ShadbalaResponse = {
5297
6067
  */
5298
6068
  kalaBala: number;
5299
6069
  /**
5300
- * Chesta Bala (Motional Strength) in virupas. Based on planetary motion and retrogression. Retrograde planets score higher. Sun uses Ayana Chesta Bala (declination arc), Moon uses elongation from Sun. Other planets use Sheeghrochcha (mean anomaly) from Surya Siddhanta elements. Range 0 to 60.
6070
+ * Chesta Bala (Motional Strength) in virupas. Based on planetary motion, so a retrograde graha scores higher because it is closer to Earth and working hardest. The Sun uses its Ayana Bala and the Moon its elongation from the Sun, per BPHS. Mars, Mercury, Jupiter, Venus and Saturn use the Sheeghra Kendra, the arc between the sheeghrochcha and the mean of the true and mean longitudes, with the roles of the mean Sun and the graha swapped for Mercury and Venus. Range 0 to 60.
5301
6071
  */
5302
6072
  chestaBala: number;
5303
6073
  /**
@@ -5305,7 +6075,7 @@ export type ShadbalaResponse = {
5305
6075
  */
5306
6076
  naisargikaBala: number;
5307
6077
  /**
5308
- * Drik Bala (Aspectual Strength) in virupas. Strength gained or lost from aspects received by other planets. Benefic aspects (Jupiter, Venus) add strength, malefic aspects (Sun, Mars, Saturn) reduce it. Can be negative when malefic aspects dominate. Uses Sputa Drishti with Vishesha (special) aspects for Mars, Jupiter, and Saturn.
6078
+ * Drik Bala (Aspectual Strength) in virupas. Strength gained or lost from the aspects a graha receives. Benefic aspects add strength and malefic aspects reduce it, so this value is negative when malefics dominate. Mercury counts as benefic or malefic by the company it keeps in its own sign, decided by count with the nearest graha breaking a tie, and the Moon by its paksha. Uses the graded Sputa Drishti curve of BPHS Ch. 26 with the Vishesha (special) aspects of Mars, Jupiter and Saturn applied at their precise DEGREE ranges rather than by whole sign.
5309
6079
  */
5310
6080
  drikBala: number;
5311
6081
  /**
@@ -5359,11 +6129,32 @@ export type ShadbalaRequest = {
5359
6129
  * 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. Defaults to 5.5.
5360
6130
  */
5361
6131
  timezone?: number | string;
6132
+ /**
6133
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
6134
+ */
6135
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
6136
+ /**
6137
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
6138
+ */
6139
+ ayanamsaValue?: number;
5362
6140
  };
5363
6141
  /**
5364
6142
  * The twelve Arudha padas of a birth chart, computed per the Jaimini rule with the classical exception applied.
5365
6143
  */
5366
6144
  export type ArudhaResponse = {
6145
+ /**
6146
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
6147
+ */
6148
+ frame: {
6149
+ /**
6150
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
6151
+ */
6152
+ ayanamsa: string;
6153
+ /**
6154
+ * 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.
6155
+ */
6156
+ ayanamsaDegrees: number;
6157
+ };
5367
6158
  /**
5368
6159
  * Zodiac sign of the Ascendant (Lagna), which anchors the twelve bhavas the padas are derived from.
5369
6160
  */
@@ -5451,11 +6242,32 @@ export type ArudhaRequest = {
5451
6242
  * 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. Defaults to 5.5.
5452
6243
  */
5453
6244
  timezone?: number | string;
6245
+ /**
6246
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
6247
+ */
6248
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
6249
+ /**
6250
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
6251
+ */
6252
+ ayanamsaValue?: number;
5454
6253
  };
5455
6254
  /**
5456
6255
  * Chara Karakas for a birth chart: the movable significators of Jaimini astrology, ranked by how far each graha has advanced into its sign.
5457
6256
  */
5458
6257
  export type CharaKarakaResponse = {
6258
+ /**
6259
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
6260
+ */
6261
+ frame: {
6262
+ /**
6263
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
6264
+ */
6265
+ ayanamsa: string;
6266
+ /**
6267
+ * 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.
6268
+ */
6269
+ ayanamsaDegrees: number;
6270
+ };
5459
6271
  /**
5460
6272
  * Scheme the ranking used, echoed back so a cached or logged response is self describing.
5461
6273
  */
@@ -5535,11 +6347,372 @@ export type CharaKarakaRequest = {
5535
6347
  * 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. Defaults to 5.5.
5536
6348
  */
5537
6349
  timezone?: number | string;
6350
+ /**
6351
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
6352
+ */
6353
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
6354
+ /**
6355
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
6356
+ */
6357
+ ayanamsaValue?: number;
5538
6358
  /**
5539
6359
  * Which Chara Karaka scheme to rank. "eight" includes Rahu, counting its degree in reverse because it moves retrograde, and returns eight offices including Pitrikaraka. "seven" ranks only the seven classical grahas and drops Pitrikaraka. Ketu is excluded from both, since it always mirrors the Rahu degree exactly. The two schemes can produce a different Atmakaraka for the same chart, so select the one your reference software uses. Defaults to "eight".
5540
6360
  */
5541
6361
  scheme?: 'seven' | 'eight';
5542
6362
  };
6363
+ /**
6364
+ * Complete Bhava Bala (house strength) analysis per Brihat Parashara Hora Shastra, with a localized house-meaning legend.
6365
+ */
6366
+ export type BhavaBalaResponse = {
6367
+ /**
6368
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
6369
+ */
6370
+ frame: {
6371
+ /**
6372
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
6373
+ */
6374
+ ayanamsa: string;
6375
+ /**
6376
+ * 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.
6377
+ */
6378
+ ayanamsaDegrees: number;
6379
+ };
6380
+ /**
6381
+ * House frame the bhavas were built on. Always sripati: Bhava Bala is defined on unequal bhava madhyas, not on whole signs.
6382
+ */
6383
+ houseSystem: string;
6384
+ /**
6385
+ * Bhava Bala for all twelve houses in order, house 1 first. Each entry carries its own components so a client can explain a score rather than just display it.
6386
+ */
6387
+ bhavas: Array<{
6388
+ /**
6389
+ * Bhava (house) number 1 to 12, counted from the Lagna. House 1 is the Ascendant bhava, house 10 the career bhava, house 7 the partnership bhava.
6390
+ */
6391
+ house: number;
6392
+ /**
6393
+ * Zodiac sign holding this bhavas madhya (mid-cusp). Under the Sripati house system the bhavas are unequal, so this is NOT always the nth sign from the Lagna, and two bhavas can share a sign while another sign holds none.
6394
+ */
6395
+ rashi: string;
6396
+ /**
6397
+ * Bhava madhya (mid-cusp) longitude in degrees, sidereal Lahiri. The point every strength component below is measured at. Bhavas 1, 4, 7 and 10 sit on the Ascendant, IC, Descendant and Midheaven; the rest trisect the quadrants between them.
6398
+ */
6399
+ madhya: number;
6400
+ /**
6401
+ * Bhavadhipati (house lord), the ruler of the sign holding the madhya. Its Shadbala is what this bhava inherits, so a house ruled by a strong graha starts strong.
6402
+ */
6403
+ lord: string;
6404
+ /**
6405
+ * Bhavadhipati Bala in virupas: the total Shadbala of the house lord, carried across unchanged. The dominant term of the three, typically 250 to 650. Two bhavas ruled by the same graha therefore share this value exactly.
6406
+ */
6407
+ bhavadhipatiBala: number;
6408
+ /**
6409
+ * Bhava Digbala (directional strength) in virupas, 0 to 60 in steps of 10. Each rashi class is strongest in one cardinal bhava (human signs at the Lagna, quadruped at the 10th, watery at the 4th, Scorpio at the 7th) and loses 10 virupas per bhava of separation, reaching 0 at the seventh from it.
6410
+ */
6411
+ digBala: number;
6412
+ /**
6413
+ * Bhava Drishti Bala (aspectual strength) in virupas, computed on the bhava madhya exactly as Graha Drik Bala is computed on a graha. Benefic aspects add and malefic aspects subtract, so this term is often negative.
6414
+ */
6415
+ drishtiBala: number;
6416
+ /**
6417
+ * Total Bhava Bala in virupas, the sum of the three components above. Use it to compare houses within one chart: the strongest bhavas are the life areas that unfold with least resistance.
6418
+ */
6419
+ totalVirupas: number;
6420
+ /**
6421
+ * Total Bhava Bala in rupas (totalVirupas / 60). 1 rupa equals 60 virupas. Rupas are the conventional unit in classical tables.
6422
+ */
6423
+ totalRupas: number;
6424
+ /**
6425
+ * Strength rank among the twelve bhavas, 1 = strongest. Ranked on totalVirupas, so it never disagrees with the published totals.
6426
+ */
6427
+ rank: number;
6428
+ }>;
6429
+ /**
6430
+ * Significations of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
6431
+ */
6432
+ houseThemes: {
6433
+ [key: string]: Array<string>;
6434
+ };
6435
+ /**
6436
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
6437
+ */
6438
+ focus: 'general' | 'finance';
6439
+ };
6440
+ export type BhavaBalaRequest = {
6441
+ /**
6442
+ * Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
6443
+ */
6444
+ date: string;
6445
+ /**
6446
+ * Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
6447
+ */
6448
+ time: string;
6449
+ /**
6450
+ * Birth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
6451
+ */
6452
+ latitude: number;
6453
+ /**
6454
+ * Birth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
6455
+ */
6456
+ longitude: number;
6457
+ /**
6458
+ * 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. Defaults to 5.5.
6459
+ */
6460
+ timezone?: number | string;
6461
+ /**
6462
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
6463
+ */
6464
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
6465
+ /**
6466
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
6467
+ */
6468
+ ayanamsaValue?: number;
6469
+ };
6470
+ /**
6471
+ * Bhav Chalit (Chalit Kundli): every graha placed by unequal Sripati bhava, with the whole-sign placement beside it for comparison.
6472
+ */
6473
+ export type BhavChalitResponse = {
6474
+ /**
6475
+ * The sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
6476
+ */
6477
+ frame: {
6478
+ /**
6479
+ * Sidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
6480
+ */
6481
+ ayanamsa: string;
6482
+ /**
6483
+ * 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.
6484
+ */
6485
+ ayanamsaDegrees: number;
6486
+ };
6487
+ /**
6488
+ * House frame used to build the bhavas. Always sripati for the Chalit chart.
6489
+ */
6490
+ houseSystem: string;
6491
+ /**
6492
+ * Sidereal Lahiri Ascendant in degrees. The madhya of bhava 1.
6493
+ */
6494
+ ascendant: number;
6495
+ /**
6496
+ * Sidereal Lahiri Midheaven in degrees. The madhya of bhava 10.
6497
+ */
6498
+ midheaven: number;
6499
+ /**
6500
+ * The twelve Sripati bhavas in order with their boundaries and occupants.
6501
+ */
6502
+ bhavas: Array<{
6503
+ /**
6504
+ * Bhava number 1 to 12.
6505
+ */
6506
+ house: number;
6507
+ /**
6508
+ * Bhava sandhi (junction) opening this bhava, in degrees. The midpoint between this madhya and the previous one. A graha exactly on a sandhi belongs to the bhava it opens.
6509
+ */
6510
+ start: number;
6511
+ /**
6512
+ * Bhava madhya (mid-cusp) in degrees. Bhavas 1, 4, 7 and 10 sit exactly on the Ascendant, IC, Descendant and Midheaven; the other eight trisect the quadrant arcs between them.
6513
+ */
6514
+ madhya: number;
6515
+ /**
6516
+ * Bhava sandhi closing this bhava. Identical to the next bhavas start, so the twelve bhavas tile the zodiac with no gap.
6517
+ */
6518
+ end: number;
6519
+ /**
6520
+ * Width of the bhava in degrees. Rarely 30: the Ascendant and Midheaven are only 90 degrees apart by coincidence of latitude and epoch, so quadrants stretch and squeeze and the bhavas with them.
6521
+ */
6522
+ span: number;
6523
+ /**
6524
+ * Sign holding the madhya. Because bhavas are unequal, two bhavas can share a sign while another sign holds no madhya at all.
6525
+ */
6526
+ rashi: string;
6527
+ /**
6528
+ * Grahas falling inside this bhava. Empty when the bhava is unoccupied.
6529
+ */
6530
+ grahas: Array<string>;
6531
+ }>;
6532
+ /**
6533
+ * All nine grahas with both their Chalit bhava and their whole-sign Rashi house, plus a moved flag.
6534
+ */
6535
+ grahas: Array<{
6536
+ /**
6537
+ * Graha name. All nine are placed, the seven classical grahas plus the lunar nodes Rahu and Ketu.
6538
+ */
6539
+ graha: string;
6540
+ /**
6541
+ * Sidereal Lahiri longitude in degrees.
6542
+ */
6543
+ longitude: number;
6544
+ /**
6545
+ * Zodiac sign the graha occupies. Identical to the Rashi (D1) chart.
6546
+ */
6547
+ rashi: string;
6548
+ /**
6549
+ * Bhava the graha falls in under the unequal Sripati cusps. This is the Bhav Chalit placement and the reason the chart exists.
6550
+ */
6551
+ bhava: number;
6552
+ /**
6553
+ * House the same graha occupies in the whole-sign Rashi chart, counted from the Lagna sign. Returned alongside bhava so the difference is visible without a second request.
6554
+ */
6555
+ rashiHouse: number;
6556
+ /**
6557
+ * True when bhava and rashiHouse disagree, i.e. the graha changes house between the Rashi chart and the Chalit chart. These are the placements a practitioner opens this chart to check.
6558
+ */
6559
+ moved: boolean;
6560
+ }>;
6561
+ /**
6562
+ * How many of the nine grahas change house between the Rashi chart and the Chalit chart. Zero is a perfectly normal result and means the two charts agree for this nativity.
6563
+ */
6564
+ movedCount: number;
6565
+ /**
6566
+ * Significations of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
6567
+ */
6568
+ houseThemes: {
6569
+ [key: string]: Array<string>;
6570
+ };
6571
+ /**
6572
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
6573
+ */
6574
+ focus: 'general' | 'finance';
6575
+ };
6576
+ export type BhavChalitRequest = {
6577
+ /**
6578
+ * Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
6579
+ */
6580
+ date: string;
6581
+ /**
6582
+ * Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
6583
+ */
6584
+ time: string;
6585
+ /**
6586
+ * Birth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
6587
+ */
6588
+ latitude: number;
6589
+ /**
6590
+ * Birth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
6591
+ */
6592
+ longitude: number;
6593
+ /**
6594
+ * 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. Defaults to 5.5.
6595
+ */
6596
+ timezone?: number | string;
6597
+ /**
6598
+ * Sidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
6599
+ */
6600
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
6601
+ /**
6602
+ * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
6603
+ */
6604
+ ayanamsaValue?: number;
6605
+ };
6606
+ /**
6607
+ * Heliacal rising and setting status of the six visible grahas.
6608
+ */
6609
+ export type HeliacalResponse = {
6610
+ /**
6611
+ * Local calendar date the verdicts were read for, echoed from the request.
6612
+ */
6613
+ date: string;
6614
+ /**
6615
+ * One entry per visible graha, in classical order. A graha is omitted only when no horizon crossing exists for it at this latitude on this day.
6616
+ */
6617
+ grahas: Array<{
6618
+ /**
6619
+ * Graha name. Only the six with a visible body appear: Moon, Mars, Mercury, Jupiter, Venus and Saturn. The Sun cannot be lost in his own glare, and Rahu and Ketu are computed points with nothing to see.
6620
+ */
6621
+ graha: string;
6622
+ /**
6623
+ * Whether the graha clears the Sun glare on this day. False is the state a practitioner calls asta or combust, during which classical muhurta withholds auspicious ceremonies, most strictly marriage while Jupiter or Venus is invisible.
6624
+ */
6625
+ visible: boolean;
6626
+ /**
6627
+ * Horizon this graha is currently judged at. West means it sets after the Sun and is an evening object, east that it rises before him and is a morning one.
6628
+ */
6629
+ horizon: 'east' | 'west';
6630
+ /**
6631
+ * Separation from the Sun in degrees of TIME (kalamsa), measured along the equator between the two bodies horizon crossings. This is the quantity Surya Siddhanta actually compares against the limit, and it is not the same as the difference of ecliptic longitudes: the two diverge by roughly 3 degrees at Mumbai and by more than 15 further north, because it accounts for the angle the ecliptic makes with the local horizon.
6632
+ */
6633
+ timeDegrees: number;
6634
+ /**
6635
+ * The limit in degrees of time this graha must clear to be seen, per Surya Siddhanta ch. IX vv.6-8 and ch. X.1: Moon 12, Jupiter 11, Saturn 15, Mars 17, Venus 10 or 8, Mercury 14 or 12. Larger means the graha is fainter and needs more distance from the Sun.
6636
+ */
6637
+ kalamsa: number;
6638
+ /**
6639
+ * Whether the graha is retrograde, which for Mercury and Venus tightens the limit (Venus 10 to 8, Mercury 14 to 12). Retrograde puts them near inferior conjunction where they are far closer to Earth, so the larger brighter disk survives closer to the Sun.
6640
+ */
6641
+ retrograde: boolean;
6642
+ /**
6643
+ * Plain angular separation of the two ecliptic longitudes, in degrees. Returned beside timeDegrees so the two measures can be compared: this is what a combustion flag on a birth chart uses, and the gap between them is precisely what a location-aware heliacal calculation adds.
6644
+ */
6645
+ longitudeSeparation: number;
6646
+ /**
6647
+ * The event that produced the current state, or null when none falls inside the search horizon (up to about one synodic period, so Mars can legitimately have none).
6648
+ */
6649
+ lastEvent: {
6650
+ /**
6651
+ * Udaya is heliacal rising, the graha re-emerging from the Sun rays and becoming visible again. Asta (also called lopa, moudhya or moudyami) is heliacal setting, the graha disappearing into them. Stable Sanskrit keys, never translated.
6652
+ */
6653
+ type: 'udaya' | 'asta';
6654
+ /**
6655
+ * Horizon the event happens at. East means it is read before sunrise, so the graha is a morning object; west means after sunset, an evening object. A graha crosses to the other horizon as it passes the Sun, which is why an asta and the udaya that follows it are usually on opposite horizons.
6656
+ */
6657
+ horizon: 'east' | 'west';
6658
+ /**
6659
+ * Local civil datetime of the event (YYYY-MM-DDTHH:MM:SS), being the moment the graha itself crosses the horizon on the day its verdict changes. That instant, rather than sunrise or sunset, is what published Asta tables print.
6660
+ */
6661
+ datetime: string;
6662
+ /**
6663
+ * Separation from the Sun in degrees of time on the event day, measured the way the classical rule requires. Sits just either side of kalamsa, since that crossing is what defines the event.
6664
+ */
6665
+ timeDegrees: number;
6666
+ /**
6667
+ * The limit that was crossed. Can differ from the current reading limit for Mercury and Venus, whose limit tightens when they are retrograde, so an asta entered while retrograde may be left at a different threshold.
6668
+ */
6669
+ kalamsa: number;
6670
+ } | null;
6671
+ /**
6672
+ * The event that will end the current state, or null when none falls inside the search horizon. For an invisible graha this is the udaya a practitioner is waiting for, so it answers when Guru Asta or Shukra Asta lifts.
6673
+ */
6674
+ nextEvent: {
6675
+ /**
6676
+ * Udaya is heliacal rising, the graha re-emerging from the Sun rays and becoming visible again. Asta (also called lopa, moudhya or moudyami) is heliacal setting, the graha disappearing into them. Stable Sanskrit keys, never translated.
6677
+ */
6678
+ type: 'udaya' | 'asta';
6679
+ /**
6680
+ * Horizon the event happens at. East means it is read before sunrise, so the graha is a morning object; west means after sunset, an evening object. A graha crosses to the other horizon as it passes the Sun, which is why an asta and the udaya that follows it are usually on opposite horizons.
6681
+ */
6682
+ horizon: 'east' | 'west';
6683
+ /**
6684
+ * Local civil datetime of the event (YYYY-MM-DDTHH:MM:SS), being the moment the graha itself crosses the horizon on the day its verdict changes. That instant, rather than sunrise or sunset, is what published Asta tables print.
6685
+ */
6686
+ datetime: string;
6687
+ /**
6688
+ * Separation from the Sun in degrees of time on the event day, measured the way the classical rule requires. Sits just either side of kalamsa, since that crossing is what defines the event.
6689
+ */
6690
+ timeDegrees: number;
6691
+ /**
6692
+ * The limit that was crossed. Can differ from the current reading limit for Mercury and Venus, whose limit tightens when they are retrograde, so an asta entered while retrograde may be left at a different threshold.
6693
+ */
6694
+ kalamsa: number;
6695
+ } | null;
6696
+ }>;
6697
+ };
6698
+ export type HeliacalRequest = {
6699
+ /**
6700
+ * Local calendar date to judge, in YYYY-MM-DD format. There is deliberately no time field: heliacal visibility is a once-a-day verdict read at that day sunrise or sunset, so a clock time could only pick a different day.
6701
+ */
6702
+ date: string;
6703
+ /**
6704
+ * Observer latitude in decimal degrees, restricted to -60 to 60. Visibility depends on the observer, unlike the longitude orb every chart API reports, because the angle the ecliptic makes with the horizon decides how long a graha lingers after the Sun. Beyond this band the classical rule stops describing solar glare and starts describing polar horizon geometry, so it is declined rather than answered wrongly.
6705
+ */
6706
+ latitude: number;
6707
+ /**
6708
+ * Observer longitude in decimal degrees. Sets local sunrise and sunset, which are the instants the verdict is read at. Example: Mumbai 72.8777, Delhi 77.2090, London -0.1278.
6709
+ */
6710
+ longitude: number;
6711
+ /**
6712
+ * Timezone: IANA name (e.g. "Asia/Kolkata", "Europe/London") OR decimal hours from UTC. Fixes which local day the date refers to, and every datetime in the response is returned in it. Defaults to 5.5.
6713
+ */
6714
+ timezone?: number | string;
6715
+ };
5543
6716
  export type BasicCard = {
5544
6717
  /**
5545
6718
  * Unique card identifier in kebab-case (e.g. fool, ace-of-cups, queen-of-swords).
@@ -8746,7 +9919,7 @@ export type CalculateTransitAspectsResponses = {
8746
9919
  */
8747
9920
  summary: string;
8748
9921
  /**
8749
- * When this transit is most active and how long its influence lasts.
9922
+ * 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.
8750
9923
  */
8751
9924
  timing: string;
8752
9925
  /**
@@ -8819,7 +9992,7 @@ export type CalculateTransitAspectsResponses = {
8819
9992
  * Aspect nature. Harmonious (trine, sextile) flows easily. Challenging (square, opposition) creates tension and growth. Neutral (conjunction) blends energies.
8820
9993
  */
8821
9994
  interpretation: 'harmonious' | 'challenging' | 'neutral';
8822
- };
9995
+ } | null;
8823
9996
  /**
8824
9997
  * Transit aspect counts grouped by aspect type (conjunction, trine, square, opposition, sextile, etc.). Useful for quickly assessing the transit weather.
8825
9998
  */
@@ -10414,7 +11587,7 @@ export type CalculateCompatibilityResponses = {
10414
11587
  /**
10415
11588
  * Dominant element shared by both charts, or null if dominant elements differ.
10416
11589
  */
10417
- sharedElement: string;
11590
+ sharedElement: string | null;
10418
11591
  /**
10419
11592
  * How the elemental balance between charts shapes the relationship dynamic.
10420
11593
  */
@@ -11908,7 +13081,7 @@ export type GenerateFixedStarsData = {
11908
13081
  /**
11909
13082
  * Conjunction orb in degrees, the maximum separation for a star to count as conjunct a chart point. Defaults to 1, maximum 3. Widen it to surface looser contacts or tighten it for only the closest hits.
11910
13083
  */
11911
- orb?: number;
13084
+ orb?: number | null;
11912
13085
  };
11913
13086
  url: '/astrology/fixed-stars';
11914
13087
  };
@@ -12860,7 +14033,7 @@ export type GenerateBirthChartErrors = {
12860
14033
  export type GenerateBirthChartError = GenerateBirthChartErrors[keyof GenerateBirthChartErrors];
12861
14034
  export type GenerateBirthChartResponses = {
12862
14035
  /**
12863
- * D1 Rashi birth chart with all 12 houses, 9 grahas plus Lagna, combustion analysis (Surya Siddhanta orbs), planetary war detection, bhava interpretations, and a meta lookup keyed by planet name.
14036
+ * D1 Rashi birth chart with all 12 houses, 9 grahas plus Lagna, combustion analysis (Surya Siddhanta limits, applied as the standard ecliptic longitude orb), planetary war detection, bhava interpretations, and a meta lookup keyed by planet name.
12864
14037
  */
12865
14038
  200: BirthChartResponse;
12866
14039
  };
@@ -13539,9 +14712,9 @@ export type GetCurrentDashaData = {
13539
14712
  */
13540
14713
  timezone?: number | string;
13541
14714
  /**
13542
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
14715
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
13543
14716
  */
13544
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
14717
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
13545
14718
  /**
13546
14719
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
13547
14720
  */
@@ -13681,6 +14854,10 @@ export type GetCurrentDashaResponses = {
13681
14854
  houseThemes?: {
13682
14855
  [key: string]: Array<string>;
13683
14856
  };
14857
+ /**
14858
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
14859
+ */
14860
+ focus?: 'general' | 'finance';
13684
14861
  /**
13685
14862
  * Birth Moon nakshatra number (1-27). This nakshatra determines the starting dasha lord in the Vimshottari 120-year cycle.
13686
14863
  */
@@ -13704,7 +14881,7 @@ export type GetCurrentDashaResponses = {
13704
14881
  /**
13705
14882
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
13706
14883
  */
13707
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
14884
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
13708
14885
  /**
13709
14886
  * Mahadasha (major planetary period) in the 120-year Vimshottari dasha cycle. Start and end dates are determined by Moon nakshatra at birth.
13710
14887
  */
@@ -14349,9 +15526,9 @@ export type GetMajorDashasData = {
14349
15526
  */
14350
15527
  timezone?: number | string;
14351
15528
  /**
14352
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
15529
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
14353
15530
  */
14354
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
15531
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
14355
15532
  /**
14356
15533
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
14357
15534
  */
@@ -14491,6 +15668,10 @@ export type GetMajorDashasResponses = {
14491
15668
  houseThemes?: {
14492
15669
  [key: string]: Array<string>;
14493
15670
  };
15671
+ /**
15672
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
15673
+ */
15674
+ focus?: 'general' | 'finance';
14494
15675
  /**
14495
15676
  * Birth Moon nakshatra number (1-27) that determines the Vimshottari starting point.
14496
15677
  */
@@ -14514,7 +15695,7 @@ export type GetMajorDashasResponses = {
14514
15695
  /**
14515
15696
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
14516
15697
  */
14517
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
15698
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
14518
15699
  /**
14519
15700
  * Remaining balance of the first Mahadasha at birth. Based on Moon degree within the birth nakshatra. partial dasha already elapsed before birth.
14520
15701
  */
@@ -14658,9 +15839,9 @@ export type GetSubDashasData = {
14658
15839
  */
14659
15840
  timezone?: number | string;
14660
15841
  /**
14661
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
15842
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
14662
15843
  */
14663
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
15844
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
14664
15845
  /**
14665
15846
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
14666
15847
  */
@@ -14805,6 +15986,10 @@ export type GetSubDashasResponses = {
14805
15986
  houseThemes?: {
14806
15987
  [key: string]: Array<string>;
14807
15988
  };
15989
+ /**
15990
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
15991
+ */
15992
+ focus?: 'general' | 'finance';
14808
15993
  /**
14809
15994
  * Ruling planet of the requested Mahadasha period.
14810
15995
  */
@@ -14820,7 +16005,7 @@ export type GetSubDashasResponses = {
14820
16005
  /**
14821
16006
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
14822
16007
  */
14823
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
16008
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
14824
16009
  /**
14825
16010
  * Full details of the parent Mahadasha including start/end dates and duration.
14826
16011
  */
@@ -15035,9 +16220,9 @@ export type GetPratyantardashasData = {
15035
16220
  */
15036
16221
  timezone?: number | string;
15037
16222
  /**
15038
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
16223
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
15039
16224
  */
15040
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
16225
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
15041
16226
  /**
15042
16227
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
15043
16228
  */
@@ -15186,6 +16371,10 @@ export type GetPratyantardashasResponses = {
15186
16371
  houseThemes?: {
15187
16372
  [key: string]: Array<string>;
15188
16373
  };
16374
+ /**
16375
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
16376
+ */
16377
+ focus?: 'general' | 'finance';
15189
16378
  /**
15190
16379
  * Ruling planet of the requested Mahadasha period.
15191
16380
  */
@@ -15205,7 +16394,7 @@ export type GetPratyantardashasResponses = {
15205
16394
  /**
15206
16395
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
15207
16396
  */
15208
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
16397
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
15209
16398
  /**
15210
16399
  * Full details of the parent Antardasha including start/end dates and duration.
15211
16400
  */
@@ -15428,9 +16617,9 @@ export type GetSookshmaDashasData = {
15428
16617
  */
15429
16618
  timezone?: number | string;
15430
16619
  /**
15431
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
16620
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
15432
16621
  */
15433
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
16622
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
15434
16623
  /**
15435
16624
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
15436
16625
  */
@@ -15583,6 +16772,10 @@ export type GetSookshmaDashasResponses = {
15583
16772
  houseThemes?: {
15584
16773
  [key: string]: Array<string>;
15585
16774
  };
16775
+ /**
16776
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
16777
+ */
16778
+ focus?: 'general' | 'finance';
15586
16779
  /**
15587
16780
  * Ruling planet of the requested Mahadasha period.
15588
16781
  */
@@ -15606,7 +16799,7 @@ export type GetSookshmaDashasResponses = {
15606
16799
  /**
15607
16800
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
15608
16801
  */
15609
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
16802
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
15610
16803
  /**
15611
16804
  * Full details of the parent Pratyantardasha including start/end dates and duration.
15612
16805
  */
@@ -15837,9 +17030,9 @@ export type GetPranaDashasData = {
15837
17030
  */
15838
17031
  timezone?: number | string;
15839
17032
  /**
15840
- * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
17033
+ * Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
15841
17034
  */
15842
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
17035
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
15843
17036
  /**
15844
17037
  * Custom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
15845
17038
  */
@@ -15996,6 +17189,10 @@ export type GetPranaDashasResponses = {
15996
17189
  houseThemes?: {
15997
17190
  [key: string]: Array<string>;
15998
17191
  };
17192
+ /**
17193
+ * Which signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
17194
+ */
17195
+ focus?: 'general' | 'finance';
15999
17196
  /**
16000
17197
  * Ruling planet of the requested Mahadasha period.
16001
17198
  */
@@ -16023,7 +17220,7 @@ export type GetPranaDashasResponses = {
16023
17220
  /**
16024
17221
  * Ayanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
16025
17222
  */
16026
- ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'custom';
17223
+ ayanamsaType: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman' | 'custom';
16027
17224
  /**
16028
17225
  * Full details of the parent Sookshma dasha including start/end dates and duration.
16029
17226
  */
@@ -16654,30 +17851,34 @@ export type GetDetailedPanchangResponses = {
16654
17851
  */
16655
17852
  vara: {
16656
17853
  /**
16657
- * Hindu weekday name. Vara begins at local sunrise, not midnight.
17854
+ * Weekday name in English. Vara begins at local sunrise, not at midnight, so a time before sunrise belongs to the previous vara.
16658
17855
  */
16659
17856
  name: string;
17857
+ /**
17858
+ * Vara name transliterated from Sanskrit: Ravivara, Somavara, Mangalavara, Budhavara, Guruvara, Shukravara, Shanivara. Use this rather than name for a Jyotish-facing reading, since it is the form the classical texts use and it does not change with the lang parameter.
17859
+ */
17860
+ sanskritName: string;
16660
17861
  /**
16661
17862
  * Ruling planet of the day (Vara lord). Influences day-level auspiciousness.
16662
17863
  */
16663
17864
  lord: string;
16664
17865
  };
16665
17866
  /**
16666
- * Local sunrise time in UTC. Marks the start of the Hindu day.
17867
+ * Local sunrise in the requested timezone as YYYY-MM-DDTHH:MM:SS, with no zone suffix. Marks the start of the Hindu day.
16667
17868
  */
16668
17869
  sunrise: string;
16669
17870
  /**
16670
- * Local sunset time in UTC. Marks the transition to night muhurtas.
17871
+ * Local sunset in the requested timezone as YYYY-MM-DDTHH:MM:SS, with no zone suffix. Marks the transition to night muhurtas.
16671
17872
  */
16672
17873
  sunset: string;
16673
17874
  /**
16674
17875
  * Moonrise time in the requested timezone. Can be null if Moon does not rise on this date.
16675
17876
  */
16676
- moonrise: string;
17877
+ moonrise: string | null;
16677
17878
  /**
16678
17879
  * Moonset time in the requested timezone. Can be null if Moon does not set on this date.
16679
17880
  */
16680
- moonset: string;
17881
+ moonset: string | null;
16681
17882
  /**
16682
17883
  * Moon sign (Chandra Rashi) at sunrise. Central to Vedic astrology. determines daily emotional tone, Chandrabalam, and Tarabalam.
16683
17884
  */
@@ -16842,11 +18043,11 @@ export type GetDetailedPanchangResponses = {
16842
18043
  */
16843
18044
  number: number;
16844
18045
  /**
16845
- * Start time of the current hora in UTC.
18046
+ * Start time of the current hora, as local civil time in the requested timezone offset. The first hora of any day begins at local sunrise, so this equals the sunrise field when the hora number is 1.
16846
18047
  */
16847
18048
  start: string;
16848
18049
  /**
16849
- * End time of the current hora in UTC.
18050
+ * End time of the current hora, as local civil time in the requested timezone offset. Day horas and night horas have different lengths, so a hora is only approximately 60 minutes.
16850
18051
  */
16851
18052
  end: string;
16852
18053
  };
@@ -16901,7 +18102,7 @@ export type GetDetailedPanchangResponses = {
16901
18102
  * Period end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
16902
18103
  */
16903
18104
  end: string;
16904
- };
18105
+ } | null;
16905
18106
  /**
16906
18107
  * Brahma Muhurta, sacred pre-dawn period approximately 96 minutes before sunrise (14th of 15 night muhurtas). Considered the best time for meditation, mantra japa, Vedic study, and spiritual sadhana. Referenced in Ashtanga Hridaya and Dharmashastra texts.
16907
18108
  */
@@ -16953,7 +18154,7 @@ export type GetDetailedPanchangResponses = {
16953
18154
  * Period end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
16954
18155
  */
16955
18156
  end: string;
16956
- };
18157
+ } | null;
16957
18158
  /**
16958
18159
  * Pratah Sandhya, morning twilight junction period for Sandhyavandanam prayer. Spans 3 night ghatis before sunrise to sunrise. Duration varies by location and season based on ratrimana (night duration). One of the three daily Sandhya prayer times prescribed in Dharmashastra.
16959
18160
  */
@@ -16966,7 +18167,7 @@ export type GetDetailedPanchangResponses = {
16966
18167
  * Period end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
16967
18168
  */
16968
18169
  end: string;
16969
- };
18170
+ } | null;
16970
18171
  /**
16971
18172
  * Sayahna Sandhya, evening twilight junction period for Sandhyavandanam prayer. Spans sunset to 3 night ghatis after sunset. Duration varies by location and season based on ratrimana (night duration). One of the three daily Sandhya prayer times prescribed in Dharmashastra.
16972
18173
  */
@@ -16979,7 +18180,7 @@ export type GetDetailedPanchangResponses = {
16979
18180
  * Period end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
16980
18181
  */
16981
18182
  end: string;
16982
- };
18183
+ } | null;
16983
18184
  /**
16984
18185
  * Dur Muhurta (Dur Muhurtam), inauspicious muhurta periods determined by the weekday. The daytime is divided into 15 muhurtas from sunrise to sunset. Specific muhurta numbers are inauspicious each weekday per Muhurta Chintamani. Each period lasts ~48 minutes. Most days have 2 Dur Muhurtas, Wednesday and Sunday have 1. Avoid initiating important activities during these periods.
16985
18186
  */
@@ -17056,15 +18257,15 @@ export type GetDetailedPanchangResponses = {
17056
18257
  /**
17057
18258
  * Panchaka dosha, set by the weekday the period BEGINS (not the nakshatra): Roga (Sunday, disease), Raja (Monday, government), Agni (Tuesday, fire), Chora (Friday, theft), Mrityu (Saturday, death). Null when Panchaka begins on Wednesday or Thursday (no dosha) or when no Panchaka touches this date.
17058
18259
  */
17059
- type: string;
18260
+ type: string | null;
17060
18261
  /**
17061
18262
  * When the Panchaka period starts (Moon enters 300 degrees, Dhanishta 3rd pada). May predate this date when Panchaka is already running. Null when no Panchaka is in force or begins on this date. In requested timezone.
17062
18263
  */
17063
- startsAt: string;
18264
+ startsAt: string | null;
17064
18265
  /**
17065
18266
  * When the Panchaka period ends (Moon exits Revati at 360 degrees), about five days after it starts. Null when no Panchaka. In requested timezone.
17066
18267
  */
17067
- endsAt: string;
18268
+ endsAt: string | null;
17068
18269
  };
17069
18270
  /**
17070
18271
  * Bhadra (Vishti Karana), the 7th movable karana, avoided for all auspicious activities. Bhadra recurs roughly every 3 to 5 days and lasts about half a tithi. active is true whenever a Bhadra is attributed to this date; startsAt and endsAt give the window, which may end on the next calendar day.
@@ -17077,11 +18278,11 @@ export type GetDetailedPanchangResponses = {
17077
18278
  /**
17078
18279
  * When the Bhadra (Vishti) period that begins on this date starts. Null when no Bhadra begins on this date. In requested timezone.
17079
18280
  */
17080
- startsAt: string;
18281
+ startsAt: string | null;
17081
18282
  /**
17082
18283
  * When the Bhadra (Vishti) period that begins on this date ends. May fall on the next calendar day. Null when no Bhadra begins on this date. In requested timezone.
17083
18284
  */
17084
- endsAt: string;
18285
+ endsAt: string | null;
17085
18286
  };
17086
18287
  /**
17087
18288
  * Panchang element transition times. exact timing of when each element (tithi, yoga, karana, nakshatra, Moon sign) changes. Calculated using binary search for ~1 minute precision. Essential for precise muhurta determination and panchang calendars.
@@ -17294,6 +18495,9 @@ export type GetChoghadiyaResponses = {
17294
18495
  * 8 daytime and 8 nighttime Choghadiya muhurta periods with names, ruling planets, auspiciousness ratings (Good/Bad), and exact start/end times based on sunrise and sunset.
17295
18496
  */
17296
18497
  200: {
18498
+ /**
18499
+ * Calendar date the choghadiya muhurta table was computed for, YYYY-MM-DD, echoed back from the request. The day periods run from that date sunrise to its sunset, and the night periods run on to the next sunrise.
18500
+ */
17297
18501
  date: string;
17298
18502
  /**
17299
18503
  * 8 daytime choghadiya periods (sunrise to sunset)
@@ -17530,7 +18734,12 @@ export type GetHoraResponse = GetHoraResponses[keyof GetHoraResponses];
17530
18734
  export type CheckManglikDoshaData = {
17531
18735
  body?: ManglikRequest;
17532
18736
  path?: never;
17533
- query?: never;
18737
+ query?: {
18738
+ /**
18739
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
18740
+ */
18741
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
18742
+ };
17534
18743
  url: '/vedic-astrology/dosha/manglik';
17535
18744
  };
17536
18745
  export type CheckManglikDoshaErrors = {
@@ -17645,7 +18854,12 @@ export type CheckManglikDoshaResponse = CheckManglikDoshaResponses[keyof CheckMa
17645
18854
  export type CheckKalsarpaDoshaData = {
17646
18855
  body?: KalsarpaRequest;
17647
18856
  path?: never;
17648
- query?: never;
18857
+ query?: {
18858
+ /**
18859
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
18860
+ */
18861
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
18862
+ };
17649
18863
  url: '/vedic-astrology/dosha/kalsarpa';
17650
18864
  };
17651
18865
  export type CheckKalsarpaDoshaErrors = {
@@ -17760,7 +18974,12 @@ export type CheckKalsarpaDoshaResponse = CheckKalsarpaDoshaResponses[keyof Check
17760
18974
  export type CheckSadhesatiData = {
17761
18975
  body?: SadhesatiRequest;
17762
18976
  path?: never;
17763
- query?: never;
18977
+ query?: {
18978
+ /**
18979
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
18980
+ */
18981
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
18982
+ };
17764
18983
  url: '/vedic-astrology/dosha/sadhesati';
17765
18984
  };
17766
18985
  export type CheckSadhesatiErrors = {
@@ -17880,6 +19099,10 @@ export type ListYogasData = {
17880
19099
  * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
17881
19100
  */
17882
19101
  lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
19102
+ /**
19103
+ * Filter the catalog to one Nabhasa family: asraya (3), dala (2), akriti (20) or sankhya (7). Omit for the full catalog. `classical` is accepted but matches nothing here, because it is a detection-verdict value for single-combination yogas rather than a catalog grouping.
19104
+ */
19105
+ family?: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
17883
19106
  };
17884
19107
  url: '/vedic-astrology/yoga';
17885
19108
  };
@@ -17991,20 +19214,24 @@ export type ListYogasResponses = {
17991
19214
  */
17992
19215
  200: {
17993
19216
  /**
17994
- * Array of all planetary yogas with basic identifiers. Use GET /yogas/:id for formation rules, effects, and quality classification.
19217
+ * Array of planetary yogas with basic identifiers, narrowed by `family` when that filter is supplied. Use GET /yoga/{id} for formation rules, effects, and quality classification.
17995
19218
  */
17996
19219
  yogas: Array<{
17997
19220
  /**
17998
- * Unique yoga identifier in lowercase kebab-case. Use this to fetch full details via GET /yogas/:id.
19221
+ * Unique yoga identifier in lowercase kebab-case. Use this to fetch full details via GET /yoga/{id}.
17999
19222
  */
18000
19223
  id: string;
18001
19224
  /**
18002
19225
  * Traditional Sanskrit name of the planetary yoga combination.
18003
19226
  */
18004
19227
  name: string;
19228
+ /**
19229
+ * Nabhasa family, present only on the 32 Nabhasa distribution yogas and absent on every other catalog row. Never translated, so it groups identically under any lang.
19230
+ */
19231
+ family?: 'classical' | 'asraya' | 'dala' | 'akriti' | 'sankhya';
18005
19232
  }>;
18006
19233
  /**
18007
- * Total count of planetary yogas in the database. Includes Raj Yogas, Dhan Yogas, Pancha Mahapurusha Yogas, Nabhasa Yogas, and more.
19234
+ * Number of yogas in this response, which is the filtered count when `family` is supplied and the full catalog size otherwise. Includes Raj Yogas, Dhan Yogas, Pancha Mahapurusha Yogas, Nabhasa Yogas, and more.
18008
19235
  */
18009
19236
  total: number;
18010
19237
  };
@@ -18939,9 +20166,9 @@ export type GetKpRulingIntervalData = {
18939
20166
  */
18940
20167
  timezone?: number | string;
18941
20168
  /**
18942
- * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. Defaults to "kp-newcomb".
20169
+ * Ayanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
18943
20170
  */
18944
- ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri';
20171
+ ayanamsa?: 'kp-newcomb' | 'kp-old' | 'lahiri' | 'raman';
18945
20172
  /**
18946
20173
  * 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".
18947
20174
  */
@@ -19414,6 +20641,130 @@ export type GetKpPlanetsIntervalResponses = {
19414
20641
  200: KpPlanetsIntervalResponse;
19415
20642
  };
19416
20643
  export type GetKpPlanetsIntervalResponse = GetKpPlanetsIntervalResponses[keyof GetKpPlanetsIntervalResponses];
20644
+ export type CastKpHoraryChartData = {
20645
+ body?: KpHoraryRequest;
20646
+ path?: never;
20647
+ query?: {
20648
+ /**
20649
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
20650
+ */
20651
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
20652
+ /**
20653
+ * Which signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general".
20654
+ */
20655
+ focus?: 'general' | 'finance';
20656
+ };
20657
+ url: '/vedic-astrology/kp/horary';
20658
+ };
20659
+ export type CastKpHoraryChartErrors = {
20660
+ /**
20661
+ * Validation error. `issues[]` lists every failed field.
20662
+ */
20663
+ 400: {
20664
+ /**
20665
+ * First issue summary.
20666
+ */
20667
+ error: string;
20668
+ code: 'validation_error';
20669
+ /**
20670
+ * Every validation failure. Use this to rebuild a valid request.
20671
+ */
20672
+ issues: Array<{
20673
+ /**
20674
+ * Dot-separated field path, or "(root)" for top-level.
20675
+ */
20676
+ path: string;
20677
+ message: string;
20678
+ /**
20679
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
20680
+ */
20681
+ code?: string;
20682
+ /**
20683
+ * Expected type for invalid_type.
20684
+ */
20685
+ expected?: string;
20686
+ /**
20687
+ * Minimum bound for too_small issues.
20688
+ */
20689
+ minimum?: number | string;
20690
+ /**
20691
+ * Maximum bound for too_big issues.
20692
+ */
20693
+ maximum?: number | string;
20694
+ inclusive?: boolean;
20695
+ /**
20696
+ * Format name for string issues (regex, email, url, uuid).
20697
+ */
20698
+ format?: string;
20699
+ /**
20700
+ * Regex pattern when format is regex.
20701
+ */
20702
+ pattern?: string;
20703
+ }>;
20704
+ };
20705
+ /**
20706
+ * Invalid or missing API key
20707
+ */
20708
+ 401: {
20709
+ /**
20710
+ * Human-readable error message. May change wording.
20711
+ */
20712
+ error: string;
20713
+ /**
20714
+ * Machine-readable error code. Stable identifier.
20715
+ */
20716
+ code: string;
20717
+ };
20718
+ /**
20719
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
20720
+ */
20721
+ 405: {
20722
+ error: string;
20723
+ code: 'method_not_allowed';
20724
+ /**
20725
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
20726
+ */
20727
+ allow: Array<string>;
20728
+ /**
20729
+ * Link to the product page for this domain.
20730
+ */
20731
+ docs?: string;
20732
+ };
20733
+ /**
20734
+ * Monthly rate limit exceeded
20735
+ */
20736
+ 429: {
20737
+ /**
20738
+ * Human-readable error message. May change wording.
20739
+ */
20740
+ error: string;
20741
+ /**
20742
+ * Machine-readable error code. Stable identifier.
20743
+ */
20744
+ code: string;
20745
+ };
20746
+ /**
20747
+ * Internal server error
20748
+ */
20749
+ 500: {
20750
+ /**
20751
+ * Human-readable error message. May change wording.
20752
+ */
20753
+ error: string;
20754
+ /**
20755
+ * Machine-readable error code. Stable identifier.
20756
+ */
20757
+ code: string;
20758
+ };
20759
+ };
20760
+ export type CastKpHoraryChartError = CastKpHoraryChartErrors[keyof CastKpHoraryChartErrors];
20761
+ export type CastKpHoraryChartResponses = {
20762
+ /**
20763
+ * Horary chart with the Ascendant from the number, Placidus cusps, planets at the question moment, ruling planets, and four-level significators.
20764
+ */
20765
+ 200: KpHoraryResponse;
20766
+ };
20767
+ export type CastKpHoraryChartResponse = CastKpHoraryChartResponses[keyof CastKpHoraryChartResponses];
19417
20768
  export type CalculateDrishtiData = {
19418
20769
  body?: {
19419
20770
  /**
@@ -20167,11 +21518,11 @@ export type CalculateTransitResponses = {
20167
21518
  */
20168
21519
  200: {
20169
21520
  /**
20170
- * Birth datetime used for the natal chart (UTC ISO 8601).
21521
+ * 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.
20171
21522
  */
20172
21523
  birthDatetime: string;
20173
21524
  /**
20174
- * Transit datetime being analyzed (UTC ISO 8601).
21525
+ * Transit datetime being analyzed, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). Gochar positions are computed for this moment and overlaid on the natal chart.
20175
21526
  */
20176
21527
  transitDatetime: string;
20177
21528
  /**
@@ -20179,7 +21530,7 @@ export type CalculateTransitResponses = {
20179
21530
  */
20180
21531
  natalPlanets: Array<{
20181
21532
  /**
20182
- * Planet name (Sun through Ketu plus Lagna).
21533
+ * Graha name, Sun through Ketu. The Lagna is not one of these entries; it is a house frame rather than a body, and the natal house numbers on every entry are counted from it.
20183
21534
  */
20184
21535
  name: string;
20185
21536
  /**
@@ -20196,7 +21547,7 @@ export type CalculateTransitResponses = {
20196
21547
  house: number;
20197
21548
  }>;
20198
21549
  /**
20199
- * Current planetary positions overlaid on the natal chart with house placements and aspects.
21550
+ * Current planetary positions overlaid on the natal chart with house placements, aspects, and the Gochara Kaksha verdict for each graha.
20200
21551
  */
20201
21552
  transitingPlanets: Array<{
20202
21553
  /**
@@ -20232,6 +21583,35 @@ export type CalculateTransitResponses = {
20232
21583
  */
20233
21584
  orb: number;
20234
21585
  }>;
21586
+ /**
21587
+ * 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.
21588
+ */
21589
+ kaksha: {
21590
+ /**
21591
+ * Kaksha number 1-8 within the current sign. Each sign divides into eight kakshas of 3 degrees 45 minutes, crossed in order, so this is how far through the sign the graha has travelled.
21592
+ */
21593
+ number: number;
21594
+ /**
21595
+ * Graha ruling this kaksha. The eight lords run Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon, Lagna from the start of every sign, ordered by how long each takes to cross a sign.
21596
+ */
21597
+ lord: string;
21598
+ /**
21599
+ * Degree within the sign where this kaksha begins (0, 3.75, 7.5 and so on).
21600
+ */
21601
+ startDegree: number;
21602
+ /**
21603
+ * Degree within the sign where this kaksha ends.
21604
+ */
21605
+ endDegree: number;
21606
+ /**
21607
+ * Whether this kaksha lord gave the transiting graha a bindu in the sign being transited, which is the Gochara Kaksha verdict: true reads as a favourable stretch of the transit, false as an unfavourable one. Null means the question does not apply rather than that the answer is no, because Rahu and Ketu have no Bhinnashtakavarga to read. Never render null as unfavourable.
21608
+ */
21609
+ bindu: boolean | null;
21610
+ /**
21611
+ * Bindus the transiting graha holds in this whole sign, 0-8, or null for Rahu and Ketu. Context for the verdict, since the same kaksha reads differently in a sign worth 7 than in one worth 1.
21612
+ */
21613
+ binduCount: number | null;
21614
+ };
20235
21615
  }>;
20236
21616
  /**
20237
21617
  * Highlighted transits from slow-moving planets (Jupiter, Saturn, Rahu, Ketu), most impactful for Gochar analysis.
@@ -20587,7 +21967,7 @@ export type CalculateParallelsResponses = {
20587
21967
  */
20588
21968
  200: {
20589
21969
  /**
20590
- * UTC datetime used for declination calculation (ISO 8601).
21970
+ * Datetime used for the declination calculation, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). The timezone field of the request is what converts it to the instant the declinations are computed for.
20591
21971
  */
20592
21972
  datetime: string;
20593
21973
  /**
@@ -21610,21 +22990,141 @@ export type GetUpagrahaPositionsErrors = {
21610
22990
  code: string;
21611
22991
  };
21612
22992
  };
21613
- export type GetUpagrahaPositionsError = GetUpagrahaPositionsErrors[keyof GetUpagrahaPositionsErrors];
21614
- export type GetUpagrahaPositionsResponses = {
22993
+ export type GetUpagrahaPositionsError = GetUpagrahaPositionsErrors[keyof GetUpagrahaPositionsErrors];
22994
+ export type GetUpagrahaPositionsResponses = {
22995
+ /**
22996
+ * All 11 upagraha positions with rashi, nakshatra, and pada details.
22997
+ */
22998
+ 200: UpagrahaResponse;
22999
+ };
23000
+ export type GetUpagrahaPositionsResponse = GetUpagrahaPositionsResponses[keyof GetUpagrahaPositionsResponses];
23001
+ export type CalculateAshtakavargaData = {
23002
+ body?: AshtakavargaRequest;
23003
+ path?: never;
23004
+ query?: never;
23005
+ url: '/vedic-astrology/ashtakavarga';
23006
+ };
23007
+ export type CalculateAshtakavargaErrors = {
23008
+ /**
23009
+ * Validation error. `issues[]` lists every failed field.
23010
+ */
23011
+ 400: {
23012
+ /**
23013
+ * First issue summary.
23014
+ */
23015
+ error: string;
23016
+ code: 'validation_error';
23017
+ /**
23018
+ * Every validation failure. Use this to rebuild a valid request.
23019
+ */
23020
+ issues: Array<{
23021
+ /**
23022
+ * Dot-separated field path, or "(root)" for top-level.
23023
+ */
23024
+ path: string;
23025
+ message: string;
23026
+ /**
23027
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
23028
+ */
23029
+ code?: string;
23030
+ /**
23031
+ * Expected type for invalid_type.
23032
+ */
23033
+ expected?: string;
23034
+ /**
23035
+ * Minimum bound for too_small issues.
23036
+ */
23037
+ minimum?: number | string;
23038
+ /**
23039
+ * Maximum bound for too_big issues.
23040
+ */
23041
+ maximum?: number | string;
23042
+ inclusive?: boolean;
23043
+ /**
23044
+ * Format name for string issues (regex, email, url, uuid).
23045
+ */
23046
+ format?: string;
23047
+ /**
23048
+ * Regex pattern when format is regex.
23049
+ */
23050
+ pattern?: string;
23051
+ }>;
23052
+ };
23053
+ /**
23054
+ * Invalid or missing API key
23055
+ */
23056
+ 401: {
23057
+ /**
23058
+ * Human-readable error message. May change wording.
23059
+ */
23060
+ error: string;
23061
+ /**
23062
+ * Machine-readable error code. Stable identifier.
23063
+ */
23064
+ code: string;
23065
+ };
23066
+ /**
23067
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
23068
+ */
23069
+ 405: {
23070
+ error: string;
23071
+ code: 'method_not_allowed';
23072
+ /**
23073
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
23074
+ */
23075
+ allow: Array<string>;
23076
+ /**
23077
+ * Link to the product page for this domain.
23078
+ */
23079
+ docs?: string;
23080
+ };
23081
+ /**
23082
+ * Monthly rate limit exceeded
23083
+ */
23084
+ 429: {
23085
+ /**
23086
+ * Human-readable error message. May change wording.
23087
+ */
23088
+ error: string;
23089
+ /**
23090
+ * Machine-readable error code. Stable identifier.
23091
+ */
23092
+ code: string;
23093
+ };
23094
+ /**
23095
+ * Internal server error
23096
+ */
23097
+ 500: {
23098
+ /**
23099
+ * Human-readable error message. May change wording.
23100
+ */
23101
+ error: string;
23102
+ /**
23103
+ * Machine-readable error code. Stable identifier.
23104
+ */
23105
+ code: string;
23106
+ };
23107
+ };
23108
+ export type CalculateAshtakavargaError = CalculateAshtakavargaErrors[keyof CalculateAshtakavargaErrors];
23109
+ export type CalculateAshtakavargaResponses = {
21615
23110
  /**
21616
- * All 11 upagraha positions with rashi, nakshatra, and pada details.
23111
+ * Complete Ashtakavarga with Bhinnashtakavarga, Sarvashtakavarga (337-point), Reduced Ashtakavarga (Trikona + Ekadipati Shodhana), and Shodhya Pinda planetary strength.
21617
23112
  */
21618
- 200: UpagrahaResponse;
23113
+ 200: AshtakavargaResponse;
21619
23114
  };
21620
- export type GetUpagrahaPositionsResponse = GetUpagrahaPositionsResponses[keyof GetUpagrahaPositionsResponses];
21621
- export type CalculateAshtakavargaData = {
21622
- body?: AshtakavargaRequest;
23115
+ export type CalculateAshtakavargaResponse = CalculateAshtakavargaResponses[keyof CalculateAshtakavargaResponses];
23116
+ export type CalculateShadbalaData = {
23117
+ body?: ShadbalaRequest;
21623
23118
  path?: never;
21624
- query?: never;
21625
- url: '/vedic-astrology/ashtakavarga';
23119
+ query?: {
23120
+ /**
23121
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
23122
+ */
23123
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
23124
+ };
23125
+ url: '/vedic-astrology/shadbala';
21626
23126
  };
21627
- export type CalculateAshtakavargaErrors = {
23127
+ export type CalculateShadbalaErrors = {
21628
23128
  /**
21629
23129
  * Validation error. `issues[]` lists every failed field.
21630
23130
  */
@@ -21725,21 +23225,30 @@ export type CalculateAshtakavargaErrors = {
21725
23225
  code: string;
21726
23226
  };
21727
23227
  };
21728
- export type CalculateAshtakavargaError = CalculateAshtakavargaErrors[keyof CalculateAshtakavargaErrors];
21729
- export type CalculateAshtakavargaResponses = {
23228
+ export type CalculateShadbalaError = CalculateShadbalaErrors[keyof CalculateShadbalaErrors];
23229
+ export type CalculateShadbalaResponses = {
21730
23230
  /**
21731
- * Complete Ashtakavarga with Bhinnashtakavarga, Sarvashtakavarga (337-point), Reduced Ashtakavarga (Trikona + Ekadipati Shodhana), and Shodhya Pinda planetary strength.
23231
+ * Complete Shadbala with 6 strength components, Ishta/Kashta Phala, strength ratios, and relative ranking for all 7 planets.
21732
23232
  */
21733
- 200: AshtakavargaResponse;
23233
+ 200: ShadbalaResponse;
21734
23234
  };
21735
- export type CalculateAshtakavargaResponse = CalculateAshtakavargaResponses[keyof CalculateAshtakavargaResponses];
21736
- export type CalculateShadbalaData = {
21737
- body?: ShadbalaRequest;
23235
+ export type CalculateShadbalaResponse = CalculateShadbalaResponses[keyof CalculateShadbalaResponses];
23236
+ export type ListAvasthasData = {
23237
+ body?: never;
21738
23238
  path?: never;
21739
- query?: never;
21740
- url: '/vedic-astrology/shadbala';
23239
+ query?: {
23240
+ /**
23241
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
23242
+ */
23243
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
23244
+ /**
23245
+ * Return only the states of one system: "baladi" (5), "jagradadi" (3) or "deeptadi" (9). Omit for all 17.
23246
+ */
23247
+ system?: 'baladi' | 'jagradadi' | 'deeptadi';
23248
+ };
23249
+ url: '/vedic-astrology/avasthas';
21741
23250
  };
21742
- export type CalculateShadbalaErrors = {
23251
+ export type ListAvasthasErrors = {
21743
23252
  /**
21744
23253
  * Validation error. `issues[]` lists every failed field.
21745
23254
  */
@@ -21840,30 +23349,52 @@ export type CalculateShadbalaErrors = {
21840
23349
  code: string;
21841
23350
  };
21842
23351
  };
21843
- export type CalculateShadbalaError = CalculateShadbalaErrors[keyof CalculateShadbalaErrors];
21844
- export type CalculateShadbalaResponses = {
23352
+ export type ListAvasthasError = ListAvasthasErrors[keyof ListAvasthasErrors];
23353
+ export type ListAvasthasResponses = {
21845
23354
  /**
21846
- * Complete Shadbala with 6 strength components, Ishta/Kashta Phala, strength ratios, and relative ranking for all 7 planets.
23355
+ * Avastha states with their labels and interpretations, in system order.
21847
23356
  */
21848
- 200: ShadbalaResponse;
23357
+ 200: Array<{
23358
+ /**
23359
+ * Unique slug for the avastha state. It is the lowercased form of the state name the birth chart returns, so a chart value maps straight onto this record.
23360
+ */
23361
+ id: string;
23362
+ /**
23363
+ * Sanskrit name of the state, exactly as it appears in the `awastha`, `jagradadi` or `deeptadi` field of a birth chart.
23364
+ */
23365
+ name: string;
23366
+ /**
23367
+ * Which avastha system the state belongs to, and therefore which birth-chart field it appears in. "baladi" is the five-fold age state set by degree within the sign and appears in `awastha`. "jagradadi" is the three-fold waking state set by sign dignity. "deeptadi" is the nine-fold dispositional state. Baladi applies to every body; the other two apply to the seven classical grahas only.
23368
+ */
23369
+ system: 'baladi' | 'jagradadi' | 'deeptadi';
23370
+ /**
23371
+ * Short label for the state, sized for a table cell beside the graha.
23372
+ */
23373
+ meaning: string;
23374
+ /**
23375
+ * What the state means for the results the graha delivers, which is the whole purpose of reading an avastha: the chart says where a graha is, the avastha says how much of its promise it can keep.
23376
+ */
23377
+ interpretation: string;
23378
+ }>;
21849
23379
  };
21850
- export type CalculateShadbalaResponse = CalculateShadbalaResponses[keyof CalculateShadbalaResponses];
21851
- export type ListAvasthasData = {
23380
+ export type ListAvasthasResponse = ListAvasthasResponses[keyof ListAvasthasResponses];
23381
+ export type GetAvasthaData = {
21852
23382
  body?: never;
21853
- path?: never;
23383
+ path: {
23384
+ /**
23385
+ * Avastha slug. Baladi: bala, kumara, yuva, vriddha, mrita. Jagradadi: jagrat, swapna, sushupti. Deeptadi: dipta, svastha, pramudita, shanta, dina, duhkhita, vikala, khala, kopa.
23386
+ */
23387
+ id: 'bala' | 'kumara' | 'yuva' | 'vriddha' | 'mrita' | 'jagrat' | 'swapna' | 'sushupti' | 'dipta' | 'svastha' | 'pramudita' | 'shanta' | 'dina' | 'duhkhita' | 'vikala' | 'khala' | 'kopa';
23388
+ };
21854
23389
  query?: {
21855
23390
  /**
21856
23391
  * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
21857
23392
  */
21858
23393
  lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
21859
- /**
21860
- * Return only the states of one system: "baladi" (5), "jagradadi" (3) or "deeptadi" (9). Omit for all 17.
21861
- */
21862
- system?: 'baladi' | 'jagradadi' | 'deeptadi';
21863
23394
  };
21864
- url: '/vedic-astrology/avasthas';
23395
+ url: '/vedic-astrology/avasthas/{id}';
21865
23396
  };
21866
- export type ListAvasthasErrors = {
23397
+ export type GetAvasthaErrors = {
21867
23398
  /**
21868
23399
  * Validation error. `issues[]` lists every failed field.
21869
23400
  */
@@ -21922,6 +23453,19 @@ export type ListAvasthasErrors = {
21922
23453
  */
21923
23454
  code: string;
21924
23455
  };
23456
+ /**
23457
+ * No avastha state matches that slug.
23458
+ */
23459
+ 404: {
23460
+ /**
23461
+ * Human-readable error message. May change wording — do not parse programmatically.
23462
+ */
23463
+ error: string;
23464
+ /**
23465
+ * Machine-readable error code. Stable identifier for programmatic error handling.
23466
+ */
23467
+ code: string;
23468
+ };
21925
23469
  /**
21926
23470
  * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
21927
23471
  */
@@ -21964,12 +23508,12 @@ export type ListAvasthasErrors = {
21964
23508
  code: string;
21965
23509
  };
21966
23510
  };
21967
- export type ListAvasthasError = ListAvasthasErrors[keyof ListAvasthasErrors];
21968
- export type ListAvasthasResponses = {
23511
+ export type GetAvasthaError = GetAvasthaErrors[keyof GetAvasthaErrors];
23512
+ export type GetAvasthaResponses = {
21969
23513
  /**
21970
- * Avastha states with their labels and interpretations, in system order.
23514
+ * The avastha state with its system, label and interpretation.
21971
23515
  */
21972
- 200: Array<{
23516
+ 200: {
21973
23517
  /**
21974
23518
  * Unique slug for the avastha state. It is the lowercased form of the state name the birth chart returns, so a chart value maps straight onto this record.
21975
23519
  */
@@ -21990,26 +23534,21 @@ export type ListAvasthasResponses = {
21990
23534
  * What the state means for the results the graha delivers, which is the whole purpose of reading an avastha: the chart says where a graha is, the avastha says how much of its promise it can keep.
21991
23535
  */
21992
23536
  interpretation: string;
21993
- }>;
21994
- };
21995
- export type ListAvasthasResponse = ListAvasthasResponses[keyof ListAvasthasResponses];
21996
- export type GetAvasthaData = {
21997
- body?: never;
21998
- path: {
21999
- /**
22000
- * Avastha slug. Baladi: bala, kumara, yuva, vriddha, mrita. Jagradadi: jagrat, swapna, sushupti. Deeptadi: dipta, svastha, pramudita, shanta, dina, duhkhita, vikala, khala, kopa.
22001
- */
22002
- id: 'bala' | 'kumara' | 'yuva' | 'vriddha' | 'mrita' | 'jagrat' | 'swapna' | 'sushupti' | 'dipta' | 'svastha' | 'pramudita' | 'shanta' | 'dina' | 'duhkhita' | 'vikala' | 'khala' | 'kopa';
22003
23537
  };
23538
+ };
23539
+ export type GetAvasthaResponse = GetAvasthaResponses[keyof GetAvasthaResponses];
23540
+ export type CalculateArudhaPadasData = {
23541
+ body?: ArudhaRequest;
23542
+ path?: never;
22004
23543
  query?: {
22005
23544
  /**
22006
23545
  * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22007
23546
  */
22008
23547
  lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22009
23548
  };
22010
- url: '/vedic-astrology/avasthas/{id}';
23549
+ url: '/vedic-astrology/arudha';
22011
23550
  };
22012
- export type GetAvasthaErrors = {
23551
+ export type CalculateArudhaPadasErrors = {
22013
23552
  /**
22014
23553
  * Validation error. `issues[]` lists every failed field.
22015
23554
  */
@@ -22069,15 +23608,122 @@ export type GetAvasthaErrors = {
22069
23608
  code: string;
22070
23609
  };
22071
23610
  /**
22072
- * No avastha state matches that slug.
23611
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
22073
23612
  */
22074
- 404: {
23613
+ 405: {
23614
+ error: string;
23615
+ code: 'method_not_allowed';
22075
23616
  /**
22076
- * Human-readable error message. May change wording do not parse programmatically.
23617
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
23618
+ */
23619
+ allow: Array<string>;
23620
+ /**
23621
+ * Link to the product page for this domain.
23622
+ */
23623
+ docs?: string;
23624
+ };
23625
+ /**
23626
+ * Monthly rate limit exceeded
23627
+ */
23628
+ 429: {
23629
+ /**
23630
+ * Human-readable error message. May change wording.
22077
23631
  */
22078
23632
  error: string;
22079
23633
  /**
22080
- * Machine-readable error code. Stable identifier for programmatic error handling.
23634
+ * Machine-readable error code. Stable identifier.
23635
+ */
23636
+ code: string;
23637
+ };
23638
+ /**
23639
+ * Internal server error
23640
+ */
23641
+ 500: {
23642
+ /**
23643
+ * Human-readable error message. May change wording.
23644
+ */
23645
+ error: string;
23646
+ /**
23647
+ * Machine-readable error code. Stable identifier.
23648
+ */
23649
+ code: string;
23650
+ };
23651
+ };
23652
+ export type CalculateArudhaPadasError = CalculateArudhaPadasErrors[keyof CalculateArudhaPadasErrors];
23653
+ export type CalculateArudhaPadasResponses = {
23654
+ /**
23655
+ * All twelve Arudha padas with derivation detail, plus the Arudha Lagna and Upapada lifted to the top level.
23656
+ */
23657
+ 200: ArudhaResponse;
23658
+ };
23659
+ export type CalculateArudhaPadasResponse = CalculateArudhaPadasResponses[keyof CalculateArudhaPadasResponses];
23660
+ export type CalculateCharaKarakasData = {
23661
+ body?: CharaKarakaRequest;
23662
+ path?: never;
23663
+ query?: {
23664
+ /**
23665
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
23666
+ */
23667
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
23668
+ };
23669
+ url: '/vedic-astrology/chara-karakas';
23670
+ };
23671
+ export type CalculateCharaKarakasErrors = {
23672
+ /**
23673
+ * Validation error. `issues[]` lists every failed field.
23674
+ */
23675
+ 400: {
23676
+ /**
23677
+ * First issue summary.
23678
+ */
23679
+ error: string;
23680
+ code: 'validation_error';
23681
+ /**
23682
+ * Every validation failure. Use this to rebuild a valid request.
23683
+ */
23684
+ issues: Array<{
23685
+ /**
23686
+ * Dot-separated field path, or "(root)" for top-level.
23687
+ */
23688
+ path: string;
23689
+ message: string;
23690
+ /**
23691
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
23692
+ */
23693
+ code?: string;
23694
+ /**
23695
+ * Expected type for invalid_type.
23696
+ */
23697
+ expected?: string;
23698
+ /**
23699
+ * Minimum bound for too_small issues.
23700
+ */
23701
+ minimum?: number | string;
23702
+ /**
23703
+ * Maximum bound for too_big issues.
23704
+ */
23705
+ maximum?: number | string;
23706
+ inclusive?: boolean;
23707
+ /**
23708
+ * Format name for string issues (regex, email, url, uuid).
23709
+ */
23710
+ format?: string;
23711
+ /**
23712
+ * Regex pattern when format is regex.
23713
+ */
23714
+ pattern?: string;
23715
+ }>;
23716
+ };
23717
+ /**
23718
+ * Invalid or missing API key
23719
+ */
23720
+ 401: {
23721
+ /**
23722
+ * Human-readable error message. May change wording.
23723
+ */
23724
+ error: string;
23725
+ /**
23726
+ * Machine-readable error code. Stable identifier.
22081
23727
  */
22082
23728
  code: string;
22083
23729
  };
@@ -22123,47 +23769,154 @@ export type GetAvasthaErrors = {
22123
23769
  code: string;
22124
23770
  };
22125
23771
  };
22126
- export type GetAvasthaError = GetAvasthaErrors[keyof GetAvasthaErrors];
22127
- export type GetAvasthaResponses = {
23772
+ export type CalculateCharaKarakasError = CalculateCharaKarakasErrors[keyof CalculateCharaKarakasErrors];
23773
+ export type CalculateCharaKarakasResponses = {
22128
23774
  /**
22129
- * The avastha state with its system, label and interpretation.
23775
+ * Karaka offices in descending rank with the ranking degree for each, plus the Atmakaraka and Darakaraka lifted to the top level.
22130
23776
  */
22131
- 200: {
23777
+ 200: CharaKarakaResponse;
23778
+ };
23779
+ export type CalculateCharaKarakasResponse = CalculateCharaKarakasResponses[keyof CalculateCharaKarakasResponses];
23780
+ export type CalculateBhavaBalaData = {
23781
+ body?: BhavaBalaRequest;
23782
+ path?: never;
23783
+ query?: {
22132
23784
  /**
22133
- * Unique slug for the avastha state. It is the lowercased form of the state name the birth chart returns, so a chart value maps straight onto this record.
23785
+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22134
23786
  */
22135
- id: string;
23787
+ lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22136
23788
  /**
22137
- * Sanskrit name of the state, exactly as it appears in the `awastha`, `jagradadi` or `deeptadi` field of a birth chart.
23789
+ * Which signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general".
22138
23790
  */
22139
- name: string;
23791
+ focus?: 'general' | 'finance';
23792
+ };
23793
+ url: '/vedic-astrology/bhava-bala';
23794
+ };
23795
+ export type CalculateBhavaBalaErrors = {
23796
+ /**
23797
+ * Validation error. `issues[]` lists every failed field.
23798
+ */
23799
+ 400: {
22140
23800
  /**
22141
- * Which avastha system the state belongs to, and therefore which birth-chart field it appears in. "baladi" is the five-fold age state set by degree within the sign and appears in `awastha`. "jagradadi" is the three-fold waking state set by sign dignity. "deeptadi" is the nine-fold dispositional state. Baladi applies to every body; the other two apply to the seven classical grahas only.
23801
+ * First issue summary.
22142
23802
  */
22143
- system: 'baladi' | 'jagradadi' | 'deeptadi';
23803
+ error: string;
23804
+ code: 'validation_error';
22144
23805
  /**
22145
- * Short label for the state, sized for a table cell beside the graha.
23806
+ * Every validation failure. Use this to rebuild a valid request.
22146
23807
  */
22147
- meaning: string;
23808
+ issues: Array<{
23809
+ /**
23810
+ * Dot-separated field path, or "(root)" for top-level.
23811
+ */
23812
+ path: string;
23813
+ message: string;
23814
+ /**
23815
+ * Zod issue code (invalid_type, too_small, too_big, invalid_string, ...).
23816
+ */
23817
+ code?: string;
23818
+ /**
23819
+ * Expected type for invalid_type.
23820
+ */
23821
+ expected?: string;
23822
+ /**
23823
+ * Minimum bound for too_small issues.
23824
+ */
23825
+ minimum?: number | string;
23826
+ /**
23827
+ * Maximum bound for too_big issues.
23828
+ */
23829
+ maximum?: number | string;
23830
+ inclusive?: boolean;
23831
+ /**
23832
+ * Format name for string issues (regex, email, url, uuid).
23833
+ */
23834
+ format?: string;
23835
+ /**
23836
+ * Regex pattern when format is regex.
23837
+ */
23838
+ pattern?: string;
23839
+ }>;
23840
+ };
23841
+ /**
23842
+ * Invalid or missing API key
23843
+ */
23844
+ 401: {
22148
23845
  /**
22149
- * What the state means for the results the graha delivers, which is the whole purpose of reading an avastha: the chart says where a graha is, the avastha says how much of its promise it can keep.
23846
+ * Human-readable error message. May change wording.
22150
23847
  */
22151
- interpretation: string;
23848
+ error: string;
23849
+ /**
23850
+ * Machine-readable error code. Stable identifier.
23851
+ */
23852
+ code: string;
23853
+ };
23854
+ /**
23855
+ * Method not allowed. The path exists but only responds to the methods listed in `allow[]` and the `Allow` response header.
23856
+ */
23857
+ 405: {
23858
+ error: string;
23859
+ code: 'method_not_allowed';
23860
+ /**
23861
+ * Allowed HTTP methods for this path. Mirrors the Allow response header.
23862
+ */
23863
+ allow: Array<string>;
23864
+ /**
23865
+ * Link to the product page for this domain.
23866
+ */
23867
+ docs?: string;
23868
+ };
23869
+ /**
23870
+ * Monthly rate limit exceeded
23871
+ */
23872
+ 429: {
23873
+ /**
23874
+ * Human-readable error message. May change wording.
23875
+ */
23876
+ error: string;
23877
+ /**
23878
+ * Machine-readable error code. Stable identifier.
23879
+ */
23880
+ code: string;
23881
+ };
23882
+ /**
23883
+ * Internal server error
23884
+ */
23885
+ 500: {
23886
+ /**
23887
+ * Human-readable error message. May change wording.
23888
+ */
23889
+ error: string;
23890
+ /**
23891
+ * Machine-readable error code. Stable identifier.
23892
+ */
23893
+ code: string;
22152
23894
  };
22153
23895
  };
22154
- export type GetAvasthaResponse = GetAvasthaResponses[keyof GetAvasthaResponses];
22155
- export type CalculateArudhaPadasData = {
22156
- body?: ArudhaRequest;
23896
+ export type CalculateBhavaBalaError = CalculateBhavaBalaErrors[keyof CalculateBhavaBalaErrors];
23897
+ export type CalculateBhavaBalaResponses = {
23898
+ /**
23899
+ * Bhava Bala for all twelve houses with the three components, totals in virupas and rupas, ranking, and the localized house-theme legend.
23900
+ */
23901
+ 200: BhavaBalaResponse;
23902
+ };
23903
+ export type CalculateBhavaBalaResponse = CalculateBhavaBalaResponses[keyof CalculateBhavaBalaResponses];
23904
+ export type CalculateBhavChalitData = {
23905
+ body?: BhavChalitRequest;
22157
23906
  path?: never;
22158
23907
  query?: {
22159
23908
  /**
22160
23909
  * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22161
23910
  */
22162
23911
  lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
23912
+ /**
23913
+ * Which signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general".
23914
+ */
23915
+ focus?: 'general' | 'finance';
22163
23916
  };
22164
- url: '/vedic-astrology/arudha';
23917
+ url: '/vedic-astrology/bhav-chalit';
22165
23918
  };
22166
- export type CalculateArudhaPadasErrors = {
23919
+ export type CalculateBhavChalitErrors = {
22167
23920
  /**
22168
23921
  * Validation error. `issues[]` lists every failed field.
22169
23922
  */
@@ -22264,26 +24017,21 @@ export type CalculateArudhaPadasErrors = {
22264
24017
  code: string;
22265
24018
  };
22266
24019
  };
22267
- export type CalculateArudhaPadasError = CalculateArudhaPadasErrors[keyof CalculateArudhaPadasErrors];
22268
- export type CalculateArudhaPadasResponses = {
24020
+ export type CalculateBhavChalitError = CalculateBhavChalitErrors[keyof CalculateBhavChalitErrors];
24021
+ export type CalculateBhavChalitResponses = {
22269
24022
  /**
22270
- * All twelve Arudha padas with derivation detail, plus the Arudha Lagna and Upapada lifted to the top level.
24023
+ * Bhav Chalit chart with the twelve Sripati bhavas, every graha in both frames, and the localized house-theme legend.
22271
24024
  */
22272
- 200: ArudhaResponse;
24025
+ 200: BhavChalitResponse;
22273
24026
  };
22274
- export type CalculateArudhaPadasResponse = CalculateArudhaPadasResponses[keyof CalculateArudhaPadasResponses];
22275
- export type CalculateCharaKarakasData = {
22276
- body?: CharaKarakaRequest;
24027
+ export type CalculateBhavChalitResponse = CalculateBhavChalitResponses[keyof CalculateBhavChalitResponses];
24028
+ export type GetHeliacalVisibilityData = {
24029
+ body?: HeliacalRequest;
22277
24030
  path?: never;
22278
- query?: {
22279
- /**
22280
- * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English.
22281
- */
22282
- lang?: 'en' | 'tr' | 'de' | 'es' | 'hi' | 'pt' | 'fr' | 'ru';
22283
- };
22284
- url: '/vedic-astrology/chara-karakas';
24031
+ query?: never;
24032
+ url: '/vedic-astrology/heliacal';
22285
24033
  };
22286
- export type CalculateCharaKarakasErrors = {
24034
+ export type GetHeliacalVisibilityErrors = {
22287
24035
  /**
22288
24036
  * Validation error. `issues[]` lists every failed field.
22289
24037
  */
@@ -22384,14 +24132,14 @@ export type CalculateCharaKarakasErrors = {
22384
24132
  code: string;
22385
24133
  };
22386
24134
  };
22387
- export type CalculateCharaKarakasError = CalculateCharaKarakasErrors[keyof CalculateCharaKarakasErrors];
22388
- export type CalculateCharaKarakasResponses = {
24135
+ export type GetHeliacalVisibilityError = GetHeliacalVisibilityErrors[keyof GetHeliacalVisibilityErrors];
24136
+ export type GetHeliacalVisibilityResponses = {
22389
24137
  /**
22390
- * Karaka offices in descending rank with the ranking degree for each, plus the Atmakaraka and Darakaraka lifted to the top level.
24138
+ * Heliacal visibility and the surrounding udaya and asta events for each graha.
22391
24139
  */
22392
- 200: CharaKarakaResponse;
24140
+ 200: HeliacalResponse;
22393
24141
  };
22394
- export type CalculateCharaKarakasResponse = CalculateCharaKarakasResponses[keyof CalculateCharaKarakasResponses];
24142
+ export type GetHeliacalVisibilityResponse = GetHeliacalVisibilityResponses[keyof GetHeliacalVisibilityResponses];
22395
24143
  export type GenerateTimelineData = {
22396
24144
  body?: {
22397
24145
  /**
@@ -22582,9 +24330,9 @@ export type GenerateTimelineResponses = {
22582
24330
  */
22583
24331
  time: string;
22584
24332
  /**
22585
- * IANA name (e.g. "America/New_York", "Europe/London", "UTC"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00", "+01:00"). Prefer the IANA name: it is resolved to the DST-correct offset for the birth date, while a fixed offset or decimal is taken literally and will be wrong if it does not match the daylight-saving state on that date. Invalid timezones return 400 with a validation error.
24333
+ * Decimal UTC offset the forecast was computed with, resolved from whatever the request sent. An IANA name is resolved to the DST-correct offset for the birth date, so this is the literal number applied, never the name.
22586
24334
  */
22587
- timezone: number | string;
24335
+ timezone: number;
22588
24336
  /**
22589
24337
  * Birth latitude in decimal degrees. Optional and does not affect the timeline. Defaults to 0.
22590
24338
  */
@@ -22839,9 +24587,9 @@ export type ForecastTransitsResponses = {
22839
24587
  */
22840
24588
  time: string;
22841
24589
  /**
22842
- * IANA name (e.g. "America/New_York", "Europe/London", "UTC"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00", "+01:00"). Prefer the IANA name: it is resolved to the DST-correct offset for the birth date, while a fixed offset or decimal is taken literally and will be wrong if it does not match the daylight-saving state on that date. Invalid timezones return 400 with a validation error.
24590
+ * Decimal UTC offset the forecast was computed with, resolved from whatever the request sent. An IANA name is resolved to the DST-correct offset for the birth date, so this is the literal number applied, never the name.
22843
24591
  */
22844
- timezone: number | string;
24592
+ timezone: number;
22845
24593
  /**
22846
24594
  * Birth latitude in decimal degrees. Optional and does not affect the timeline. Defaults to 0.
22847
24595
  */
@@ -23117,9 +24865,9 @@ export type FindSignificantDatesResponses = {
23117
24865
  */
23118
24866
  time: string;
23119
24867
  /**
23120
- * IANA name (e.g. "America/New_York", "Europe/London", "UTC"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00", "+01:00"). Prefer the IANA name: it is resolved to the DST-correct offset for the birth date, while a fixed offset or decimal is taken literally and will be wrong if it does not match the daylight-saving state on that date. Invalid timezones return 400 with a validation error.
24868
+ * Decimal UTC offset the forecast was computed with, resolved from whatever the request sent. An IANA name is resolved to the DST-correct offset for the birth date, so this is the literal number applied, never the name.
23121
24869
  */
23122
- timezone: number | string;
24870
+ timezone: number;
23123
24871
  /**
23124
24872
  * Birth latitude in decimal degrees. Optional and does not affect the timeline. Defaults to 0.
23125
24873
  */
@@ -23395,9 +25143,9 @@ export type GenerateDigestResponses = {
23395
25143
  */
23396
25144
  time: string;
23397
25145
  /**
23398
- * IANA name (e.g. "America/New_York", "Europe/London", "UTC"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00", "+01:00"). Prefer the IANA name: it is resolved to the DST-correct offset for the birth date, while a fixed offset or decimal is taken literally and will be wrong if it does not match the daylight-saving state on that date. Invalid timezones return 400 with a validation error.
25146
+ * Decimal UTC offset the forecast was computed with, resolved from whatever the request sent. An IANA name is resolved to the DST-correct offset for the birth date, so this is the literal number applied, never the name.
23399
25147
  */
23400
- timezone: number | string;
25148
+ timezone: number;
23401
25149
  /**
23402
25150
  * Birth latitude in decimal degrees. Optional and does not affect the timeline. Defaults to 0.
23403
25151
  */
@@ -23439,20 +25187,50 @@ export type GenerateDigestResponses = {
23439
25187
  * Count of events in this window broken down by domain. Only domains with at least one event in the window are present. The values sum to count.
23440
25188
  */
23441
25189
  byDomain: {
25190
+ /**
25191
+ * Number of events in this window produced by this forecast domain. Absent when the domain contributed nothing, so a zero is never written.
25192
+ */
23442
25193
  western?: number;
25194
+ /**
25195
+ * Number of events in this window produced by this forecast domain. Absent when the domain contributed nothing, so a zero is never written.
25196
+ */
23443
25197
  vedic?: number;
25198
+ /**
25199
+ * Number of events in this window produced by this forecast domain. Absent when the domain contributed nothing, so a zero is never written.
25200
+ */
23444
25201
  biorhythm?: number;
23445
25202
  };
23446
25203
  /**
23447
25204
  * Count of events in this window broken down by event type. Only types with at least one event in the window are present. The values sum to count.
23448
25205
  */
23449
25206
  byType: {
25207
+ /**
25208
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25209
+ */
23450
25210
  'transit-aspect'?: number;
25211
+ /**
25212
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25213
+ */
23451
25214
  'sign-ingress'?: number;
25215
+ /**
25216
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25217
+ */
23452
25218
  'retrograde-station'?: number;
25219
+ /**
25220
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25221
+ */
23453
25222
  eclipse?: number;
25223
+ /**
25224
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25225
+ */
23454
25226
  'lunar-phase'?: number;
25227
+ /**
25228
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25229
+ */
23455
25230
  'dasha-change'?: number;
25231
+ /**
25232
+ * Number of events in this window of this event type. Absent when the type did not occur, so a zero is never written.
25233
+ */
23456
25234
  'critical-day'?: number;
23457
25235
  };
23458
25236
  /**
@@ -25463,7 +27241,7 @@ export type GetGateData = {
25463
27241
  /**
25464
27242
  * Gate number from 1 to 64.
25465
27243
  */
25466
- number: number;
27244
+ number: number | null;
25467
27245
  };
25468
27246
  query?: {
25469
27247
  /**
@@ -26560,7 +28338,13 @@ export type CalculateVariablesResponses = {
26560
28338
  * 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.
26561
28339
  */
26562
28340
  cognition?: {
28341
+ /**
28342
+ * Name of the Cognition, the strongest sense. One of six read off the Determination Tone: Smell, Taste, Outer Vision, Inner Vision, Feeling, Touch.
28343
+ */
26563
28344
  label: string;
28345
+ /**
28346
+ * 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.
28347
+ */
26564
28348
  description: string;
26565
28349
  };
26566
28350
  /**
@@ -29770,7 +31554,7 @@ export type GenerateNumerologyChartResponses = {
29770
31554
  /**
29771
31555
  * Age when this phase ends. Null for the 4th Pinnacle (lasts rest of life).
29772
31556
  */
29773
- endAge: number;
31557
+ endAge: number | null;
29774
31558
  /**
29775
31559
  * Meaning and interpretation for this Pinnacle number.
29776
31560
  */
@@ -29812,7 +31596,7 @@ export type GenerateNumerologyChartResponses = {
29812
31596
  /**
29813
31597
  * Age when this period ends. Null for the 4th Challenge.
29814
31598
  */
29815
- endAge: number;
31599
+ endAge: number | null;
29816
31600
  /**
29817
31601
  * Meaning and resolution guidance for this Challenge number.
29818
31602
  */
@@ -30535,7 +32319,7 @@ export type CalculateChaldeanResponses = {
30535
32319
  /**
30536
32320
  * The interpretable compound number (10 to 52), the hidden influence behind the name, or null when the total resolves below 10.
30537
32321
  */
30538
- compound: number;
32322
+ compound: number | null;
30539
32323
  /**
30540
32324
  * The single-digit root (1 to 9), the outward expression. Chaldean does not preserve master numbers.
30541
32325
  */
@@ -30555,7 +32339,7 @@ export type CalculateChaldeanResponses = {
30555
32339
  /**
30556
32340
  * Classical symbolic title from Cheiro, or null when the number has no named symbol.
30557
32341
  */
30558
- name: string;
32342
+ name: string | null;
30559
32343
  /**
30560
32344
  * Overall tenor of the compound. "mixed" covers conditional numbers that are fortunate only alongside a favorable single number or in a specific domain.
30561
32345
  */
@@ -30568,7 +32352,7 @@ export type CalculateChaldeanResponses = {
30568
32352
  * For numbers 33 to 52, the lower compound in the same series whose meaning this number shares.
30569
32353
  */
30570
32354
  sameAs?: number;
30571
- };
32355
+ } | null;
30572
32356
  };
30573
32357
  /**
30574
32358
  * The Soul Urge number from the vowels, revealing inner desire. Root may be 0 when the name has no vowels.
@@ -30581,7 +32365,7 @@ export type CalculateChaldeanResponses = {
30581
32365
  /**
30582
32366
  * The interpretable compound number (10 to 52), the hidden influence behind the name, or null when the total resolves below 10.
30583
32367
  */
30584
- compound: number;
32368
+ compound: number | null;
30585
32369
  /**
30586
32370
  * The single-digit root (1 to 9), the outward expression. Chaldean does not preserve master numbers.
30587
32371
  */
@@ -30601,7 +32385,7 @@ export type CalculateChaldeanResponses = {
30601
32385
  /**
30602
32386
  * Classical symbolic title from Cheiro, or null when the number has no named symbol.
30603
32387
  */
30604
- name: string;
32388
+ name: string | null;
30605
32389
  /**
30606
32390
  * Overall tenor of the compound. "mixed" covers conditional numbers that are fortunate only alongside a favorable single number or in a specific domain.
30607
32391
  */
@@ -30614,7 +32398,7 @@ export type CalculateChaldeanResponses = {
30614
32398
  * For numbers 33 to 52, the lower compound in the same series whose meaning this number shares.
30615
32399
  */
30616
32400
  sameAs?: number;
30617
- };
32401
+ } | null;
30618
32402
  };
30619
32403
  /**
30620
32404
  * The Personality number from the consonants, revealing the outer impression. Root may be 0 when the name has no consonants.
@@ -30627,7 +32411,7 @@ export type CalculateChaldeanResponses = {
30627
32411
  /**
30628
32412
  * The interpretable compound number (10 to 52), the hidden influence behind the name, or null when the total resolves below 10.
30629
32413
  */
30630
- compound: number;
32414
+ compound: number | null;
30631
32415
  /**
30632
32416
  * The single-digit root (1 to 9), the outward expression. Chaldean does not preserve master numbers.
30633
32417
  */
@@ -30647,7 +32431,7 @@ export type CalculateChaldeanResponses = {
30647
32431
  /**
30648
32432
  * Classical symbolic title from Cheiro, or null when the number has no named symbol.
30649
32433
  */
30650
- name: string;
32434
+ name: string | null;
30651
32435
  /**
30652
32436
  * Overall tenor of the compound. "mixed" covers conditional numbers that are fortunate only alongside a favorable single number or in a specific domain.
30653
32437
  */
@@ -30660,7 +32444,7 @@ export type CalculateChaldeanResponses = {
30660
32444
  * For numbers 33 to 52, the lower compound in the same series whose meaning this number shares.
30661
32445
  */
30662
32446
  sameAs?: number;
30663
- };
32447
+ } | null;
30664
32448
  };
30665
32449
  numberMeaning: {
30666
32450
  /**
@@ -30829,7 +32613,7 @@ export type GetCompoundNumberResponses = {
30829
32613
  /**
30830
32614
  * Classical symbolic title from Cheiro, or null when none is given.
30831
32615
  */
30832
- name: string;
32616
+ name: string | null;
30833
32617
  /**
30834
32618
  * Overall tenor of the number. "mixed" marks conditional numbers, fortunate only with a favorable single number or in one domain.
30835
32619
  */
@@ -31002,7 +32786,7 @@ export type CalculateDualResponses = {
31002
32786
  /**
31003
32787
  * Chaldean compound number (10 to 52), the hidden influence, or null.
31004
32788
  */
31005
- compound: number;
32789
+ compound: number | null;
31006
32790
  /**
31007
32791
  * Chaldean root (1 to 9).
31008
32792
  */
@@ -31038,7 +32822,7 @@ export type CalculateDualResponses = {
31038
32822
  /**
31039
32823
  * Symbolic title.
31040
32824
  */
31041
- name: string;
32825
+ name: string | null;
31042
32826
  /**
31043
32827
  * Tenor of the compound.
31044
32828
  */
@@ -31051,7 +32835,7 @@ export type CalculateDualResponses = {
31051
32835
  * Series equivalent for 33 to 52.
31052
32836
  */
31053
32837
  sameAs?: number;
31054
- };
32838
+ } | null;
31055
32839
  };
31056
32840
  /**
31057
32841
  * True when both systems reduce to the same single-digit energy (Pythagorean number reduced to one digit equals the Chaldean root). Agreement is read as a name whose vibrations are in harmony.
@@ -31198,7 +32982,7 @@ export type CalculateBusinessNameResponses = {
31198
32982
  /**
31199
32983
  * Chaldean compound number (10 to 52), the hidden influence, or null.
31200
32984
  */
31201
- compound: number;
32985
+ compound: number | null;
31202
32986
  /**
31203
32987
  * Single-digit business root (1 to 9), the outward commercial expression.
31204
32988
  */
@@ -31238,7 +33022,7 @@ export type CalculateBusinessNameResponses = {
31238
33022
  /**
31239
33023
  * Symbolic title, if any.
31240
33024
  */
31241
- name: string;
33025
+ name: string | null;
31242
33026
  /**
31243
33027
  * Tenor of the compound.
31244
33028
  */
@@ -31251,7 +33035,7 @@ export type CalculateBusinessNameResponses = {
31251
33035
  * Series equivalent for 33 to 52.
31252
33036
  */
31253
33037
  sameAs?: number;
31254
- };
33038
+ } | null;
31255
33039
  /**
31256
33040
  * One-line plain-language verdict for the business name.
31257
33041
  */
@@ -31274,7 +33058,7 @@ export type ListCardsData = {
31274
33058
  /**
31275
33059
  * Number of items to skip for pagination. Default 0.
31276
33060
  */
31277
- offset?: number;
33061
+ offset?: number | null;
31278
33062
  /**
31279
33063
  * Filter by arcana type. Major arcana (0-21) represents life lessons and spiritual themes. Minor arcana (Ace-King in 4 suits) represents daily situations and practical matters.
31280
33064
  */
@@ -31286,7 +33070,7 @@ export type ListCardsData = {
31286
33070
  /**
31287
33071
  * Filter by card number. Major Arcana: 0 (The Fool) through 21 (The World). Minor Arcana: 1 (Ace) through 14 (King). Combine with arcana or suit filters for precise results.
31288
33072
  */
31289
- number?: number;
33073
+ number?: number | null;
31290
33074
  };
31291
33075
  url: '/tarot/cards';
31292
33076
  };
@@ -31974,6 +33758,10 @@ export type CastYesNoResponses = {
31974
33758
  * The querent question that was asked, if one was provided.
31975
33759
  */
31976
33760
  question?: string;
33761
+ /**
33762
+ * The seed used for this draw, echoed back when one was supplied. Present only if the request carried a seed. Makes a cached or forwarded response self describing, so a reading can be reproduced or shared without the original request beside it.
33763
+ */
33764
+ seed?: string;
31977
33765
  /**
31978
33766
  * Tarot-derived answer. Yes = upright card supports a positive outcome. No = reversed card suggests obstacles. Maybe = inherently ambiguous card drawn (The Hanged Man, Wheel of Fortune, Temperance, Two of Swords, Four of Swords) signaling pause, reflection, or shifting circumstances.
31979
33767
  */
@@ -32173,7 +33961,7 @@ export type CastThreeCardResponses = {
32173
33961
  card: DrawnCard;
32174
33962
  }>;
32175
33963
  /**
32176
- * AI-generated narrative connecting all cards in the spread into a cohesive reading.
33964
+ * Narrative summary that connects the cards drawn across the spread positions into one cohesive reading.
32177
33965
  */
32178
33966
  summary?: string;
32179
33967
  };
@@ -32181,7 +33969,13 @@ export type CastThreeCardResponses = {
32181
33969
  export type CastThreeCardResponse = CastThreeCardResponses[keyof CastThreeCardResponses];
32182
33970
  export type CastCelticCrossData = {
32183
33971
  body: {
33972
+ /**
33973
+ * Optional querent question to focus the Celtic Cross. It is echoed back on the reading and gives the ten positions their context. Omit for a general reading of the situation.
33974
+ */
32184
33975
  question?: string;
33976
+ /**
33977
+ * Optional seed for reproducible results. The same seed always draws the same ten cards into the same Celtic Cross positions, which is what lets a reading be shared or re-rendered. Omit for a random draw.
33978
+ */
32185
33979
  seed?: string;
32186
33980
  };
32187
33981
  path?: never;
@@ -32331,7 +34125,7 @@ export type CastCelticCrossResponses = {
32331
34125
  card: DrawnCard;
32332
34126
  }>;
32333
34127
  /**
32334
- * AI-generated narrative connecting all cards in the spread into a cohesive reading.
34128
+ * Narrative summary that connects the cards drawn across the spread positions into one cohesive reading.
32335
34129
  */
32336
34130
  summary?: string;
32337
34131
  };
@@ -32339,7 +34133,13 @@ export type CastCelticCrossResponses = {
32339
34133
  export type CastCelticCrossResponse = CastCelticCrossResponses[keyof CastCelticCrossResponses];
32340
34134
  export type CastLoveSpreadData = {
32341
34135
  body: {
34136
+ /**
34137
+ * Optional querent question to focus the love spread. It is echoed back on the reading and gives the five relationship positions their context. Omit for general relationship guidance.
34138
+ */
32342
34139
  question?: string;
34140
+ /**
34141
+ * Optional seed for reproducible results. The same seed always draws the same five cards into the same love positions, which is what lets a reading be shared or re-rendered. Omit for a random draw.
34142
+ */
32343
34143
  seed?: string;
32344
34144
  };
32345
34145
  path?: never;
@@ -32489,7 +34289,7 @@ export type CastLoveSpreadResponses = {
32489
34289
  card: DrawnCard;
32490
34290
  }>;
32491
34291
  /**
32492
- * AI-generated narrative connecting all cards in the spread into a cohesive reading.
34292
+ * Narrative summary that connects the cards drawn across the spread positions into one cohesive reading.
32493
34293
  */
32494
34294
  summary?: string;
32495
34295
  };
@@ -32497,7 +34297,13 @@ export type CastLoveSpreadResponses = {
32497
34297
  export type CastLoveSpreadResponse = CastLoveSpreadResponses[keyof CastLoveSpreadResponses];
32498
34298
  export type CastCareerSpreadData = {
32499
34299
  body: {
34300
+ /**
34301
+ * Optional querent question to focus the career spread. It is echoed back on the reading and gives the five career positions their context. Omit for general work and vocation guidance.
34302
+ */
32500
34303
  question?: string;
34304
+ /**
34305
+ * Optional seed for reproducible results. The same seed always draws the same five cards into the same career positions, which is what lets a reading be shared or re-rendered. Omit for a random draw.
34306
+ */
32501
34307
  seed?: string;
32502
34308
  };
32503
34309
  path?: never;
@@ -32647,7 +34453,7 @@ export type CastCareerSpreadResponses = {
32647
34453
  card: DrawnCard;
32648
34454
  }>;
32649
34455
  /**
32650
- * AI-generated narrative connecting all cards in the spread into a cohesive reading.
34456
+ * Narrative summary that connects the cards drawn across the spread positions into one cohesive reading.
32651
34457
  */
32652
34458
  summary?: string;
32653
34459
  };
@@ -32827,10 +34633,6 @@ export type CastCustomSpreadResponses = {
32827
34633
  interpretation: string;
32828
34634
  card: DrawnCard;
32829
34635
  }>;
32830
- /**
32831
- * AI-generated narrative connecting all cards in the spread into a cohesive reading.
32832
- */
32833
- summary?: string;
32834
34636
  };
32835
34637
  };
32836
34638
  export type CastCustomSpreadResponse = CastCustomSpreadResponses[keyof CastCustomSpreadResponses];
@@ -33456,7 +35258,7 @@ export type GetCriticalDaysResponses = {
33456
35258
  /**
33457
35259
  * Date where all 3 primary cycles cross zero simultaneously. Extremely rare event. Null if none found in range.
33458
35260
  */
33459
- tripleCriticalDay: string;
35261
+ tripleCriticalDay: string | null;
33460
35262
  };
33461
35263
  };
33462
35264
  export type GetCriticalDaysResponse = GetCriticalDaysResponses[keyof GetCriticalDaysResponses];
@@ -34545,7 +36347,7 @@ export type ListHexagramsData = {
34545
36347
  /**
34546
36348
  * Number of items to skip for pagination. Default 0.
34547
36349
  */
34548
- offset?: number;
36350
+ offset?: number | null;
34549
36351
  };
34550
36352
  url: '/iching/hexagrams';
34551
36353
  };
@@ -35509,7 +37311,7 @@ export type GetCrystalsByZodiacData = {
35509
37311
  /**
35510
37312
  * Number of items to skip for pagination. Default 0.
35511
37313
  */
35512
- offset?: number;
37314
+ offset?: number | null;
35513
37315
  };
35514
37316
  url: '/crystals/zodiac/{sign}';
35515
37317
  };
@@ -35651,11 +37453,11 @@ export type GetCrystalsByZodiacResponses = {
35651
37453
  /**
35652
37454
  * URL to crystal photograph for visual identification.
35653
37455
  */
35654
- imageUrl: string;
37456
+ imageUrl: string | null;
35655
37457
  /**
35656
37458
  * Primary colors of this crystal variety. Null when color data is unavailable.
35657
37459
  */
35658
- colors: Array<string>;
37460
+ colors: Array<string> | null;
35659
37461
  }>;
35660
37462
  };
35661
37463
  };
@@ -35680,7 +37482,7 @@ export type GetCrystalsByChakraData = {
35680
37482
  /**
35681
37483
  * Number of items to skip for pagination. Default 0.
35682
37484
  */
35683
- offset?: number;
37485
+ offset?: number | null;
35684
37486
  };
35685
37487
  url: '/crystals/chakra/{chakra}';
35686
37488
  };
@@ -35822,11 +37624,11 @@ export type GetCrystalsByChakraResponses = {
35822
37624
  /**
35823
37625
  * URL to crystal photograph for visual identification.
35824
37626
  */
35825
- imageUrl: string;
37627
+ imageUrl: string | null;
35826
37628
  /**
35827
37629
  * Primary colors of this crystal variety. Null when color data is unavailable.
35828
37630
  */
35829
- colors: Array<string>;
37631
+ colors: Array<string> | null;
35830
37632
  }>;
35831
37633
  };
35832
37634
  };
@@ -35851,7 +37653,7 @@ export type GetCrystalsByElementData = {
35851
37653
  /**
35852
37654
  * Number of items to skip for pagination. Default 0.
35853
37655
  */
35854
- offset?: number;
37656
+ offset?: number | null;
35855
37657
  };
35856
37658
  url: '/crystals/element/{element}';
35857
37659
  };
@@ -35993,11 +37795,11 @@ export type GetCrystalsByElementResponses = {
35993
37795
  /**
35994
37796
  * URL to crystal photograph for visual identification.
35995
37797
  */
35996
- imageUrl: string;
37798
+ imageUrl: string | null;
35997
37799
  /**
35998
37800
  * Primary colors of this crystal variety. Null when color data is unavailable.
35999
37801
  */
36000
- colors: Array<string>;
37802
+ colors: Array<string> | null;
36001
37803
  }>;
36002
37804
  };
36003
37805
  };
@@ -36152,11 +37954,11 @@ export type GetBirthstonesResponses = {
36152
37954
  /**
36153
37955
  * URL to crystal photograph for visual identification.
36154
37956
  */
36155
- imageUrl: string;
37957
+ imageUrl: string | null;
36156
37958
  /**
36157
37959
  * Primary colors of this crystal variety. Null when color data is unavailable.
36158
37960
  */
36159
- colors: Array<string>;
37961
+ colors: Array<string> | null;
36160
37962
  }>;
36161
37963
  };
36162
37964
  };
@@ -36180,7 +37982,7 @@ export type SearchCrystalsData = {
36180
37982
  /**
36181
37983
  * Number of items to skip for pagination. Default 0.
36182
37984
  */
36183
- offset?: number;
37985
+ offset?: number | null;
36184
37986
  };
36185
37987
  url: '/crystals/search';
36186
37988
  };
@@ -36322,11 +38124,11 @@ export type SearchCrystalsResponses = {
36322
38124
  /**
36323
38125
  * URL to crystal photograph for visual identification.
36324
38126
  */
36325
- imageUrl: string;
38127
+ imageUrl: string | null;
36326
38128
  /**
36327
38129
  * Primary colors of this crystal variety. Null when color data is unavailable.
36328
38130
  */
36329
- colors: Array<string>;
38131
+ colors: Array<string> | null;
36330
38132
  }>;
36331
38133
  };
36332
38134
  };
@@ -36494,7 +38296,7 @@ export type GetCrystalPairingsResponses = {
36494
38296
  /**
36495
38297
  * URL to paired crystal photograph.
36496
38298
  */
36497
- imageUrl: string;
38299
+ imageUrl: string | null;
36498
38300
  /**
36499
38301
  * Brief overview of the paired crystal.
36500
38302
  */
@@ -36506,7 +38308,7 @@ export type GetCrystalPairingsResponses = {
36506
38308
  /**
36507
38309
  * Healing property keywords for the paired crystal. Null when keyword data is unavailable.
36508
38310
  */
36509
- keywords: Array<string>;
38311
+ keywords: Array<string> | null;
36510
38312
  }>;
36511
38313
  };
36512
38314
  };
@@ -36657,7 +38459,7 @@ export type GetDailyCrystalResponses = {
36657
38459
  /**
36658
38460
  * URL to crystal photograph. Use for daily crystal card display and visual features.
36659
38461
  */
36660
- imageUrl: string;
38462
+ imageUrl: string | null;
36661
38463
  /**
36662
38464
  * Overview of the crystal covering primary healing purpose and benefits.
36663
38465
  */
@@ -36669,7 +38471,7 @@ export type GetDailyCrystalResponses = {
36669
38471
  /**
36670
38472
  * Zodiac signs this crystal is traditionally associated with. Null when zodiac data is unavailable.
36671
38473
  */
36672
- zodiacSigns: Array<string>;
38474
+ zodiacSigns: Array<string> | null;
36673
38475
  /**
36674
38476
  * Positive affirmation aligned with the selected crystal. Use for daily affirmation features and meditation guidance.
36675
38477
  */
@@ -36806,7 +38608,7 @@ export type GetRandomCrystalResponses = {
36806
38608
  /**
36807
38609
  * URL to crystal photograph for visual display.
36808
38610
  */
36809
- imageUrl: string;
38611
+ imageUrl: string | null;
36810
38612
  /**
36811
38613
  * Overview of the crystal covering primary healing purpose and benefits.
36812
38614
  */
@@ -36818,7 +38620,7 @@ export type GetRandomCrystalResponses = {
36818
38620
  /**
36819
38621
  * Zodiac signs this crystal is traditionally associated with. Null when zodiac data is unavailable.
36820
38622
  */
36821
- zodiacSigns: Array<string>;
38623
+ zodiacSigns: Array<string> | null;
36822
38624
  /**
36823
38625
  * Positive affirmation aligned with the selected crystal energy.
36824
38626
  */
@@ -37109,7 +38911,7 @@ export type ListCrystalsData = {
37109
38911
  /**
37110
38912
  * Number of items to skip for pagination. Default 0.
37111
38913
  */
37112
- offset?: number;
38914
+ offset?: number | null;
37113
38915
  };
37114
38916
  url: '/crystals';
37115
38917
  };
@@ -37247,11 +39049,11 @@ export type ListCrystalsResponses = {
37247
39049
  /**
37248
39050
  * URL to crystal photograph for visual identification.
37249
39051
  */
37250
- imageUrl: string;
39052
+ imageUrl: string | null;
37251
39053
  /**
37252
39054
  * Primary colors of this crystal variety. Null when color data is unavailable.
37253
39055
  */
37254
- colors: Array<string>;
39056
+ colors: Array<string> | null;
37255
39057
  /**
37256
39058
  * Chakra energy centers this crystal resonates with. One of: Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown.
37257
39059
  */
@@ -37407,7 +39209,7 @@ export type GetCrystalResponses = {
37407
39209
  /**
37408
39210
  * URL to a high-quality crystal photograph. Use for visual crystal guides, product listings, and crystal identification features.
37409
39211
  */
37410
- imageUrl: string;
39212
+ imageUrl: string | null;
37411
39213
  /**
37412
39214
  * Overview of the crystal covering its primary healing purpose, spiritual significance, and key benefits.
37413
39215
  */
@@ -37419,7 +39221,7 @@ export type GetCrystalResponses = {
37419
39221
  /**
37420
39222
  * Spiritual and metaphysical healing properties including energy work, meditation benefits, and higher consciousness connections. Null when spiritual interpretation is unavailable.
37421
39223
  */
37422
- spiritual: string;
39224
+ spiritual: string | null;
37423
39225
  /**
37424
39226
  * Emotional healing properties including stress relief, relationship support, and emotional balance benefits.
37425
39227
  */
@@ -37427,7 +39229,7 @@ export type GetCrystalResponses = {
37427
39229
  /**
37428
39230
  * Physical healing associations traditionally attributed to this crystal in crystal healing practice. Null when physical healing data is unavailable.
37429
39231
  */
37430
- physical: string;
39232
+ physical: string | null;
37431
39233
  };
37432
39234
  /**
37433
39235
  * Chakra energy centers this crystal resonates with. One of: Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown.
@@ -37436,19 +39238,19 @@ export type GetCrystalResponses = {
37436
39238
  /**
37437
39239
  * Zodiac signs this crystal is traditionally associated with. Null when zodiac data is unavailable. Useful for personalized crystal recommendations based on birth chart.
37438
39240
  */
37439
- zodiacSigns: Array<string>;
39241
+ zodiacSigns: Array<string> | null;
37440
39242
  /**
37441
39243
  * Ruling planet or celestial body associated with this crystal in astrological tradition. Null when planetary association is unavailable.
37442
39244
  */
37443
- planet: string;
39245
+ planet: string | null;
37444
39246
  /**
37445
39247
  * Elemental associations (Earth, Water, Fire, Air, Storm) connecting the crystal to natural forces and energy types. Null when elemental data is unavailable.
37446
39248
  */
37447
- elements: Array<string>;
39249
+ elements: Array<string> | null;
37448
39250
  /**
37449
39251
  * Primary colors of this crystal variety. Null when color data is unavailable. Useful for color-based crystal selection and filtering.
37450
39252
  */
37451
- colors: Array<string>;
39253
+ colors: Array<string> | null;
37452
39254
  /**
37453
39255
  * Mohs hardness scale rating (1-10). Indicates durability for jewelry use. Quartz family is 7, Diamond is 10, Selenite is 2.
37454
39256
  */
@@ -37458,13 +39260,13 @@ export type GetCrystalResponses = {
37458
39260
  */
37459
39261
  numericalVibration: number;
37460
39262
  /**
37461
- * Five to nine keywords capturing the core healing properties and spiritual themes of this crystal. Null when keyword data is unavailable.
39263
+ * Keywords capturing the core healing properties and spiritual themes of this crystal. The count varies by stone, from a single keyword up to twenty. Null when keyword data is unavailable.
37462
39264
  */
37463
- keywords: Array<string>;
39265
+ keywords: Array<string> | null;
37464
39266
  /**
37465
39267
  * Birth month (1-12) if this crystal is a traditional birthstone. Null if not a birthstone. January is 1, December is 12.
37466
39268
  */
37467
- birthMonth: number;
39269
+ birthMonth: number | null;
37468
39270
  /**
37469
39271
  * Positive affirmation aligned with this crystal energy. Use for meditation, journaling, or daily affirmation features.
37470
39272
  */
@@ -37495,7 +39297,7 @@ export type SearchDreamSymbolsData = {
37495
39297
  /**
37496
39298
  * Number of items to skip for pagination. Default 0.
37497
39299
  */
37498
- offset?: number;
39300
+ offset?: number | null;
37499
39301
  };
37500
39302
  url: '/dreams/symbols';
37501
39303
  };
@@ -38176,7 +39978,7 @@ export type ListAngelNumbersData = {
38176
39978
  /**
38177
39979
  * Number of items to skip for pagination. Default 0.
38178
39980
  */
38179
- offset?: number;
39981
+ offset?: number | null;
38180
39982
  /**
38181
39983
  * Filter results by angel number pattern type. "repeating" returns numbers like 111, 444, 7777. "sequential" returns patterns like 1234. "mirror" returns palindrome or alternating patterns like 1212, 717. "master" returns 11, 22, 33. "root" returns single digits 0-9. "compound" returns mixed sequences with no pure pattern like 911, 1122.
38182
39984
  */
@@ -38759,7 +40561,7 @@ export type AnalyzeNumberSequenceResponses = {
38759
40561
  * Actionable steps when you see this number.
38760
40562
  */
38761
40563
  actionSteps: Array<string>;
38762
- };
40564
+ } | null;
38763
40565
  /**
38764
40566
  * The foundational meaning of this number based on its digit root. Every number reduces to a root digit (0-9) or master number (11, 22, 33), which provides the base interpretation even for unknown sequences.
38765
40567
  */
@@ -38780,10 +40582,25 @@ export type AnalyzeNumberSequenceResponses = {
38780
40582
  * Full life-area interpretation of the underlying root digit. For an unknown sequence this is the substantive reading to display, so a synchronicity app never dead-ends on an arbitrary number.
38781
40583
  */
38782
40584
  meaning: {
40585
+ /**
40586
+ * Spiritual interpretation of the root digit, covering divine guidance, higher purpose, and metaphysical significance.
40587
+ */
38783
40588
  spiritual: string;
40589
+ /**
40590
+ * Love and relationship interpretation of the root digit, for singles, couples, and those healing from past relationships.
40591
+ */
38784
40592
  love: string;
40593
+ /**
40594
+ * Career and vocation guidance for the root digit. Money and finances are returned separately in the money field.
40595
+ */
38785
40596
  career: string;
40597
+ /**
40598
+ * Money, finances, and material abundance guidance for the root digit, kept distinct from career.
40599
+ */
38786
40600
  money: string;
40601
+ /**
40602
+ * Twin flame interpretation of the root digit, covering union, separation, and spiritual growth.
40603
+ */
38787
40604
  twinFlame: string;
38788
40605
  };
38789
40606
  /**
@@ -38794,7 +40611,7 @@ export type AnalyzeNumberSequenceResponses = {
38794
40611
  * Affirmation for the root digit.
38795
40612
  */
38796
40613
  affirmation: string;
38797
- };
40614
+ } | null;
38798
40615
  /**
38799
40616
  * Present only when the context query parameter is supplied. A short reading layered on top of the meaning that accounts for WHERE the number was seen (clock, receipt, license plate, phone, address, price), since the place of a sighting shifts its emphasis.
38800
40617
  */
@@ -39024,7 +40841,7 @@ export type SearchCitiesData = {
39024
40841
  /**
39025
40842
  * Number of items to skip for pagination. Default 0.
39026
40843
  */
39027
- offset?: number;
40844
+ offset?: number | null;
39028
40845
  };
39029
40846
  url: '/location/search';
39030
40847
  };
@@ -39202,7 +41019,7 @@ export type ListCountriesData = {
39202
41019
  /**
39203
41020
  * Number of items to skip for pagination. Default 0.
39204
41021
  */
39205
- offset?: number;
41022
+ offset?: number | null;
39206
41023
  };
39207
41024
  url: '/location/countries';
39208
41025
  };
@@ -39365,7 +41182,7 @@ export type GetCitiesByCountryData = {
39365
41182
  /**
39366
41183
  * Number of items to skip for pagination. Default 0.
39367
41184
  */
39368
- offset?: number;
41185
+ offset?: number | null;
39369
41186
  };
39370
41187
  url: '/location/countries/{iso2}';
39371
41188
  };
@@ -39651,12 +41468,33 @@ export type GetUsageStatsResponses = {
39651
41468
  * Usage statistics retrieved
39652
41469
  */
39653
41470
  200: {
41471
+ /**
41472
+ * Name of the subscription plan the API key belongs to. One flat plan covers every domain and the Remote MCP servers, so this is a quota tier, never a per product entitlement.
41473
+ */
39654
41474
  plan: string;
41475
+ /**
41476
+ * Billable requests counted against the current calendar month. Read from the same counter the rate limiter enforces on, so it never reports a rosier number than the limit that will 429 you. Cached responses still count.
41477
+ */
39655
41478
  usedThisMonth: number;
41479
+ /**
41480
+ * Monthly request allowance for the plan. One request, API or MCP, equals one unit: there is no credit weighting and no per domain fee.
41481
+ */
39656
41482
  requestsPerMonth: number;
41483
+ /**
41484
+ * Requests left before the monthly allowance is exhausted, floored at zero. Equal to requestsPerMonth minus usedThisMonth.
41485
+ */
39657
41486
  remainingThisMonth: number;
41487
+ /**
41488
+ * Billing email the subscription is registered under.
41489
+ */
39658
41490
  email: string;
41491
+ /**
41492
+ * Subscription lifecycle state. Values: active, cancelled (no longer renewing but usable until endDate), suspended (payment failed, usable until endDate), expired (past endDate), pending (checkout started, payment not captured).
41493
+ */
39659
41494
  status: string;
41495
+ /**
41496
+ * ISO 8601 timestamp when the current billing period ends. A renewal extends this date in place. API access survives a cancelled or suspended status until this moment passes.
41497
+ */
39660
41498
  endDate: string;
39661
41499
  };
39662
41500
  };