Skip to content

Commit ef00dc3

Browse files
release: v0.1.5
1 parent 544c419 commit ef00dc3

12 files changed

Lines changed: 1716 additions & 231 deletions

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ $result = $roxy->location->searchCities(q: 'Mumbai');
3636
<!-- BEGIN:DOMAINS -->
3737
| Property | Endpoints | What it covers |
3838
|---|---|---|
39-
| `$roxy->astrology` | 22 | Production-ready Western astrology API + remote MCP for AI agents and developers |
40-
| `$roxy->vedicAstrology` | 42 | Production-grade Vedic (Jyotish) and KP astrology API + remote MCP for AI agents and developers |
39+
| `$roxy->astrology` | 23 | Production-ready Western astrology API + remote MCP for AI agents and developers |
40+
| `$roxy->vedicAstrology` | 43 | Production-grade Vedic (Jyotish) and KP astrology API + remote MCP for AI agents and developers |
4141
| `$roxy->numerology` | 16 | Production-ready Pythagorean numerology API + hosted MCP for AI agents and developers |
4242
| `$roxy->tarot` | 10 | Production-ready tarot card reading API + hosted MCP for AI agents and developers |
4343
| `$roxy->biorhythm` | 6 | The most complete biorhythm API + remote MCP for AI agents and developers |

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ Get an API key at [roxyapi.com/pricing](https://roxyapi.com/pricing). All endpoi
5555
<!-- BEGIN:DOMAINS -->
5656
| Property | Endpoints | What it covers |
5757
|---|---|---|
58-
| `$roxy->astrology` | 22 | Production-ready Western astrology API + remote MCP for AI agents and developers |
59-
| `$roxy->vedicAstrology` | 42 | Production-grade Vedic (Jyotish) and KP astrology API + remote MCP for AI agents and developers |
58+
| `$roxy->astrology` | 23 | Production-ready Western astrology API + remote MCP for AI agents and developers |
59+
| `$roxy->vedicAstrology` | 43 | Production-grade Vedic (Jyotish) and KP astrology API + remote MCP for AI agents and developers |
6060
| `$roxy->numerology` | 16 | Production-ready Pythagorean numerology API + hosted MCP for AI agents and developers |
6161
| `$roxy->tarot` | 10 | Production-ready tarot card reading API + hosted MCP for AI agents and developers |
6262
| `$roxy->biorhythm` | 6 | The most complete biorhythm API + remote MCP for AI agents and developers |

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,5 @@
8484
"/tests"
8585
]
8686
},
87-
"version": "0.1.4"
87+
"version": "0.1.5"
8888
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "roxyapi-sdk-php-tooling",
33
"private": true,
4-
"version": "0.1.4",
4+
"version": "0.1.5",
55
"description": "Codegen tooling for the roxyapi/sdk Composer package. Not published.",
66
"type": "module",
77
"scripts": {

specs/openapi.json

Lines changed: 1397 additions & 203 deletions
Large diffs are not rendered by default.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/**
6+
* AUTO-GENERATED by scripts/generate.mjs from the live OpenAPI spec.
7+
* Do not edit this file by hand. Regenerate with: node scripts/generate.mjs
8+
*/
9+
10+
namespace RoxyAPI\Sdk\Generated\Requests;
11+
12+
use Saloon\Enums\Method;
13+
use Saloon\Http\Request;
14+
use Saloon\Contracts\Body\HasBody;
15+
use Saloon\Traits\Body\HasJsonBody;
16+
17+
/**
18+
* Detect aspect patterns - Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle,
19+
* Stellium
20+
*
21+
* Identify classical Western astrology multi-planet configurations in a birth chart. Returns
22+
* Grand Trines (with element), Kites (with apex), T-Squares (with apex and modality), Grand
23+
* Crosses (with modality), Yods (Finger of Fate, with apex), Mystic Rectangles, and Stelliums.
24+
* Each pattern carries a tightness score (0-100), dissociate flag for out-of-sign
25+
* configurations, and a one-line interpretation suitable for chart reports. Disambiguation is
26+
* built in: a Grand Cross suppresses its contained T-Squares, a Kite suppresses its underlying
27+
* Grand Trine. Useful for personalized natal report engines, astrology chatbots, AI agents
28+
* that interpret chart geometry, and editorial chart-pattern callouts.
29+
*
30+
* POST /astrology/aspect-patterns
31+
*/
32+
class DetectAspectPatternsRequest extends Request implements HasBody
33+
{
34+
use HasJsonBody;
35+
36+
protected Method $method = Method::POST;
37+
38+
public function __construct(
39+
public readonly string $date,
40+
public readonly float $latitude,
41+
public readonly float $longitude,
42+
public readonly string $time,
43+
public readonly mixed $timezone,
44+
public readonly ?string $include = null,
45+
public readonly ?string $lang = null,
46+
public readonly ?string $strictOrbs = null,
47+
) {
48+
}
49+
50+
public function resolveEndpoint(): string
51+
{
52+
return "/astrology/aspect-patterns";
53+
}
54+
55+
/**
56+
* @return array<string, mixed>
57+
*/
58+
protected function defaultBody(): array
59+
{
60+
$body = [];
61+
$body['date'] = $this->date;
62+
$body['latitude'] = $this->latitude;
63+
$body['longitude'] = $this->longitude;
64+
$body['time'] = $this->time;
65+
$body['timezone'] = $this->timezone;
66+
67+
return $body;
68+
}
69+
70+
/**
71+
* @return array<string, mixed>
72+
*/
73+
protected function defaultQuery(): array
74+
{
75+
$query = [];
76+
if ($this->include !== null) {
77+
$query['include'] = $this->include;
78+
}
79+
if ($this->lang !== null) {
80+
$query['lang'] = $this->lang;
81+
}
82+
if ($this->strictOrbs !== null) {
83+
$query['strictOrbs'] = $this->strictOrbs;
84+
}
85+
86+
return $query;
87+
}
88+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/**
6+
* AUTO-GENERATED by scripts/generate.mjs from the live OpenAPI spec.
7+
* Do not edit this file by hand. Regenerate with: node scripts/generate.mjs
8+
*/
9+
10+
namespace RoxyAPI\Sdk\Generated\Requests;
11+
12+
use Saloon\Enums\Method;
13+
use Saloon\Http\Request;
14+
use Saloon\Contracts\Body\HasBody;
15+
use Saloon\Traits\Body\HasJsonBody;
16+
17+
/**
18+
* Detect classical Vedic yogas in a birth chart
19+
*
20+
* Chart-driven detection of 12 classical Vedic yogas: Gajakesari (parashara three-rule
21+
* definition), Sunapha, Anapha, Dhurdhura, Kemadruma, Chandra Mangala, Budha-Aditya, and the
22+
* five Pancha Mahapurusha yogas (Ruchaka, Bhadra, Hamsa, Malavya, Sasa). Each yoga is returned
23+
* with a present boolean and a classical-text evidence string naming the rule that triggered
24+
* or failed (kendra position, dignity, malefic drishti, lordship, retrograde state). Unlike
25+
* GET /yoga and GET /yoga/{id} which are dictionary lookups, this endpoint computes the kundli
26+
* from birth data and runs the detection rules. Sources: BPHS ch. 75, Mantreswara Phaladeepika
27+
* ch. 6, B.V. Raman Three Hundred Important Combinations.
28+
*
29+
* POST /vedic-astrology/yoga/detect
30+
*/
31+
class DetectYogasRequest extends Request implements HasBody
32+
{
33+
use HasJsonBody;
34+
35+
protected Method $method = Method::POST;
36+
37+
public function __construct(
38+
public readonly string $date,
39+
public readonly float $latitude,
40+
public readonly float $longitude,
41+
public readonly string $time,
42+
public readonly mixed $timezone = null,
43+
public readonly ?string $lang = null,
44+
) {
45+
}
46+
47+
public function resolveEndpoint(): string
48+
{
49+
return "/vedic-astrology/yoga/detect";
50+
}
51+
52+
/**
53+
* @return array<string, mixed>
54+
*/
55+
protected function defaultBody(): array
56+
{
57+
$body = [];
58+
$body['date'] = $this->date;
59+
$body['latitude'] = $this->latitude;
60+
$body['longitude'] = $this->longitude;
61+
$body['time'] = $this->time;
62+
if ($this->timezone !== null) {
63+
$body['timezone'] = $this->timezone;
64+
}
65+
66+
return $body;
67+
}
68+
69+
/**
70+
* @return array<string, mixed>
71+
*/
72+
protected function defaultQuery(): array
73+
{
74+
$query = [];
75+
if ($this->lang !== null) {
76+
$query['lang'] = $this->lang;
77+
}
78+
79+
return $query;
80+
}
81+
}

src/Generated/Requests/GetYogaRequest.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
use Saloon\Http\Request;
1414

1515
/**
16-
* Get yoga details by ID - Detailed Yoga Information API
16+
* Get yoga details by ID - Vedic Yoga Glossary Entry
1717
*
18-
* Returns complete details for a specific yoga including formation conditions,
19-
* results/effects, and quality (Positive/Negative/Both). Use GET /yogas first to get the list
20-
* of IDs. Provides in-depth information about each planetary combination. Perfect for yoga
21-
* detail pages, educational content, and astrological interpretation in horoscope apps.
18+
* Look up the dictionary entry for a specific named yoga from the 300-entry Vedic
19+
* planetary-yoga glossary. Returns formation conditions, life results, and quality
20+
* classification (Positive/Negative/Both). This is a glossary lookup against the static
21+
* catalog; it does NOT analyze a birth chart. For chart-driven present/absent verdicts on the
22+
* 12 classical detection-grade yogas (Gajakesari, Pancha Mahapurusha, etc.) call POST
23+
* /yoga/detect with birth data.
2224
*
2325
* GET /vedic-astrology/yoga/{id}
2426
*/

src/Generated/Requests/ListYogasRequest.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
use Saloon\Http\Request;
1414

1515
/**
16-
* List all planetary yogas - 300+ Vedic Yoga Combinations
16+
* List all planetary yogas - 300+ Vedic Yoga Glossary
1717
*
18-
* Returns list of all 300+ planetary yogas (astrological combinations) with basic information
19-
* (id and name only). Use this to discover available yogas, then call GET /yogas/:id for
20-
* detailed information. Perfect for building yoga browser interfaces, search functionality,
21-
* and progressive data loading in astrology apps.
18+
* Browse the 300+ entry Vedic planetary-yoga glossary. Returns id and name for every cataloged
19+
* yoga (Raja, Dhana, Pancha Mahapurusha, Nabhasa, Chandra-Mangala, and more). This is a
20+
* dictionary lookup, not chart-driven detection: it does not inspect a birth chart. Use GET
21+
* /yoga/{id} for the full glossary entry, or POST /yoga/detect to run the 12 classical
22+
* detection rules against a specific kundli. Ideal for yoga-browser UIs, search, and
23+
* progressive data loading.
2224
*
2325
* GET /vedic-astrology/yoga
2426
*/

src/Generated/Resources/AstrologyResource.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)