@roxyapi/sdk 1.2.29 → 1.2.31

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.
@@ -9,7 +9,9 @@ import { createRoxy } from '@roxyapi/sdk';
9
9
  const roxy = createRoxy(process.env.ROXY_API_KEY!);
10
10
  ```
11
11
 
12
- **Multi-language responses.** Interpretations are available in 8 languages: `en`, `tr`, `de`, `es`, `fr`, `hi`, `pt`, `ru`. Pass `query: { lang }` on any supported endpoint. Supported: astrology, vedicAstrology, tarot, numerology, crystals, iching, angelNumbers, biorhythm. English-only: dreams, location, usage. Languages without translations yet fall back to English.
12
+ <!-- BEGIN:LANGS -->
13
+ **Multi-language responses.** Interpretations are available in 8 languages: `en`, `tr`, `de`, `es`, `hi`, `pt`, `fr`, `ru`. Pass `query: { lang }` on any supported endpoint. Supported: astrology, vedicAstrology, numerology, tarot, humanDesign, forecast, biorhythm, iching, crystals, angelNumbers. English-only: dreams, location, usage, languages. Languages without translations yet fall back to English.
14
+ <!-- END:LANGS -->
13
15
 
14
16
  ```typescript
15
17
  const { data } = await roxy.astrology.getDailyHoroscope({
@@ -20,693 +22,1269 @@ const { data } = await roxy.astrology.getDailyHoroscope({
20
22
 
21
23
  ---
22
24
 
23
- ## Astrology (Western) `roxy.astrology`
25
+ <!-- Method sections below are generated from the OpenAPI spec by scripts/sync-docs.ts. Do not hand-edit between the BEGIN/END:METHODS markers; edit the spec instead. The intro above and the Error Handling / Advanced / Links sections below are curated. -->
26
+ <!-- BEGIN:METHODS -->
24
27
 
25
- Tropical zodiac, Placidus houses, positions verified against NASA JPL Horizons.
28
+ ## Western Astrology `roxy.astrology`
26
29
 
27
- ### Horoscopes
30
+ Production-ready Western astrology API + remote MCP for AI agents and developers
28
31
 
29
32
  ```typescript
30
- // Daily horoscope for one sign
31
- const { data } = await roxy.astrology.getDailyHoroscope({
32
- path: { sign: 'aries' },
33
- });
34
- // Returns: { sign, date, overview, love, career, health, finance, advice, luckyNumber, luckyColor, compatibleSigns }
35
-
36
- // All 12 daily horoscopes
37
- const { data } = await roxy.astrology.getAllDailyHoroscopes();
38
-
39
- // Weekly horoscope
40
- const { data } = await roxy.astrology.getWeeklyHoroscope({ path: { sign: 'aries' } });
41
-
42
- // Monthly horoscope
43
- const { data } = await roxy.astrology.getMonthlyHoroscope({ path: { sign: 'aries' } });
44
- ```
45
-
46
- Valid signs: `aries`, `taurus`, `gemini`, `cancer`, `leo`, `virgo`, `libra`, `scorpio`, `sagittarius`, `capricorn`, `aquarius`, `pisces`
47
-
48
- ### Zodiac Signs and Planets
49
-
50
- ```typescript
51
- // All 12 zodiac signs
33
+ // Get all zodiac signs - Complete zodiac signs list with dates and elements
52
34
  const { data } = await roxy.astrology.listZodiacSigns();
53
35
 
54
- // Single sign details (personality, compatibility, traits)
55
- const { data } = await roxy.astrology.getZodiacSign({ path: { identifier: 'aries' } });
36
+ // Get zodiac sign details - Complete astrology sign profile with personality traits
37
+ const { data } = await roxy.astrology.getZodiacSign({ path: { id: 'aries' } });
56
38
 
57
- // All 10 planet meanings
39
+ // Get all planet meanings - Complete astrology planet interpretations list
58
40
  const { data } = await roxy.astrology.listPlanetMeanings();
59
41
 
60
- // Single planet details
61
- const { data } = await roxy.astrology.getPlanetMeaning({ path: { identifier: 'venus' } });
62
- ```
63
-
64
- ### Birth Charts and Calculations
65
-
66
- All POST. Body requires: `date` (YYYY-MM-DD), `time` (HH:MM:SS), `latitude`, `longitude`. Optional: `timezone` (IANA, e.g. "America/New_York").
42
+ // Get planet meaning details - Complete astrology planet interpretation
43
+ const { data } = await roxy.astrology.getPlanetMeaning({ path: { id: 'sun' } });
67
44
 
68
- ```typescript
69
- // Natal chart — 10 planets, 12 houses, aspects
45
+ // Generate natal chart - Birth chart calculator API with houses and aspects
70
46
  const { data } = await roxy.astrology.generateNatalChart({
71
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
47
+ body: {
48
+ date: '1990-07-15',
49
+ time: '14:30:00',
50
+ latitude: 40.7128,
51
+ longitude: -74.006,
52
+ timezone: -5,
53
+ houseSystem: 'placidus',
54
+ },
72
55
  });
73
56
 
74
- // Planetary positions (ephemeris)
57
+ // Get planetary positions - Ephemeris calculator for all planets
75
58
  const { data } = await roxy.astrology.getPlanetaryPositions({
76
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
59
+ body: {
60
+ date: '2025-12-18',
61
+ time: '12:00:00',
62
+ latitude: 40.7128,
63
+ longitude: -74.006,
64
+ timezone: -5,
65
+ },
77
66
  });
78
67
 
79
- // House cusps (Placidus, Whole Sign, Equal, Koch)
80
- const { data } = await roxy.astrology.calculateHouses({
81
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209, houseSystem: 'placidus' },
68
+ // Get current moon phase - Lunar phase calculator with zodiac sign
69
+ const { data } = await roxy.astrology.getCurrentMoonPhase({
70
+ query: { date: '2025-12-18', time: '12:00:00', timezone: 0 },
82
71
  });
83
72
 
84
- // Planetary aspects
85
- const { data } = await roxy.astrology.calculateAspects({
86
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
87
- });
73
+ // Get upcoming moon phases - Next new moon, full moon, quarters
74
+ const { data } = await roxy.astrology.getUpcomingMoonPhases({ query: { startDate: '2025-12-18', count: 8 } });
88
75
 
89
- // Transits (current planets vs natal)
90
- const { data } = await roxy.astrology.calculateTransits({
91
- body: { date: '2026-03-27', time: '12:00:00', latitude: 28.6139, longitude: 77.209 },
92
- });
76
+ // Get lunar calendar - Moon phases for entire month
77
+ const { data } = await roxy.astrology.getMoonCalendar({ path: { year: 2026, month: 3 } });
93
78
 
94
- // Transit aspects with interpretations
95
- const { data } = await roxy.astrology.calculateTransitAspects({
96
- body: { date: '2026-03-27', time: '12:00:00', latitude: 28.6139, longitude: 77.209 },
79
+ // Calculate synastry - Relationship compatibility analysis API
80
+ const { data } = await roxy.astrology.calculateSynastry({
81
+ body: {
82
+ person1: {
83
+ date: '1990-07-15',
84
+ time: '14:30:00',
85
+ latitude: 40.7128,
86
+ longitude: -74.006,
87
+ timezone: -5,
88
+ name: 'Alex',
89
+ },
90
+ person2: {
91
+ date: '1990-07-15',
92
+ time: '14:30:00',
93
+ latitude: 40.7128,
94
+ longitude: -74.006,
95
+ timezone: -5,
96
+ name: 'Alex',
97
+ },
98
+ houseSystem: 'placidus',
99
+ },
97
100
  });
98
- ```
99
101
 
100
- ### Compatibility and Returns
102
+ // Calculate house cusps - House system calculator with comparison
103
+ const { data } = await roxy.astrology.calculateHouses({
104
+ body: {
105
+ date: '1990-07-15',
106
+ time: '14:30:00',
107
+ latitude: 40.7128,
108
+ longitude: -74.006,
109
+ timezone: -5,
110
+ houseSystem: 'placidus',
111
+ },
112
+ });
101
113
 
102
- ```typescript
103
- // Compatibility score (0-100 with category breakdown)
104
- const { data } = await roxy.astrology.calculateCompatibility({
114
+ // Calculate planetary aspects - Aspect finder for any date and time
115
+ const { data } = await roxy.astrology.calculateAspects({
105
116
  body: {
106
- person1: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
107
- person2: { date: '1992-06-20', time: '09:00:00', latitude: 19.07, longitude: 72.87 },
117
+ date: '1990-07-15',
118
+ time: '14:30:00',
119
+ timezone: -5,
120
+ planets: ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars'],
121
+ aspectTypes: ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE'],
108
122
  },
109
123
  });
110
124
 
111
- // Synastry (relationship aspects between two charts)
112
- const { data } = await roxy.astrology.calculateSynastry({
125
+ // Detect aspect patterns - Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle, Stellium
126
+ const { data } = await roxy.astrology.detectAspectPatterns({
127
+ query: { strictOrbs: 'false', include: '' },
113
128
  body: {
114
- person1: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
115
- person2: { date: '1992-06-20', time: '09:00:00', latitude: 19.07, longitude: 72.87 },
129
+ date: '1955-02-24',
130
+ time: '19:15:00',
131
+ latitude: 37.77,
132
+ longitude: -122.42,
133
+ timezone: -8,
116
134
  },
117
135
  });
118
136
 
119
- // Composite chart (midpoint relationship chart)
120
- const { data } = await roxy.astrology.generateCompositeChart({
137
+ // Calculate planetary transits - Current transits with natal chart comparison
138
+ const { data } = await roxy.astrology.calculateTransits({
139
+ body: { date: '2025-12-19', time: '12:00:00', timezone: 0 },
140
+ });
141
+
142
+ // Transit Aspects - Detailed transit-to-natal aspect analysis with interpretations
143
+ const { data } = await roxy.astrology.calculateTransitAspects({
121
144
  body: {
122
- person1: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
123
- person2: { date: '1992-06-20', time: '09:00:00', latitude: 19.07, longitude: 72.87 },
145
+ natalChart: {
146
+ date: '1990-07-15',
147
+ time: '14:30:00',
148
+ latitude: 40.7128,
149
+ longitude: -74.006,
150
+ timezone: -5,
151
+ },
152
+ transitDate: '2026-02-03',
153
+ transitTime: '12:00:00',
154
+ minStrength: 50,
124
155
  },
125
156
  });
126
157
 
127
- // Solar return (annual birthday chart)
158
+ // Solar Return Chart - Annual birthday forecast with relocated chart
128
159
  const { data } = await roxy.astrology.generateSolarReturn({
129
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
160
+ body: {
161
+ birthDate: '1990-07-15',
162
+ birthTime: '14:30:00',
163
+ returnYear: 2026,
164
+ latitude: 40.7128,
165
+ longitude: -74.006,
166
+ timezone: -5,
167
+ houseSystem: 'placidus',
168
+ },
130
169
  });
131
170
 
132
- // Lunar return (monthly emotional forecast)
171
+ // Lunar Return Chart - Monthly emotional forecast with Moon cycle chart
133
172
  const { data } = await roxy.astrology.generateLunarReturn({
134
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
173
+ body: {
174
+ birthDate: '1990-07-15',
175
+ birthTime: '14:30:00',
176
+ returnDate: '2026-02-12',
177
+ latitude: 40.7128,
178
+ longitude: -74.006,
179
+ timezone: -5,
180
+ houseSystem: 'placidus',
181
+ },
135
182
  });
136
183
 
137
- // Planetary return (Mercury, Venus, Mars, Jupiter, Saturn)
138
- const { data } = await roxy.astrology.generatePlanetaryReturn({
139
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
184
+ // Composite Chart - Midpoint relationship chart with interpretations
185
+ const { data } = await roxy.astrology.generateCompositeChart({
186
+ body: {
187
+ person1: {
188
+ date: '1990-07-15',
189
+ time: '14:30:00',
190
+ latitude: 40.7128,
191
+ longitude: -74.006,
192
+ timezone: -5,
193
+ },
194
+ person2: {
195
+ date: '1990-07-15',
196
+ time: '14:30:00',
197
+ latitude: 40.7128,
198
+ longitude: -74.006,
199
+ timezone: -5,
200
+ },
201
+ houseSystem: 'placidus',
202
+ },
140
203
  });
141
- ```
142
204
 
143
- ### Moon Phases
205
+ // Compatibility Score. Relationship compatibility analysis with category breakdown
206
+ const { data } = await roxy.astrology.calculateCompatibility({
207
+ body: {
208
+ person1: {
209
+ date: '1990-07-15',
210
+ time: '14:30:00',
211
+ latitude: 40.7128,
212
+ longitude: -74.006,
213
+ timezone: -5,
214
+ },
215
+ person2: {
216
+ date: '1990-07-15',
217
+ time: '14:30:00',
218
+ latitude: 40.7128,
219
+ longitude: -74.006,
220
+ timezone: -5,
221
+ },
222
+ },
223
+ });
144
224
 
145
- ```typescript
146
- // Current moon phase
147
- const { data } = await roxy.astrology.getCurrentMoonPhase();
148
- // Returns: { date, phase, illumination, age, sign, degree, distance, meaning }
225
+ // Daily horoscope by zodiac sign - Transit-based forecast with house activations
226
+ const { data } = await roxy.astrology.getDailyHoroscope({ path: { sign: 'aries' }, query: { date: '2026-04-03' } });
149
227
 
150
- // Upcoming phase transitions
151
- const { data } = await roxy.astrology.getUpcomingMoonPhases();
228
+ // Weekly horoscope by zodiac sign - 7-day transit forecast
229
+ const { data } = await roxy.astrology.getWeeklyHoroscope({ path: { sign: 'aries' } });
152
230
 
153
- // Monthly moon calendar
154
- const { data } = await roxy.astrology.getMoonCalendar({ path: { year: 2026, month: 3 } });
231
+ // Monthly horoscope by zodiac sign - 30-day transit forecast with key dates
232
+ const { data } = await roxy.astrology.getMonthlyHoroscope({ path: { sign: 'aries' } });
233
+
234
+ // Planetary Return Chart - Saturn return, Jupiter return, and inner planet cycles
235
+ const { data } = await roxy.astrology.generatePlanetaryReturn({
236
+ body: {
237
+ birthDate: '1990-07-15',
238
+ birthTime: '14:30:00',
239
+ planet: 'Jupiter',
240
+ approximateDate: '2026-08-15',
241
+ latitude: 40.7128,
242
+ longitude: -74.006,
243
+ timezone: -5,
244
+ houseSystem: 'placidus',
245
+ },
246
+ });
155
247
  ```
156
248
 
157
249
  ---
158
250
 
159
251
  ## Vedic Astrology — `roxy.vedicAstrology`
160
252
 
161
- Sidereal zodiac (Lahiri ayanamsa), Placidus houses, KP system support.
162
-
163
- ### Birth Charts
253
+ Production-grade Vedic (Jyotish) and KP astrology API + remote MCP for AI agents and developers
164
254
 
165
255
  ```typescript
166
- // Rashi chart (D1)
256
+ // Get birth chart (D1 Rashi chart) - Kundli Calculator API
167
257
  const { data } = await roxy.vedicAstrology.generateBirthChart({
168
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
258
+ body: {
259
+ date: '1990-07-04',
260
+ time: '10:12:00',
261
+ latitude: 28.6139,
262
+ longitude: 77.209,
263
+ timezone: 5.5,
264
+ },
169
265
  });
170
266
 
171
- // Navamsa (D9 marriage compatibility)
267
+ // Get Navamsa chart (D9) - Marriage Compatibility Calculator
172
268
  const { data } = await roxy.vedicAstrology.generateNavamsa({
173
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
269
+ body: {
270
+ date: '1990-07-04',
271
+ time: '10:12:00',
272
+ latitude: 28.6139,
273
+ longitude: 77.209,
274
+ timezone: 5.5,
275
+ },
174
276
  });
175
277
 
176
- // Any divisional chart (D2-D60)
278
+ // Get divisional chart (Varga) - D2 to D60 Calculator
177
279
  const { data } = await roxy.vedicAstrology.generateDivisionalChart({
178
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209, division: 9 },
280
+ body: {
281
+ date: '1990-07-04',
282
+ time: '10:12:00',
283
+ latitude: 28.6139,
284
+ longitude: 77.209,
285
+ timezone: 5.5,
286
+ division: 10,
287
+ },
179
288
  });
180
- ```
181
289
 
182
- ### Planetary Positions
290
+ // Calculate compatibility score - Gun Milan API (Ashtakoot Matching)
291
+ const { data } = await roxy.vedicAstrology.calculateGunMilan({
292
+ body: {
293
+ person1: {
294
+ date: '1990-07-04',
295
+ time: '10:12:00',
296
+ latitude: 28.6139,
297
+ longitude: 77.209,
298
+ timezone: 5.5,
299
+ },
300
+ person2: {
301
+ date: '1990-07-04',
302
+ time: '10:12:00',
303
+ latitude: 28.6139,
304
+ longitude: 77.209,
305
+ timezone: 5.5,
306
+ },
307
+ },
308
+ });
183
309
 
184
- ```typescript
185
- // Sidereal positions (9 planets + Lagna)
310
+ // Get planetary positions - Graha Positions API
186
311
  const { data } = await roxy.vedicAstrology.getPlanetPositions({
187
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
312
+ body: {
313
+ date: '1990-07-04',
314
+ time: '10:12:00',
315
+ latitude: 28.6139,
316
+ longitude: 77.209,
317
+ timezone: 5.5,
318
+ },
188
319
  });
189
320
 
190
- // Monthly ephemeris (daily positions for a month)
321
+ // Monthly Ephemeris - Daily sidereal planetary positions for a month
191
322
  const { data } = await roxy.vedicAstrology.getMonthlyEphemeris({
192
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
323
+ body: { year: 2026, month: 2, coordinateSystem: 'sidereal' },
193
324
  });
194
- ```
195
-
196
- ### Dasha System
197
325
 
198
- ```typescript
199
- // Current Mahadasha/Antardasha/Pratyantardasha
326
+ // Get current Mahadasha, Antardasha, Pratyantardasha - Dasha Calculator API
200
327
  const { data } = await roxy.vedicAstrology.getCurrentDasha({
201
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
328
+ body: {
329
+ date: '1990-07-04',
330
+ time: '10:12:00',
331
+ latitude: 28.6139,
332
+ longitude: 77.209,
333
+ timezone: 5.5,
334
+ },
202
335
  });
203
336
 
204
- // All 9 Mahadasha periods (120-year Vimshottari cycle)
337
+ // Get all 9 Mahadasha periods (120-year cycle)
205
338
  const { data } = await roxy.vedicAstrology.getMajorDashas({
206
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
339
+ body: {
340
+ date: '1990-07-04',
341
+ time: '10:12:00',
342
+ latitude: 28.6139,
343
+ longitude: 77.209,
344
+ timezone: 5.5,
345
+ },
207
346
  });
208
347
 
209
- // Sub-dashas within a Mahadasha
348
+ // Get all Antardashas (sub-periods) for a specific Mahadasha
210
349
  const { data } = await roxy.vedicAstrology.getSubDashas({
211
- path: { mahadasha: 'Venus' },
212
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
350
+ path: { mahadasha: 'Jupiter' },
351
+ body: {
352
+ date: '1990-07-04',
353
+ time: '10:12:00',
354
+ latitude: 28.6139,
355
+ longitude: 77.209,
356
+ timezone: 5.5,
357
+ },
213
358
  });
214
- ```
215
-
216
- ### Panchang
217
359
 
218
- ```typescript
219
- // Basic (Tithi, Nakshatra, Yoga, Karana)
360
+ // Get basic Panchang - Tithi Nakshatra Yoga Karana Calculator
220
361
  const { data } = await roxy.vedicAstrology.getBasicPanchang({
221
- body: { date: '2026-03-27', time: '06:00:00', latitude: 28.6139, longitude: 77.209 },
362
+ body: {
363
+ date: '2025-12-17',
364
+ time: '12:00:00',
365
+ latitude: 28.6139,
366
+ longitude: 77.209,
367
+ timezone: 5.5,
368
+ },
222
369
  });
223
370
 
224
- // Detailed (all 5 limbs + sunrise/sunset/moonrise)
371
+ // Get detailed Panchang with Rahu Kaal, Yamaganda, Gulika
225
372
  const { data } = await roxy.vedicAstrology.getDetailedPanchang({
226
- body: { date: '2026-03-27', time: '06:00:00', latitude: 28.6139, longitude: 77.209 },
373
+ body: {
374
+ date: '2026-02-03',
375
+ latitude: 28.6139,
376
+ longitude: 77.209,
377
+ timezone: 5.5,
378
+ },
227
379
  });
228
380
 
229
- // Choghadiya muhurta
381
+ // Get Choghadiya - 8 Muhurta divisions of day and night
230
382
  const { data } = await roxy.vedicAstrology.getChoghadiya({
231
- body: { date: '2026-03-27', latitude: 28.6139, longitude: 77.209 },
383
+ body: {
384
+ date: '2026-02-03',
385
+ latitude: 17.385044,
386
+ longitude: 78.486671,
387
+ timezone: 5.5,
388
+ },
232
389
  });
233
390
 
234
- // Hora (planetary hours)
391
+ // Get Hora - 24 Planetary Hours (12 day + 12 night)
235
392
  const { data } = await roxy.vedicAstrology.getHora({
236
- body: { date: '2026-03-27', latitude: 28.6139, longitude: 77.209 },
393
+ body: {
394
+ date: '2026-02-03',
395
+ latitude: 17.385044,
396
+ longitude: 78.486671,
397
+ timezone: 5.5,
398
+ },
237
399
  });
238
- ```
239
400
 
240
- ### Doshas
241
-
242
- ```typescript
243
- // Manglik dosha
401
+ // Check Manglik Dosha - Mangal Dosha Calculator API
244
402
  const { data } = await roxy.vedicAstrology.checkManglikDosha({
245
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
403
+ body: {
404
+ date: '1990-07-04',
405
+ time: '10:12:00',
406
+ latitude: 28.6139,
407
+ longitude: 77.209,
408
+ timezone: 5.5,
409
+ },
246
410
  });
247
411
 
248
- // Kalsarpa dosha
412
+ // Check Kalsarpa Dosha - Kalsarpa Yoga Calculator API
249
413
  const { data } = await roxy.vedicAstrology.checkKalsarpaDosha({
250
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
414
+ body: {
415
+ date: '1990-07-04',
416
+ time: '10:12:00',
417
+ latitude: 28.6139,
418
+ longitude: 77.209,
419
+ timezone: 5.5,
420
+ },
251
421
  });
252
422
 
253
- // Sadhesati (Saturn transit)
423
+ // Check Sadhesati - Sade Sati Calculator API (Saturn Transit)
254
424
  const { data } = await roxy.vedicAstrology.checkSadhesati({
255
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
425
+ body: {
426
+ date: '1990-07-04',
427
+ time: '10:12:00',
428
+ latitude: 28.6139,
429
+ longitude: 77.209,
430
+ timezone: 5.5,
431
+ },
256
432
  });
257
- ```
258
433
 
259
- ### Compatibility
434
+ // List all planetary yogas - 300+ Vedic Yoga Glossary
435
+ const { data } = await roxy.vedicAstrology.listYogas();
436
+
437
+ // Get yoga details by ID - Vedic Yoga Glossary Entry
438
+ const { data } = await roxy.vedicAstrology.getYoga({ path: { id: 'gajakesari' } });
260
439
 
261
- ```typescript
262
- // Gun Milan (Ashtakoot matching)
263
- const { data } = await roxy.vedicAstrology.calculateGunMilan({
440
+ // Detect classical Vedic yogas in a birth chart
441
+ const { data } = await roxy.vedicAstrology.detectYogas({
264
442
  body: {
265
- person1: { date: '1990-01-15', time: '14:30:00', latitude: 28.61, longitude: 77.20 },
266
- person2: { date: '1992-06-20', time: '09:00:00', latitude: 19.07, longitude: 72.87 },
443
+ date: '1990-07-04',
444
+ time: '10:12:00',
445
+ latitude: 28.6139,
446
+ longitude: 77.209,
447
+ timezone: 5.5,
267
448
  },
268
449
  });
269
- ```
270
-
271
- ### KP (Krishnamurti Paddhati) System
272
450
 
273
- ```typescript
274
- // KP Ayanamsa value
275
- const { data } = await roxy.vedicAstrology.getKpAyanamsa();
451
+ // Get KP-Newcomb ayanamsa - Dynamic daily calculation
452
+ const { data } = await roxy.vedicAstrology.getKpAyanamsa({ query: { date: '2025-12-26' } });
276
453
 
277
- // KP planet positions with star/sub lords
454
+ // Get KP planetary positions with sub-lords
278
455
  const { data } = await roxy.vedicAstrology.getKpPlanets({
279
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
456
+ body: {
457
+ date: '1990-07-04',
458
+ time: '10:12:00',
459
+ latitude: 28.6139,
460
+ longitude: 77.209,
461
+ timezone: 5.5,
462
+ ayanamsa: 'kp-newcomb',
463
+ ayanamsaValue: 24,
464
+ nodeType: 'mean',
465
+ },
280
466
  });
281
467
 
282
- // KP house cusps with ruling lords
468
+ // Get KP Placidus house cusps with sub-lords
283
469
  const { data } = await roxy.vedicAstrology.getKpCusps({
284
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
470
+ body: {
471
+ date: '1990-07-04',
472
+ time: '10:12:00',
473
+ latitude: 28.6139,
474
+ longitude: 77.209,
475
+ timezone: 5.5,
476
+ ayanamsa: 'kp-newcomb',
477
+ ayanamsaValue: 24,
478
+ },
285
479
  });
286
480
 
287
- // Complete KP chart
481
+ // Generate complete KP birth chart
288
482
  const { data } = await roxy.vedicAstrology.generateKpChart({
289
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
483
+ body: {
484
+ date: '1990-07-04',
485
+ time: '10:12:00',
486
+ latitude: 28.6139,
487
+ longitude: 77.209,
488
+ timezone: 5.5,
489
+ ayanamsa: 'kp-newcomb',
490
+ ayanamsaValue: 24,
491
+ nodeType: 'mean',
492
+ },
290
493
  });
291
494
 
292
- // KP ruling planets (horary)
495
+ // Get KP ruling planets with optional significators
293
496
  const { data } = await roxy.vedicAstrology.getKpRulingPlanets({
294
- body: { date: '2026-03-27', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
497
+ body: {
498
+ latitude: 28.6139,
499
+ longitude: 77.209,
500
+ timezone: 5.5,
501
+ datetime: '2025-01-15T10:30:00Z',
502
+ birthDate: '1990-07-04',
503
+ birthTime: '10:12:00',
504
+ nodeType: 'mean',
505
+ },
295
506
  });
296
507
 
297
- // KP ruling planets at intervals
508
+ // Get KP ruling planets with significators at intervals
298
509
  const { data } = await roxy.vedicAstrology.getKpRulingInterval({
299
- body: { date: '2026-03-27', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
510
+ body: {
511
+ startDatetime: '2026-02-03T00:00:00Z',
512
+ endDatetime: '2026-02-03T01:00:00Z',
513
+ intervalMinutes: 5,
514
+ latitude: 17.385044,
515
+ longitude: 78.486671,
516
+ timezone: 5.5,
517
+ ayanamsa: 'kp-newcomb',
518
+ nodeType: 'mean',
519
+ },
300
520
  });
301
521
 
302
- // KP sublord boundary changes
522
+ // Find KP sublord changes
303
523
  const { data } = await roxy.vedicAstrology.getKpSublordChanges({
304
- body: { date: '2026-03-27', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
524
+ body: {
525
+ planet: 'Moon',
526
+ startDate: '2025-01-01',
527
+ endDate: '2025-01-31',
528
+ timezone: 5.5,
529
+ ayanamsa: 'kp-newcomb',
530
+ nodeType: 'mean',
531
+ },
305
532
  });
306
533
 
307
- // KP rasi (sign) changes
534
+ // Find KP rasi ingress times
308
535
  const { data } = await roxy.vedicAstrology.getKpRasiChanges({
309
- body: { date: '2026-03-27', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
536
+ body: {
537
+ planet: 'Sun',
538
+ startDate: '2025-01-01',
539
+ endDate: '2025-12-31',
540
+ timezone: 5.5,
541
+ ayanamsa: 'kp-newcomb',
542
+ nodeType: 'mean',
543
+ },
310
544
  });
311
545
 
312
- // KP planets at time intervals
546
+ // Get KP planets at time intervals
313
547
  const { data } = await roxy.vedicAstrology.getKpPlanetsInterval({
314
- body: { date: '2026-03-27', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
548
+ body: {
549
+ startDatetime: '2025-01-15T00:00:00Z',
550
+ endDatetime: '2025-01-15T23:59:00Z',
551
+ intervalMinutes: 60,
552
+ latitude: 28.6139,
553
+ longitude: 77.209,
554
+ timezone: 5.5,
555
+ ayanamsa: 'kp-newcomb',
556
+ nodeType: 'mean',
557
+ },
315
558
  });
316
- ```
317
-
318
- ### Aspects, Transits, Parallels
319
559
 
320
- ```typescript
321
- // Planetary aspects (Drishti)
560
+ // Get planetary aspects (Drishti) - Mutual aspects between all planets
322
561
  const { data } = await roxy.vedicAstrology.calculateDrishti({
323
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
562
+ body: {
563
+ date: '2026-02-03',
564
+ time: '12:00:00',
565
+ latitude: 17.385044,
566
+ longitude: 78.486671,
567
+ timezone: 5.5,
568
+ coordinateSystem: 'sidereal',
569
+ },
324
570
  });
325
571
 
326
- // Monthly aspect events
572
+ // Monthly Planetary Aspects - Major and minor aspect events for a month
327
573
  const { data } = await roxy.vedicAstrology.getMonthlyAspects({
328
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
574
+ body: {
575
+ year: 2026,
576
+ month: 2,
577
+ timezone: 5.5,
578
+ coordinateSystem: 'sidereal',
579
+ },
329
580
  });
330
581
 
331
- // Lunar aspects for a month
582
+ // Monthly Lunar Aspects - Moon aspect events with all planets for a month
332
583
  const { data } = await roxy.vedicAstrology.getLunarAspects({
333
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
584
+ body: {
585
+ year: 2026,
586
+ month: 2,
587
+ timezone: 5.5,
588
+ coordinateSystem: 'sidereal',
589
+ },
334
590
  });
335
591
 
336
- // Transit (Gochar) vs natal
592
+ // Transit Analysis - Compare current planets to natal chart (Gochar)
337
593
  const { data } = await roxy.vedicAstrology.calculateTransit({
338
- body: { date: '2026-03-27', time: '12:00:00', latitude: 28.6139, longitude: 77.209 },
594
+ body: {
595
+ birthDate: '1990-07-04',
596
+ birthTime: '10:12:00',
597
+ transitDate: '2026-02-03',
598
+ transitTime: '12:00:00',
599
+ latitude: 17.385044,
600
+ longitude: 78.486671,
601
+ timezone: 5.5,
602
+ coordinateSystem: 'sidereal',
603
+ },
339
604
  });
340
605
 
341
- // Monthly sign changes
606
+ // Monthly Transit - Planetary sign changes for an entire month
342
607
  const { data } = await roxy.vedicAstrology.getMonthlyTransits({
343
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
608
+ body: {
609
+ year: 2026,
610
+ month: 2,
611
+ timezone: 5.5,
612
+ coordinateSystem: 'sidereal',
613
+ },
344
614
  });
345
615
 
346
- // Declination parallels
616
+ // Declination Parallels - Planets at same or opposite declination
347
617
  const { data } = await roxy.vedicAstrology.calculateParallels({
348
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
618
+ body: {
619
+ date: '2026-02-03',
620
+ time: '12:00:00',
621
+ latitude: 17.385044,
622
+ longitude: 78.486671,
623
+ timezone: 5.5,
624
+ orb: 1.5,
625
+ },
349
626
  });
350
627
 
351
- // Monthly parallels
352
- const { data } = await roxy.vedicAstrology.getMonthlyParallels({
353
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
354
- });
628
+ // Monthly Declination Parallels - Parallel and contraparallel events for a month
629
+ const { data } = await roxy.vedicAstrology.getMonthlyParallels({ body: { year: 2026, month: 2, timezone: 5.5 } });
355
630
 
356
- // Ecliptic crossings
631
+ // Ecliptic Crossings - When planets cross the ecliptic plane
357
632
  const { data } = await roxy.vedicAstrology.getEclipticCrossings({
358
- body: { date: '2026-03-01', time: '00:00:00', latitude: 28.6139, longitude: 77.209 },
633
+ body: { year: 2026, timezone: 5.5, coordinateSystem: 'sidereal' },
359
634
  });
360
- ```
361
635
 
362
- ### Reference Data
363
-
364
- ```typescript
365
- // All 12 rashis (Vedic signs)
636
+ // List all 12 Rashis - Vedic Zodiac Signs Reference
366
637
  const { data } = await roxy.vedicAstrology.listRashis();
367
- const { data } = await roxy.vedicAstrology.getRashi({ path: { id: 1 } });
368
638
 
369
- // All 27 nakshatras
370
- const { data } = await roxy.vedicAstrology.listNakshatras();
371
- const { data } = await roxy.vedicAstrology.getNakshatra({ path: { id: 1 } });
639
+ // Get Rashi by ID - Vedic Zodiac Sign Detail
640
+ const { data } = await roxy.vedicAstrology.getRashi({ path: { id: 'mesha' } });
372
641
 
373
- // 300+ yogas
374
- const { data } = await roxy.vedicAstrology.listYogas();
375
- const { data } = await roxy.vedicAstrology.getYoga({ path: { id: 1 } });
376
- ```
642
+ // List all 27 Nakshatras - Lunar Mansions Reference
643
+ const { data } = await roxy.vedicAstrology.listNakshatras();
377
644
 
378
- ### Strength Analysis
645
+ // Get Nakshatra by ID - Lunar Mansion Detail
646
+ const { data } = await roxy.vedicAstrology.getNakshatra({ path: { id: 'ashwini' } });
379
647
 
380
- ```typescript
381
- // Upagraha (sub-planet) positions
648
+ // Get upagraha (sub-planet) positions - Upagraha Calculator API
382
649
  const { data } = await roxy.vedicAstrology.getUpagrahaPositions({
383
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
650
+ body: {
651
+ date: '1990-07-04',
652
+ time: '10:12:00',
653
+ latitude: 28.6139,
654
+ longitude: 77.209,
655
+ timezone: 5.5,
656
+ },
384
657
  });
385
658
 
386
- // Ashtakavarga (8-fold strength)
659
+ // Get Ashtakavarga (planetary strength) analysis - Ashtakavarga Calculator API
387
660
  const { data } = await roxy.vedicAstrology.calculateAshtakavarga({
388
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
661
+ body: {
662
+ date: '1990-07-04',
663
+ time: '10:12:00',
664
+ latitude: 28.6139,
665
+ longitude: 77.209,
666
+ timezone: 5.5,
667
+ },
389
668
  });
390
669
 
391
- // Shadbala (6-fold strength per BPHS)
670
+ // Get Shadbala (six-fold planetary strength) analysis - Shadbala Calculator API
392
671
  const { data } = await roxy.vedicAstrology.calculateShadbala({
393
- body: { date: '1990-01-15', time: '14:30:00', latitude: 28.6139, longitude: 77.209 },
672
+ body: {
673
+ date: '1990-07-04',
674
+ time: '10:12:00',
675
+ latitude: 28.6139,
676
+ longitude: 77.209,
677
+ timezone: 5.5,
678
+ },
394
679
  });
395
680
  ```
396
681
 
397
682
  ---
398
683
 
399
- ## Tarot — `roxy.tarot`
684
+ ## Numerology — `roxy.numerology`
400
685
 
401
- 78-card Rider-Waite-Smith deck (22 Major Arcana, 56 Minor Arcana).
686
+ Production-ready Pythagorean numerology API + hosted MCP for AI agents and developers
402
687
 
403
688
  ```typescript
404
- // List all 78 cards
405
- const { data } = await roxy.tarot.listCards();
689
+ // Calculate Life Path number - Most important numerology calculation
690
+ const { data } = await roxy.numerology.calculateLifePath({ body: { year: 1990, month: 7, day: 15 } });
406
691
 
407
- // Single card details
408
- const { data } = await roxy.tarot.getCard({ path: { id: 0 } }); // 0 = The Fool
692
+ // Calculate Expression number - Natural talents and life goals
693
+ const { data } = await roxy.numerology.calculateExpression({ body: { fullName: 'John William Smith' } });
409
694
 
410
- // Draw random cards (1-78)
411
- const { data } = await roxy.tarot.drawCards({ body: { count: 3 } });
695
+ // Calculate Bridge Numbers - Harmonize different aspects of personality
696
+ const { data } = await roxy.numerology.calculateBridgeNumbers({
697
+ body: {
698
+ fullName: 'John William Smith',
699
+ year: 1990,
700
+ month: 7,
701
+ day: 15,
702
+ },
703
+ });
412
704
 
413
- // Daily guidance card
414
- const { data } = await roxy.tarot.getDailyCard({ body: { date: '2026-03-27' } });
705
+ // Calculate Soul Urge number - Inner motivations and desires
706
+ const { data } = await roxy.numerology.calculateSoulUrge({ body: { fullName: 'John William Smith' } });
415
707
 
416
- // Yes/No answer
417
- const { data } = await roxy.tarot.castYesNo({ body: { question: 'Should I take this job?' } });
708
+ // Calculate Personality number - How others perceive you
709
+ const { data } = await roxy.numerology.calculatePersonality({ body: { fullName: 'John William Smith' } });
418
710
 
419
- // Three-card spread (Past, Present, Future)
420
- const { data } = await roxy.tarot.castThreeCard({ body: { question: 'My career path' } });
711
+ // Calculate Birth Day number - Special talents from day of birth
712
+ const { data } = await roxy.numerology.calculateBirthDay({ body: { day: 23 } });
421
713
 
422
- // Celtic Cross (10 cards, comprehensive)
423
- const { data } = await roxy.tarot.castCelticCross({ body: { question: 'What should I focus on?' } });
714
+ // Calculate Maturity number - Who you become in later life
715
+ const { data } = await roxy.numerology.calculateMaturity({
716
+ body: {
717
+ lifePath: 5,
718
+ expression: 7,
719
+ fullName: 'John William Smith',
720
+ year: 1990,
721
+ month: 7,
722
+ day: 15,
723
+ },
724
+ });
424
725
 
425
- // Love spread (5 cards)
426
- const { data } = await roxy.tarot.castLoveSpread({ body: { question: 'My relationship' } });
726
+ // Analyze Karmic Lessons - Life lessons from missing numbers
727
+ const { data } = await roxy.numerology.analyzeKarmicLessons({ body: { fullName: 'John William Smith' } });
427
728
 
428
- // Career spread (7 cards, SWOT analysis)
429
- const { data } = await roxy.tarot.castCareerSpread({ body: { question: 'My career' } });
729
+ // Detect Karmic Debt numbers - Past life challenges (13, 14, 16, 19)
730
+ const { data } = await roxy.numerology.checkKarmicDebt({
731
+ body: {
732
+ year: 1990,
733
+ month: 7,
734
+ day: 15,
735
+ fullName: 'John William Smith',
736
+ },
737
+ });
430
738
 
431
- // Custom spread (1-10 cards with named positions)
432
- const { data } = await roxy.tarot.castCustomSpread({
433
- body: { positions: ['Current energy', 'Challenge', 'Outcome'] },
739
+ // Calculate Personal Day - Daily personalized numerology forecast
740
+ const { data } = await roxy.numerology.calculatePersonalDay({ body: { month: 7, day: 18, targetDate: '2026-04-04' } });
741
+
742
+ // Calculate Personal Month - Monthly numerology forecast
743
+ const { data } = await roxy.numerology.calculatePersonalMonth({ body: { month: 7, day: 18, year: 2026, targetMonth: 4 } });
744
+
745
+ // Calculate Personal Year - Annual cycle and forecast for current year
746
+ const { data } = await roxy.numerology.calculatePersonalYear({ body: { month: 7, day: 15, year: 2025 } });
747
+
748
+ // Calculate Compatibility - Relationship dynamics between two people
749
+ const { data } = await roxy.numerology.calculateNumCompatibility({
750
+ body: {
751
+ person1: {
752
+ lifePath: 5,
753
+ expression: 7,
754
+ soulUrge: 6,
755
+ fullName: 'John William Smith',
756
+ year: 1990,
757
+ month: 7,
758
+ day: 15,
759
+ },
760
+ person2: {
761
+ lifePath: 3,
762
+ expression: 9,
763
+ soulUrge: 2,
764
+ fullName: 'Jane Marie Doe',
765
+ year: 1992,
766
+ month: 3,
767
+ day: 22,
768
+ },
769
+ },
434
770
  });
771
+
772
+ // Generate Complete Numerology Chart - Full profile analysis
773
+ const { data } = await roxy.numerology.generateNumerologyChart({
774
+ body: {
775
+ fullName: 'John William Smith',
776
+ year: 1990,
777
+ month: 7,
778
+ day: 15,
779
+ currentYear: 2025,
780
+ },
781
+ });
782
+
783
+ // Get Number Meaning - Interpretation for any number 1-9, 11, 22, 33
784
+ const { data } = await roxy.numerology.getNumberMeaning({ path: { number: '5' } });
785
+
786
+ // Get daily numerology number - Number of the Day with interpretation
787
+ const { data } = await roxy.numerology.getDailyNumber({ body: { seed: 'user123', date: '2026-03-06' } });
435
788
  ```
436
789
 
437
790
  ---
438
791
 
439
- ## Numerology — `roxy.numerology`
792
+ ## Tarot — `roxy.tarot`
440
793
 
441
- Pythagorean system.
794
+ Production-ready tarot card reading API + hosted MCP for AI agents and developers
442
795
 
443
796
  ```typescript
444
- // Life Path number
445
- const { data } = await roxy.numerology.calculateLifePath({
446
- body: { year: 1990, month: 1, day: 15 },
797
+ // List all 78 tarot cards
798
+ const { data } = await roxy.tarot.listCards({
799
+ query: {
800
+ limit: 20,
801
+ offset: 0,
802
+ arcana: 'major',
803
+ suit: 'cups',
804
+ number: 1,
805
+ },
447
806
  });
448
- // Returns: { number, calculation, type, hasKarmicDebt, meaning }
449
807
 
450
- // Expression (Destiny) number
451
- const { data } = await roxy.numerology.calculateExpression({ body: { name: 'John Smith' } });
808
+ // Get detailed tarot card information
809
+ const { data } = await roxy.tarot.getCard({ path: { id: 'fool' } });
452
810
 
453
- // Soul Urge (Heart's Desire) number
454
- const { data } = await roxy.numerology.calculateSoulUrge({ body: { name: 'John Smith' } });
811
+ // Draw random tarot cards with reproducible results
812
+ const { data } = await roxy.tarot.drawCards({
813
+ body: {
814
+ count: 3,
815
+ seed: 'user123-2025-12-27',
816
+ allowReversals: true,
817
+ allowDuplicates: false,
818
+ },
819
+ });
455
820
 
456
- // Personality number
457
- const { data } = await roxy.numerology.calculatePersonality({ body: { name: 'John Smith' } });
821
+ // Get daily tarot card reading
822
+ const { data } = await roxy.tarot.getDailyCard({ body: { seed: 'user123', date: '2026-03-06' } });
458
823
 
459
- // Birth Day number
460
- const { data } = await roxy.numerology.calculateBirthDay({ body: { day: 15 } });
824
+ // Get yes/no answer to your question
825
+ const { data } = await roxy.tarot.castYesNo({
826
+ body: {
827
+ question: 'Should I accept the job offer?',
828
+ seed: 'optional-seed',
829
+ },
830
+ });
461
831
 
462
- // Maturity number (Life Path + Expression)
463
- const { data } = await roxy.numerology.calculateMaturity({
464
- body: { date: '1990-01-15', name: 'John Smith' },
832
+ // Three-Card Spread: Past, Present, Future
833
+ const { data } = await roxy.tarot.castThreeCard({
834
+ body: {
835
+ question: 'What do I need to know about my career?',
836
+ seed: 'optional-seed',
837
+ },
838
+ });
839
+
840
+ // Celtic Cross Spread (10 cards)
841
+ const { data } = await roxy.tarot.castCelticCross({
842
+ body: {
843
+ question: 'What should I know about this situation?',
844
+ seed: 'optional-seed',
845
+ },
465
846
  });
466
847
 
467
- // Karmic lessons (missing numbers)
468
- const { data } = await roxy.numerology.analyzeKarmicLessons({ body: { name: 'John Smith' } });
848
+ // Love Spread (5 cards)
849
+ const { data } = await roxy.tarot.castLoveSpread({
850
+ body: {
851
+ question: 'What do I need to know about my relationship?',
852
+ seed: 'optional-seed',
853
+ },
854
+ });
469
855
 
470
- // Karmic debt check (13, 14, 16, 19)
471
- const { data } = await roxy.numerology.checkKarmicDebt({
472
- body: { date: '1990-01-15', name: 'John Smith' },
856
+ // Career Spread (7 cards)
857
+ const { data } = await roxy.tarot.castCareerSpread({
858
+ body: {
859
+ question: 'What do I need to know about my career path?',
860
+ seed: 'optional-seed',
861
+ },
473
862
  });
474
863
 
475
- // Personal year cycle
476
- const { data } = await roxy.numerology.calculatePersonalYear({
477
- body: { date: '1990-01-15', currentYear: 2026 },
864
+ // Custom Spread Builder
865
+ const { data } = await roxy.tarot.castCustomSpread({
866
+ body: {
867
+ spreadName: 'My Custom Spread',
868
+ positions: [
869
+ {
870
+ name: 'Core Issue',
871
+ interpretation: 'What is really going on',
872
+ },
873
+ {
874
+ name: 'Hidden Factor',
875
+ interpretation: 'What you cannot see',
876
+ },
877
+ { name: 'Best Action', interpretation: 'What to do next' },
878
+ ],
879
+ question: 'Optional question',
880
+ seed: 'optional-seed',
881
+ },
478
882
  });
883
+ ```
479
884
 
480
- // Compatibility between two people
481
- const { data } = await roxy.numerology.calculateNumCompatibility({
885
+ ---
886
+
887
+ ## Human Design — `roxy.humanDesign`
888
+
889
+ Generate the full Human Design bodygraph from a birth moment: type, strategy, inner authority, profile, definition, i...
890
+
891
+ ```typescript
892
+ // Generate full Human Design bodygraph - Type, authority, profile, centers, channels, gates
893
+ const { data } = await roxy.humanDesign.generateBodygraph({
482
894
  body: {
483
- person1Date: '1990-01-15', person1Name: 'John Smith',
484
- person2Date: '1992-06-20', person2Name: 'Jane Doe',
895
+ date: '1990-07-15',
896
+ time: '13:00:00',
897
+ timezone: 5.5,
898
+ latitude: 0,
899
+ longitude: 0,
485
900
  },
486
901
  });
487
902
 
488
- // Full numerology chart (all numbers combined)
489
- const { data } = await roxy.numerology.generateNumerologyChart({
490
- body: { date: '1990-01-15', name: 'John Smith' },
903
+ // Calculate Human Design connection chart - Two-person composite bodygraph compatibility
904
+ const { data } = await roxy.humanDesign.calculateConnection({
905
+ body: {
906
+ personA: {
907
+ date: '1990-07-15',
908
+ time: '13:00:00',
909
+ timezone: 5.5,
910
+ latitude: 0,
911
+ longitude: 0,
912
+ },
913
+ personB: {
914
+ date: '1990-07-15',
915
+ time: '13:00:00',
916
+ timezone: 5.5,
917
+ latitude: 0,
918
+ longitude: 0,
919
+ },
920
+ },
921
+ });
922
+
923
+ // Generate Human Design transit overlay - Current planetary activations on a natal bodygraph
924
+ const { data } = await roxy.humanDesign.generateTransit({
925
+ body: {
926
+ birthData: {
927
+ date: '1990-07-15',
928
+ time: '13:00:00',
929
+ timezone: 5.5,
930
+ latitude: 0,
931
+ longitude: 0,
932
+ },
933
+ date: '2026-05-23',
934
+ time: '12:00:00',
935
+ },
936
+ });
937
+
938
+ // Calculate Human Design type, authority and profile
939
+ const { data } = await roxy.humanDesign.calculateType({
940
+ body: {
941
+ date: '1990-07-15',
942
+ time: '13:00:00',
943
+ timezone: 5.5,
944
+ latitude: 0,
945
+ longitude: 0,
946
+ },
947
+ });
948
+
949
+ // Calculate the 26 Human Design gate activations
950
+ const { data } = await roxy.humanDesign.calculateGates({
951
+ body: {
952
+ date: '1990-07-15',
953
+ time: '13:00:00',
954
+ timezone: 5.5,
955
+ latitude: 0,
956
+ longitude: 0,
957
+ },
491
958
  });
492
959
 
493
- // Number meaning (1-9, 11, 22, 33)
494
- const { data } = await roxy.numerology.getNumberMeaning({ path: { number: 7 } });
960
+ // Look up a Human Design gate by number
961
+ const { data } = await roxy.humanDesign.getGate({ path: { number: 34 } });
962
+
963
+ // Calculate the defined Human Design channels
964
+ const { data } = await roxy.humanDesign.calculateChannels({
965
+ body: {
966
+ date: '1990-07-15',
967
+ time: '13:00:00',
968
+ timezone: 5.5,
969
+ latitude: 0,
970
+ longitude: 0,
971
+ },
972
+ });
495
973
 
496
- // Daily numerology number
497
- const { data } = await roxy.numerology.getDailyNumber({ body: { date: '2026-03-27' } });
974
+ // Calculate the nine Human Design centers
975
+ const { data } = await roxy.humanDesign.calculateCenters({
976
+ body: {
977
+ date: '1990-07-15',
978
+ time: '13:00:00',
979
+ timezone: 5.5,
980
+ latitude: 0,
981
+ longitude: 0,
982
+ },
983
+ });
984
+
985
+ // Look up a Human Design center by id
986
+ const { data } = await roxy.humanDesign.getCenter({ path: { id: 'sacral' } });
987
+
988
+ // Calculate the Human Design profile and line keynotes
989
+ const { data } = await roxy.humanDesign.calculateProfile({
990
+ body: {
991
+ date: '1990-07-15',
992
+ time: '13:00:00',
993
+ timezone: 5.5,
994
+ latitude: 0,
995
+ longitude: 0,
996
+ },
997
+ });
498
998
  ```
499
999
 
500
1000
  ---
501
1001
 
502
- ## Crystals — `roxy.crystals`
1002
+ ## Forecast — `roxy.forecast`
503
1003
 
504
- Healing properties, zodiac/chakra associations, birthstones.
1004
+ Merge upcoming transit aspects, sign ingresses, retrograde stations, Vimshottari dasha changes, and biorhythm critica...
505
1005
 
506
1006
  ```typescript
507
- // All crystals (paginated)
508
- const { data } = await roxy.crystals.listCrystals();
1007
+ // Cross-domain forecast timeline - Transits, ingresses, stations, dasha changes, critical days
1008
+ const { data } = await roxy.forecast.generateTimeline({
1009
+ body: {
1010
+ birthData: {
1011
+ date: '1990-07-15',
1012
+ time: '13:30:00',
1013
+ timezone: 5.5,
1014
+ latitude: 0,
1015
+ longitude: 0,
1016
+ },
1017
+ startDate: '2026-06-01',
1018
+ endDate: '2026-08-30',
1019
+ domains: ['western', 'vedic', 'biorhythm'],
1020
+ minSignificance: 0,
1021
+ },
1022
+ });
509
1023
 
510
- // Single crystal details
511
- const { data } = await roxy.crystals.getCrystal({ path: { slug: 'amethyst' } });
1024
+ // Western transit forecast - Transit aspects, sign ingresses, retrograde stations
1025
+ const { data } = await roxy.forecast.forecastTransits({
1026
+ body: {
1027
+ birthData: {
1028
+ date: '1990-07-15',
1029
+ time: '13:30:00',
1030
+ timezone: 5.5,
1031
+ latitude: 0,
1032
+ longitude: 0,
1033
+ },
1034
+ startDate: '2026-06-01',
1035
+ endDate: '2026-08-30',
1036
+ minSignificance: 0,
1037
+ },
1038
+ });
512
1039
 
513
- // Search by keyword
514
- const { data } = await roxy.crystals.searchCrystals({ query: { q: 'love' } });
1040
+ // Significant dates - High-significance cross-domain forecast highlights
1041
+ const { data } = await roxy.forecast.findSignificantDates({
1042
+ body: {
1043
+ birthData: {
1044
+ date: '1990-07-15',
1045
+ time: '13:30:00',
1046
+ timezone: 5.5,
1047
+ latitude: 0,
1048
+ longitude: 0,
1049
+ },
1050
+ startDate: '2026-06-01',
1051
+ endDate: '2026-08-30',
1052
+ domains: ['western', 'vedic', 'biorhythm'],
1053
+ minSignificance: 70,
1054
+ },
1055
+ });
1056
+ ```
515
1057
 
516
- // By zodiac sign
517
- const { data } = await roxy.crystals.getCrystalsByZodiac({ path: { sign: 'pisces' } });
1058
+ ---
518
1059
 
519
- // By chakra
520
- const { data } = await roxy.crystals.getCrystalsByChakra({ path: { chakra: 'heart' } });
1060
+ ## Biorhythm — `roxy.biorhythm`
521
1061
 
522
- // By element
523
- const { data } = await roxy.crystals.getCrystalsByElement({ path: { element: 'water' } });
1062
+ The most complete biorhythm API + remote MCP for AI agents and developers
524
1063
 
525
- // Birthstones by month
526
- const { data } = await roxy.crystals.getBirthstones({ path: { month: 3 } });
1064
+ ```typescript
1065
+ // Get biorhythm reading - Complete cycle analysis for any date
1066
+ const { data } = await roxy.biorhythm.getReading({
1067
+ body: { birthDate: '1990-07-15', targetDate: '2026-04-10' },
1068
+ });
527
1069
 
528
- // Crystal pairings
529
- const { data } = await roxy.crystals.getCrystalPairings({ path: { slug: 'amethyst' } });
1070
+ // Get biorhythm forecast - Multi-day cycle predictions with best and worst days
1071
+ const { data } = await roxy.biorhythm.getForecast({
1072
+ body: {
1073
+ birthDate: '1990-07-15',
1074
+ startDate: '2026-04-01',
1075
+ endDate: '2026-04-30',
1076
+ },
1077
+ });
530
1078
 
531
- // Daily crystal
532
- const { data } = await roxy.crystals.getDailyCrystal();
1079
+ // Find critical days - Zero crossing detection for any date range
1080
+ const { data } = await roxy.biorhythm.getCriticalDays({
1081
+ body: {
1082
+ birthDate: '1990-07-15',
1083
+ startDate: '2026-04-01',
1084
+ endDate: '2026-06-30',
1085
+ },
1086
+ });
533
1087
 
534
- // Random crystal
535
- const { data } = await roxy.crystals.getRandomCrystal();
1088
+ // Calculate compatibility - Biorhythm alignment between two people
1089
+ const { data } = await roxy.biorhythm.calculateBioCompatibility({
1090
+ body: {
1091
+ person1: { birthDate: '1990-07-15' },
1092
+ person2: { birthDate: '1992-03-22' },
1093
+ targetDate: '2026-04-10',
1094
+ },
1095
+ });
536
1096
 
537
- // All crystal colors
538
- const { data } = await roxy.crystals.listCrystalColors();
1097
+ // Get phase info - Lightweight cycle status for dashboards and widgets
1098
+ const { data } = await roxy.biorhythm.getPhases({
1099
+ body: { birthDate: '1990-07-15', targetDate: '2026-04-10' },
1100
+ });
539
1101
 
540
- // All planetary associations
541
- const { data } = await roxy.crystals.listCrystalPlanets();
1102
+ // Get daily biorhythm - Seeded reading for daily check-in features
1103
+ const { data } = await roxy.biorhythm.getDailyBiorhythm({ body: { seed: 'user123', date: '2026-03-06' } });
542
1104
  ```
543
1105
 
544
1106
  ---
545
1107
 
546
- ## I Ching — `roxy.iching`
1108
+ ## I-Ching — `roxy.iching`
547
1109
 
548
- 64 hexagrams, 8 trigrams, traditional coin casting.
1110
+ I-Ching oracle API + hosted MCP for AI agents and developers
549
1111
 
550
1112
  ```typescript
551
- // Cast a reading (3-coin method)
552
- const { data } = await roxy.iching.castReading();
553
- // Returns: { hexagram, lines, changingLinePositions, resultingHexagram }
554
-
555
- // Daily hexagram
556
- const { data } = await roxy.iching.getDailyHexagram({ body: { date: '2026-03-27' } });
1113
+ // Get daily I-Ching hexagram
1114
+ const { data } = await roxy.iching.getDailyHexagram({ body: { seed: 'user123', date: '2026-03-06' } });
557
1115
 
558
- // Daily reading with changing lines
559
- const { data } = await roxy.iching.castDailyReading({ body: { date: '2026-03-27' } });
1116
+ // Cast daily I-Ching reading with changing lines
1117
+ const { data } = await roxy.iching.castDailyReading({ body: { seed: 'user123', date: '2026-03-06' } });
560
1118
 
561
- // All 64 hexagrams
562
- const { data } = await roxy.iching.listHexagrams();
1119
+ // List all 64 hexagrams
1120
+ const { data } = await roxy.iching.listHexagrams({ query: { limit: 20, offset: 0 } });
563
1121
 
564
- // Single hexagram by King Wen number (1-64)
565
- const { data } = await roxy.iching.getHexagram({ path: { number: 1 } });
566
-
567
- // Random hexagram
1122
+ // Get a random hexagram
568
1123
  const { data } = await roxy.iching.getRandomHexagram();
569
1124
 
570
- // Lookup by binary line pattern
1125
+ // Lookup hexagram by line pattern
571
1126
  const { data } = await roxy.iching.lookupHexagram({ query: { lines: '111111' } });
572
1127
 
573
- // All 8 trigrams
1128
+ // Get hexagram by number
1129
+ const { data } = await roxy.iching.getHexagram({ path: { number: 1 } });
1130
+
1131
+ // Cast an I-Ching reading
1132
+ const { data } = await roxy.iching.castReading({ query: { seed: 'user123-question1' } });
1133
+
1134
+ // List all 8 trigrams
574
1135
  const { data } = await roxy.iching.listTrigrams();
575
1136
 
576
- // Single trigram
577
- const { data } = await roxy.iching.getTrigram({ path: { identifier: 'heaven' } });
1137
+ // Get trigram by number or name
1138
+ const { data } = await roxy.iching.getTrigram({ path: { id: 'Heaven' } });
578
1139
  ```
579
1140
 
580
1141
  ---
581
1142
 
582
- ## Angel Numbers — `roxy.angelNumbers`
1143
+ ## Crystals and Healing Stones — `roxy.crystals`
583
1144
 
584
- Angel numbers with spiritual meanings and pattern analysis.
1145
+ Production-ready crystal healing API + hosted MCP for AI agents and developers
585
1146
 
586
1147
  ```typescript
587
- // All angel numbers
588
- const { data } = await roxy.angelNumbers.listAngelNumbers();
1148
+ // Crystals by Zodiac Sign
1149
+ const { data } = await roxy.crystals.getCrystalsByZodiac({
1150
+ path: { sign: 'pisces' },
1151
+ query: { limit: 20, offset: 0 },
1152
+ });
1153
+
1154
+ // Crystals by Chakra
1155
+ const { data } = await roxy.crystals.getCrystalsByChakra({
1156
+ path: { chakra: 'Heart' },
1157
+ query: { limit: 20, offset: 0 },
1158
+ });
589
1159
 
590
- // Single angel number meaning
591
- const { data } = await roxy.angelNumbers.getAngelNumber({ path: { number: '1111' } });
1160
+ // Crystals by Element
1161
+ const { data } = await roxy.crystals.getCrystalsByElement({
1162
+ path: { element: 'Water' },
1163
+ query: { limit: 20, offset: 0 },
1164
+ });
592
1165
 
593
- // Analyze any number sequence
594
- const { data } = await roxy.angelNumbers.analyzeNumberSequence({ query: { number: '1234' } });
1166
+ // Birthstone Crystals by Month
1167
+ const { data } = await roxy.crystals.getBirthstones({ path: { month: 2 } });
1168
+
1169
+ // Search Crystals
1170
+ const { data } = await roxy.crystals.searchCrystals({ query: { q: 'love', limit: 20, offset: 0 } });
1171
+
1172
+ // Crystal Pairings
1173
+ const { data } = await roxy.crystals.getCrystalPairings({ path: { id: 'amethyst' } });
1174
+
1175
+ // Daily Crystal
1176
+ const { data } = await roxy.crystals.getDailyCrystal({ body: { seed: 'user123', date: '2026-03-06' } });
1177
+
1178
+ // Random Crystal
1179
+ const { data } = await roxy.crystals.getRandomCrystal();
1180
+
1181
+ // List Crystal Colors
1182
+ const { data } = await roxy.crystals.listCrystalColors();
1183
+
1184
+ // List Crystal Planets
1185
+ const { data } = await roxy.crystals.listCrystalPlanets();
1186
+
1187
+ // List All Crystals
1188
+ const { data } = await roxy.crystals.listCrystals({
1189
+ query: {
1190
+ chakra: 'Heart',
1191
+ zodiac: 'pisces',
1192
+ element: 'Water',
1193
+ color: 'pink',
1194
+ planet: 'Venus',
1195
+ limit: 20,
1196
+ offset: 0,
1197
+ },
1198
+ });
595
1199
 
596
- // Daily angel number
597
- const { data } = await roxy.angelNumbers.getDailyAngelNumber();
1200
+ // Get Crystal Healing Properties
1201
+ const { data } = await roxy.crystals.getCrystal({ path: { id: 'amethyst' } });
598
1202
  ```
599
1203
 
600
1204
  ---
601
1205
 
602
1206
  ## Dreams — `roxy.dreams`
603
1207
 
604
- Dream symbol dictionary and interpretations.
1208
+ Dream interpretation API + hosted MCP for AI agents and developers
605
1209
 
606
1210
  ```typescript
607
- // Search symbols
608
- const { data } = await roxy.dreams.searchDreamSymbols({ query: { q: 'flying' } });
1211
+ // List and search dream symbols
1212
+ const { data } = await roxy.dreams.searchDreamSymbols({ query: { q: 'water', letter: 'a', limit: 20, offset: 0 } });
609
1213
 
610
- // Random symbols
611
- const { data } = await roxy.dreams.getRandomSymbols();
1214
+ // Get random dream symbols
1215
+ const { data } = await roxy.dreams.getRandomSymbols({ query: { count: 1 } });
612
1216
 
613
- // Letter counts (A-Z index)
1217
+ // Get symbol counts by letter
614
1218
  const { data } = await roxy.dreams.getSymbolLetterCounts();
615
1219
 
616
- // Single symbol interpretation
617
- const { data } = await roxy.dreams.getDreamSymbol({ path: { id: 'flying' } });
1220
+ // Get dream symbol details
1221
+ const { data } = await roxy.dreams.getDreamSymbol({ path: { id: 'snake' } });
618
1222
 
619
- // Daily dream symbol
620
- const { data } = await roxy.dreams.getDailyDreamSymbol({ body: { date: '2026-03-27' } });
1223
+ // Get daily dream symbol
1224
+ const { data } = await roxy.dreams.getDailyDreamSymbol({ body: { seed: 'user123', date: '2026-03-06' } });
621
1225
  ```
622
1226
 
623
1227
  ---
624
1228
 
625
- ## Biorhythm — `roxy.biorhythm`
1229
+ ## Angel Numbers — `roxy.angelNumbers`
626
1230
 
627
- 10-cycle biorhythm calculations (physical, emotional, intellectual, intuitive, aesthetic, awareness, spiritual, passion, mastery, wisdom). All methods are POST. Only `birthDate` (`YYYY-MM-DD`) is required; dates default to today (UTC) when omitted. Every method accepts an optional `query: { lang }` (`en`, `tr`, `de`, `es`, `hi`, `pt`, `fr`, `ru`).
1231
+ Production-ready angel numbers API + hosted MCP for AI agents and developers
628
1232
 
629
1233
  ```typescript
630
- // Complete reading for a target date — all 10 cycles, phase detection, energy rating, interpretation, advice, critical day alerts
631
- const { data } = await roxy.biorhythm.getReading({
632
- body: { birthDate: '1990-01-15', targetDate: '2026-04-14' },
633
- });
634
-
635
- // Multi-day forecast (max 90-day range). Returns daily cycle values, energy ratings, critical days, best/worst day summary
636
- const { data } = await roxy.biorhythm.getForecast({
637
- body: { birthDate: '1990-01-15', startDate: '2026-04-14', endDate: '2026-05-14' },
638
- });
639
-
640
- // Critical days (zero crossings) in a range (max 180 days). Flags rare double and triple critical days
641
- const { data } = await roxy.biorhythm.getCriticalDays({
642
- body: { birthDate: '1990-01-15', startDate: '2026-04-14', endDate: '2026-07-14' },
643
- });
1234
+ // List All Angel Numbers
1235
+ const { data } = await roxy.angelNumbers.listAngelNumbers({ query: { limit: 20, offset: 0, type: 'repeating' } });
644
1236
 
645
- // Compatibility between two people on a target date (per-cycle scores, overall rating, strengths, challenges, advice)
646
- const { data } = await roxy.biorhythm.calculateBioCompatibility({
647
- body: {
648
- person1: { birthDate: '1990-01-15' },
649
- person2: { birthDate: '1988-06-22' },
650
- targetDate: '2026-04-14',
651
- },
652
- });
1237
+ // Get Angel Number Meaning
1238
+ const { data } = await roxy.angelNumbers.getAngelNumber({ path: { number: '444' } });
653
1239
 
654
- // Lightweight phase info for dashboards and widgets — no editorial text
655
- const { data } = await roxy.biorhythm.getPhases({
656
- body: { birthDate: '1990-01-15' },
657
- });
1240
+ // Analyze Any Number Sequence
1241
+ const { data } = await roxy.angelNumbers.analyzeNumberSequence({ query: { number: '1234' } });
658
1242
 
659
- // Daily check-in with seeded randomness — same seed + same date = same reading (perfect for push notifications)
660
- const { data } = await roxy.biorhythm.getDailyBiorhythm({
661
- body: { birthDate: '1990-01-15', seed: 'user-123' },
662
- });
1243
+ // Daily Angel Number
1244
+ const { data } = await roxy.angelNumbers.getDailyAngelNumber({ body: { seed: 'user123', date: '2026-03-06' } });
663
1245
  ```
664
1246
 
665
1247
  ---
666
1248
 
667
- ## Location — `roxy.location`
1249
+ ## Location and Timezone — `roxy.location`
668
1250
 
669
- Geocoding helper for birth chart coordinates.
1251
+ City search and geocoding API + hosted MCP for AI agents and astrology apps
670
1252
 
671
1253
  ```typescript
672
- // Search cities (autocomplete)
673
- const { data } = await roxy.location.searchCities({ query: { q: 'Mumbai' } });
674
- // Returns envelope: { total, limit, offset, cities: [{ name, country, latitude, longitude, timezone, utcOffset, ... }, ...] }
675
- // `timezone` is the IANA string ("Asia/Kolkata"), `utcOffset` is the decimal fallback (5.5).
676
- // Pass `timezone` directly to any chart endpoint; the server resolves DST for the chart's `date`.
1254
+ // Search cities worldwide - Geocoding autocomplete with coordinates and timezone
1255
+ const { data } = await roxy.location.searchCities({ query: { q: 'berlin', limit: 10, offset: 0 } });
677
1256
 
678
- const city = data.cities[0];
679
- const { latitude, longitude, timezone } = city;
1257
+ // List all countries - ISO codes and city coverage
1258
+ const { data } = await roxy.location.listCountries({ query: { limit: 50, offset: 0 } });
680
1259
 
681
- // All countries
682
- const { data: countries } = await roxy.location.listCountries();
683
-
684
- // Cities in a country
685
- const { data: indianCities } = await roxy.location.getCitiesByCountry({ path: { iso2: 'IN' } });
1260
+ // Get cities in a country - Geocoding directory sorted by population
1261
+ const { data } = await roxy.location.getCitiesByCountry({ path: { iso2: 'DE' }, query: { limit: 20, offset: 0 } });
686
1262
  ```
687
1263
 
688
1264
  ---
689
1265
 
690
1266
  ## Usage — `roxy.usage`
691
1267
 
692
- Check your API usage and subscription.
1268
+ Monitor your API usage, check rate limits, and track request consumption
693
1269
 
694
1270
  ```typescript
1271
+ // Get API usage statistics
695
1272
  const { data } = await roxy.usage.getUsageStats();
696
- // Returns: { plan, usedThisMonth, requestsPerMonth, remainingThisMonth, email, status, endDate }
697
1273
  ```
698
1274
 
699
1275
  ---
700
1276
 
701
1277
  ## Languages — `roxy.languages`
702
1278
 
703
- List the response languages accepted by the `lang` query parameter on every i18n-aware endpoint. Use to populate language pickers, validate user input before calling chart or reading endpoints, or auto-detect available locales in agent integrations.
1279
+ List the response languages accepted by the `lang` query parameter on every i18n-aware endpoint
704
1280
 
705
1281
  ```typescript
1282
+ // List supported response languages
706
1283
  const { data } = await roxy.languages.listLanguages();
707
- // Returns: { languages: [{ code: 'en', name: 'English', nativeName: 'English' }, ...] }
708
1284
  ```
709
1285
 
1286
+ <!-- END:METHODS -->
1287
+
710
1288
  ---
711
1289
 
712
1290
  ## Error Handling