Skip to content

Commit 5cb0ca4

Browse files
committed
docs: globalize examples, front-load high-demand keywords, sync domains to 12+
Lead-with-global: the Western examples (natal chart, daily horoscope, synastry, human design, forecast) use global cities while the Vedic section keeps Indian coordinates. The README opening now front-loads the high-demand surface (natal charts, daily horoscopes, synastry, Vedic kundli, tarot spreads, numerology, human design bodygraphs, transit forecasts). Domain count reads 12+ and the breadth lists include human design and forecast.
1 parent 78a6166 commit 5cb0ca4

2 files changed

Lines changed: 23 additions & 23 deletions

File tree

AGENTS.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# roxy-sdk (Python) - Agent Guide
22

3-
Python SDK for RoxyAPI. Spiritual domains (Western astrology, Vedic astrology, numerology, tarot, Human Design, forecast, biorhythm, I Ching, crystals, dreams, angel numbers) plus utility namespaces (location, usage, languages). One API key, sync and async.
3+
Python SDK for RoxyAPI. 12+ domains (Western astrology, Vedic astrology, numerology, tarot, human design, forecast, biorhythm, I Ching, crystals, dreams, angel numbers, location) plus utility namespaces (usage, languages). One API key, sync and async.
44

55
## Install and initialize
66

@@ -31,16 +31,16 @@ roxy = create_roxy("your-api-key")
3131
Every chart, horoscope, panchang, dasha, dosha, navamsa, KP, synastry, compatibility, and natal endpoint needs `latitude`, `longitude`, and (for Western) `timezone`. **Never ask the user for coordinates.** Always call `roxy.location.search_cities` first.
3232

3333
```python
34-
result = roxy.location.search_cities(q="Mumbai")
34+
result = roxy.location.search_cities(q="New York")
3535
city = result["cities"][0]
3636
lat, lng, tz = city["latitude"], city["longitude"], city["timezone"]
37-
# `timezone` is the IANA string ("Asia/Kolkata"). Pass it directly to any chart endpoint.
37+
# `timezone` is the IANA string ("America/New_York"). Pass it directly to any chart endpoint.
3838
# The server resolves it to the DST-correct decimal offset using the request's own date,
3939
# so a January 1990 New York chart gets EST (-5) even when you looked the city up in July.
4040
# If you prefer numbers, city["utcOffset"] (decimal: 5.5, -5, ...) also works.
4141
```
4242

43-
`q` accepts bare city (`"Mumbai"`), city + country (`"Berlin Germany"`), or comma-qualified (`"Springfield, Illinois"`). Use the qualified form to disambiguate same-named cities.
43+
`q` accepts bare city (`"Paris"`), city + country (`"Berlin Germany"`), or comma-qualified (`"Springfield, Illinois"`). Use the qualified form to disambiguate same-named cities.
4444

4545
## Domains
4646

@@ -68,7 +68,7 @@ Type `roxy.` to see all available namespaces. Type `roxy.{domain}.` in an IDE wi
6868
### Two-step pattern for coordinate-dependent endpoints
6969

7070
```python
71-
result = roxy.location.search_cities(q="Delhi")
71+
result = roxy.location.search_cities(q="London")
7272
city = result["cities"][0]
7373

7474
chart = roxy.astrology.generate_natal_chart(
@@ -102,7 +102,7 @@ Most valuable endpoints are POST:
102102
```python
103103
natal = roxy.astrology.generate_natal_chart(
104104
date="1990-01-15", time="14:30:00",
105-
latitude=28.6139, longitude=77.209, timezone="Asia/Kolkata",
105+
latitude=40.7128, longitude=-74.006, timezone="America/New_York",
106106
)
107107

108108
kundli = roxy.vedic_astrology.generate_birth_chart(
@@ -195,7 +195,7 @@ Ordered by domain priority (Western, Vedic, Numerology, Tarot, Human Design, For
195195
| Dream symbol lookup | `roxy.dreams.get_dream_symbol(id="flying")` |
196196
| Angel number meaning | `roxy.angel_numbers.get_angel_number(number="1111")` |
197197
| Universal number lookup | `roxy.angel_numbers.analyze_number_sequence(number="1234")` |
198-
| Find city coordinates | `roxy.location.search_cities(q="Mumbai")` |
198+
| Find city coordinates | `roxy.location.search_cities(q="Berlin")` |
199199
| Check API usage | `roxy.usage.get_usage_stats()` |
200200
| List supported languages | `roxy.languages.list_languages()` |
201201

@@ -208,8 +208,8 @@ These are the fields AI agents most often get wrong. Copy the format column exac
208208
| `timezone` | IANA string (typed kwarg) OR decimal number (inside a `dict[str, Any]`) | `"Asia/Kolkata"`, `"America/New_York"`, `"Europe/London"` as the top-level `timezone=` kwarg (server resolves to the DST-correct offset for the chart date). Decimal hours (`5.5`, `-5`, `0`) work as JSON numbers and are accepted only inside `person1`/`person2` dicts because the dict is typed `dict[str, Any]` - the top-level `timezone=` kwarg is typed `str`, so a quoted decimal like `"5.5"` is rejected server-side (validation_error). | `"5.5"` as `timezone=` (rejected, server expects IANA string or a JSON number), `"5:30"`, `"+0530"`, `"GMT-5"` |
209209
| `date` | ISO date string | `"1990-01-15"` | `"Jan 15 1990"`, `datetime.now()`, `"15/01/1990"`, `"1990-1-15"` |
210210
| `time` | 24-hour string | `"14:30:00"`, `"09:00:00"` | `"2:30 PM"`, `"14:30"` (no seconds), `"9:0:0"` (no leading zeros) |
211-
| `latitude` | Decimal degrees (float) | `28.6139` (Delhi), `-33.8688` (Sydney), `40.7128` (NYC) | `"28°36'N"`, `"28 36 50"`, strings |
212-
| `longitude` | Decimal degrees (float) | `77.209` (Delhi), `-74.006` (NYC), `139.6917` (Tokyo) | Same as latitude - no DMS strings |
211+
| `latitude` | Decimal degrees (float) | `51.5074` (London), `-33.8688` (Sydney), `40.7128` (NYC) | `"28°36'N"`, `"28 36 50"`, strings |
212+
| `longitude` | Decimal degrees (float) | `-0.1278` (London), `-74.006` (NYC), `139.6917` (Tokyo) | Same as latitude - no DMS strings |
213213
| `sign` (horoscope kwarg) | Lowercase zodiac name | `"aries"`, `"taurus"`, `"gemini"`, ... `"pisces"` | `"Aries"`, `"♈"`, `"1"`, `"ARIES"` (case-insensitive but prefer lowercase) |
214214
| `full_name` (numerology) | Birth-certificate name | `"John William Smith"`, `"Priya Rajesh Sharma"` | Nickname, married name, partial name - affects all letter-based calcs |
215215
| `seed` | Any string (deterministic) | `"user-42"`, `"session-abc-123"`, email hash | Numbers, objects - must be string |
@@ -226,7 +226,7 @@ These are the fields AI agents most often get wrong. Copy the format column exac
226226

227227
### Timezone cheat sheet (most-asked locations)
228228

229-
Values are decimal hours. For the typed top-level `timezone=` kwarg, pass the IANA name from `roxy.location.search_cities` (`timezone="Asia/Kolkata"`) - the server resolves it to the correct DST offset for the chart date. Inside a `person1`/`person2` dict the bare decimal works because the dict is typed `dict[str, Any]`, so the JSON-number form below is accepted.
229+
Values are decimal hours. For the typed top-level `timezone=` kwarg, pass the IANA name from `roxy.location.search_cities` (`timezone="America/New_York"`) - the server resolves it to the correct DST offset for the chart date. Inside a `person1`/`person2` dict the bare decimal works because the dict is typed `dict[str, Any]`, so the JSON-number form below is accepted.
230230

231231

232232
| Region | Decimal | Region | Decimal |

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Python SDK for astrology, Vedic astrology, tarot, numerology, and more.
1616

1717
One API key. Sync and async (every method has an `_async` suffix). Verified against NASA JPL Horizons.
1818

19-
The fastest way to add natal charts, kundli matching, daily horoscopes, tarot readings, and spiritual insights to FastAPI, Django, Flask, or any Python project. Twelve domains behind a single [Roxy](https://roxyapi.com) subscription, interpretations in eight languages.
19+
The fastest way to add natal charts, daily horoscopes, synastry, Vedic kundli, tarot spreads, numerology, human design bodygraphs, and transit forecasts to FastAPI, Django, Flask, or any Python project. 12+ domains behind a single [Roxy](https://roxyapi.com) subscription, interpretations in eight languages.
2020

2121
## Install
2222

@@ -47,22 +47,22 @@ from roxy_sdk import create_roxy
4747
roxy = create_roxy("your-api-key")
4848

4949
# Step 1: geocode the birth city (required for any chart endpoint)
50-
result = roxy.location.search_cities(q="Mumbai, India")
50+
result = roxy.location.search_cities(q="London, UK")
5151
city = result["cities"][0]
5252
lat, lng, tz = city["latitude"], city["longitude"], city["timezone"]
5353

54-
# Step 2: Vedic kundli. `timezone` can be the IANA string ("Asia/Kolkata").
54+
# Step 2: Western natal chart. `timezone` can be the IANA string ("Europe/London").
5555
# The server resolves it to the DST-correct offset for the chart's own date.
56-
kundli = roxy.vedic_astrology.generate_birth_chart(
56+
natal = roxy.astrology.generate_natal_chart(
5757
date="1990-01-15",
5858
time="14:30:00",
5959
latitude=lat,
6060
longitude=lng,
6161
timezone=tz,
6262
)
6363

64-
# Or Western natal chart (same timezone semantics)
65-
natal = roxy.astrology.generate_natal_chart(
64+
# Vedic kundli takes the same inputs (timezone optional, defaults to 5.5 IST).
65+
kundli = roxy.vedic_astrology.generate_birth_chart(
6666
date="1990-01-15",
6767
time="14:30:00",
6868
latitude=lat,
@@ -116,7 +116,7 @@ The global astrology app market is $6.27B and almost entirely Western. These end
116116
# Natal chart. The #1 Western query, called on every onboarding.
117117
natal = roxy.astrology.generate_natal_chart(
118118
date="1990-01-15", time="14:30:00",
119-
latitude=28.6139, longitude=77.209, timezone="Asia/Kolkata",
119+
latitude=40.7128, longitude=-74.006, timezone="America/New_York",
120120
)
121121

122122
# Daily horoscope. Highest per-user call frequency in the catalog, drives DAUs and push.
@@ -125,8 +125,8 @@ horoscope = roxy.astrology.get_daily_horoscope(sign="aries")
125125

126126
# Synastry. The dating-app pro-tier feature, full inter-aspect analysis.
127127
synastry = roxy.astrology.calculate_synastry(
128-
person1={"date": "1990-01-15", "time": "14:30:00", "latitude": 28.61, "longitude": 77.20, "timezone": 5.5},
129-
person2={"date": "1992-07-22", "time": "09:00:00", "latitude": 19.07, "longitude": 72.87, "timezone": 5.5},
128+
person1={"date": "1990-01-15", "time": "14:30:00", "latitude": 40.71, "longitude": -74.01, "timezone": -5},
129+
person2={"date": "1992-07-22", "time": "09:00:00", "latitude": 51.51, "longitude": -0.13, "timezone": 1},
130130
)
131131
# synastry["compatibilityScore"], synastry["interAspects"], synastry["analysis"]["strengths"]
132132

@@ -218,9 +218,9 @@ The breakout 2026 spiritual category, computed from the same ephemeris as Wester
218218

219219
```python
220220
# Full bodygraph. The #1 Human Design query, the whole chart in one call.
221-
# `timezone` is the IANA string ("Asia/Kolkata"), same as the chart endpoints.
221+
# `timezone` is the IANA string ("America/New_York"), same as the chart endpoints.
222222
bodygraph = roxy.human_design.generate_bodygraph(
223-
date="1990-07-04", time="10:12:00", timezone="Asia/Kolkata",
223+
date="1990-07-04", time="10:12:00", timezone="America/New_York",
224224
)
225225
# bodygraph["type"] ("Generator", "Projector", "Manifestor", ...)
226226
print(bodygraph["type"], bodygraph["strategy"], bodygraph["profile"], bodygraph["definition"])
@@ -236,8 +236,8 @@ The first cross-domain, stateless forecast in the catalog. One call merges Weste
236236
# Response keys are camelCase passthrough: result["count"], result["events"].
237237
timeline = roxy.forecast.generate_timeline(
238238
birth_data={
239-
"date": "1990-07-04", "time": "10:12:00", "timezone": "Asia/Kolkata",
240-
"latitude": 28.6139, "longitude": 77.209,
239+
"date": "1990-07-04", "time": "10:12:00", "timezone": "America/New_York",
240+
"latitude": 40.7128, "longitude": -74.006,
241241
},
242242
start_date="2026-06-01", end_date="2026-06-30",
243243
)

0 commit comments

Comments
 (0)