@@ -276,6 +276,65 @@ public function calculateTransits(
276276 return $ this ->callRequest ($ request );
277277 }
278278
279+ /**
280+ * Detect aspect patterns - Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle,
281+ * Stellium
282+ *
283+ * Identify classical Western astrology multi-planet configurations in a birth chart. Returns
284+ * Grand Trines (with element), Kites (with apex), T-Squares (with apex and modality), Grand
285+ * Crosses (with modality), Yods (Finger of Fate, with apex), Mystic Rectangles, and Stelliums.
286+ * Each pattern carries a tightness score (0-100), dissociate flag for out-of-sign
287+ * configurations, and a one-line interpretation suitable for chart reports. Disambiguation is
288+ * built in: a Grand Cross suppresses its contained T-Squares, a Kite suppresses its underlying
289+ * Grand Trine. Useful for personalized natal report engines, astrology chatbots, AI agents
290+ * that interpret chart geometry, and editorial chart-pattern callouts.
291+ *
292+ * POST /astrology/aspect-patterns
293+ *
294+ * @param string $date
295+ * Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar
296+ * day.
297+ * @param float $latitude
298+ * Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.
299+ * @param float $longitude
300+ * Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.
301+ * @param string $time
302+ * Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house
303+ * cusps. Use 12:00:00 if unknown.
304+ * @param mixed $timezone
305+ * Timezone: decimal hours from UTC (e.g. -5 for EST, 5.5 for IST) OR IANA name (e.g.
306+ * "America/New_York", "Asia/Kolkata"). IANA strings are resolved to the DST-correct offset for
307+ * the given date, so you can pass `cities[0].timezone` from /location/search directly.
308+ * @param string|null $include
309+ * Comma-separated list of optional bodies to include beyond the classical 10 planets. Valid
310+ * tokens (case-insensitive): chiron, northNode (also accepts north_node, north-node,
311+ * northnode). Empty by default.
312+ * @param string|null $lang
313+ * Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en.
314+ * Languages without translations yet return English.
315+ * @param string|null $strictOrbs
316+ * Use tighter orbs (Pontopia "optimal" recommendations). Truthy values (true, 1, yes, on;
317+ * case-insensitive) narrow trine to 5, square to 5, sextile to 4, quincunx to 2. Defaults to
318+ * false (industry-standard orbs).
319+ *
320+ * @return array<string, mixed>
321+ */
322+ public function detectAspectPatterns (
323+ string $ date ,
324+ float $ latitude ,
325+ float $ longitude ,
326+ string $ time ,
327+ mixed $ timezone ,
328+ ?string $ include = null ,
329+ ?string $ lang = null ,
330+ ?string $ strictOrbs = null
331+ ): array
332+ {
333+ $ request = new \RoxyAPI \Sdk \Generated \Requests \DetectAspectPatternsRequest (date: $ date , latitude: $ latitude , longitude: $ longitude , time: $ time , timezone: $ timezone , include : $ include , lang: $ lang , strictOrbs: $ strictOrbs );
334+
335+ return $ this ->callRequest ($ request );
336+ }
337+
279338 /**
280339 * Composite Chart - Midpoint relationship chart with interpretations
281340 *
0 commit comments