Astrology API Skill
When to Use
Use this skill when the user asks about:
- Birth charts, natal charts, horoscopes
- Zodiac compatibility, synastry, relationship analysis
- Planetary positions, transits, aspects
- Moon phases, lunar metrics, void of course
- Solar/lunar returns, progressions, directions
- Tarot card readings, spreads, interpretations
- Numerology (core numbers, compatibility, comprehensive)
- Vedic astrology (kundli, doshas, dashas, panchang)
- Chinese astrology (bazi, ming gua, feng shui)
- Human design (bodygraph, type, channels, gates)
- Kabbalah (tree of life, birth angels, gematria)
- Astrocartography (relocation, power zones, lines)
- Fixed stars (positions, conjunctions)
- Eclipses (upcoming, natal impact)
- Palmistry (palm analysis, reading)
- Daily/weekly/monthly/yearly horoscopes
- Career, health, spiritual, psychological analysis
- Chart rendering (SVG, PNG images)
Prerequisites
Before making any API call, verify:
$ASTROLOGY_API_KEY environment variable is set
curl is available on PATH
If the API key is missing, ask the user to set it:
export ASTROLOGY_API_KEY="your_token_here"
How It Works
Gather data from the user depending on the request type:
- For natal/personal: name, birth date (year, month, day), birth time (hour, minute), birth city + country code (2-letter ISO)
- For synastry/compatibility: birth data for TWO people
- For transits: natal data + transit date/time
- For horoscopes by sign: just the zodiac sign name
- For tarot: question or spread type
- For numerology: full name + birth date
Call the API using {baseDir}/scripts/astro-api.sh:
bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/natal '{ ... }'
Present results in a human-friendly format, highlighting key findings.
API Call Patterns
Natal Chart (most common)
bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/natal '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"options": {
"house_system": "P",
"zodiac_type": "Tropic",
"language": "EN"
}
}'
Synastry (compatibility)
bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/synastry '{
"subject": {
"name": "Person A",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"partner": {
"name": "Person B",
"year": 1992, "month": 7, "day": 20,
"hour": 9, "minute": 0, "second": 0,
"city": "London", "country_code": "GB"
},
"options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
}'
Transit Snapshot
bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/transit '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"transit": {
"year": 2026, "month": 2, "day": 12,
"hour": 12, "minute": 0, "second": 0,
"city": "New York", "country_code": "US"
},
"options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
}'
Current Sky Data (no parameters needed)
bash {baseDir}/scripts/astro-api.sh GET /api/v3/data/now
Planetary Positions
bash {baseDir}/scripts/astro-api.sh POST /api/v3/data/positions '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"options": {"house_system": "P", "zodiac_type": "Tropic"}
}'
Lunar Metrics
bash {baseDir}/scripts/astro-api.sh POST /api/v3/data/lunar-metrics '{
"subject": {
"name": "now",
"year": 2026, "month": 2, "day": 12,
"hour": 12, "minute": 0, "second": 0,
"city": "New York", "country_code": "US"
}
}'
Daily Horoscope by Sign
bash {baseDir}/scripts/astro-api.sh POST /api/v3/horoscope/sign/daily '{
"sign": "aries",
"language": "EN"
}'
Personal Daily Horoscope
bash {baseDir}/scripts/astro-api.sh POST /api/v3/horoscope/personal/daily '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"language": "EN"
}'
Natal Analysis Report (AI-generated interpretation)
bash {baseDir}/scripts/astro-api.sh POST /api/v3/analysis/natal-report '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
}'
Render Chart as SVG
bash {baseDir}/scripts/astro-api.sh POST /api/v3/svg/natal '{
"subject": {
"name": "John",
"year": 1990, "month": 3, "day": 15,
"hour": 14, "minute": 30, "second": 0,
"city": "New York", "country_code": "US"
},
"options": {"house_system": "P", "zodiac_type": "Tropic"}
}'
Tarot Card Draw
bash {baseDir}/scripts/astro-api.sh POST /api/v3/tarot/cards/draw '{
"count": 3
}'
Numerology Core Numbers
bash {baseDir}/scripts/astro-api.sh POST /api/v3/numerology/core-numbers '{
"full_name": "John Smith",
"birth_date": "1990-03-15"
}'
Full endpoint reference: Read {baseDir}/references/api-endpoints.md for all 190+ endpoints with detailed parameters.
Default Options
When the user doesn't specify preferences, use these defaults:
- House system:
P (Placidus) — most common in Western astrology
- Zodiac type:
Tropic (Tropical) — Western standard
- Language:
EN (English) — override based on user's language
- Tradition:
universal — broadest coverage
Output Format
When presenting results to the user:
- Start with the highlights: Sun sign, Moon sign, Ascendant (Rising)
- Use plain language — translate astrological jargon
- Format positions as tables when showing multiple planets
- Highlight notable aspects (conjunctions, oppositions, squares, trines)
- For compatibility: lead with the overall score/summary
- For horoscopes: present the text naturally, don't dump raw JSON
- For chart images (SVG/render): save to a file and inform the user
Edge Cases
- Birth time unknown: Use noon (12:00) and note that house positions and Moon degree may be less accurate
- City not found: Ask for latitude/longitude instead. Use
latitude and longitude fields instead of city/country_code
- API errors (400/422): Parse the error message and explain to the user what's wrong (e.g., invalid date, missing field)
- Large responses: For analysis reports, summarize the key points rather than showing everything
- Language support: The API supports EN, RU, FR, DE, ES, IT, PT, and more — match the user's language when possible
1---2name: astroapi-skill3description: Astrology API: generate natal charts, synastry, composite, transits, solar/lunar returns, progressions, directions, planetary positions, house cusps, aspects, lunar metrics, horoscopes, analysis reports, SVG/render charts, tarot, numerology, Vedic, Chinese astrology, human design, kabbalah, astrocartography, eclipses, palmistry, and fixed stars. Use when user asks about birth charts, horoscopes, zodiac signs, compatibility, planetary positions, moon phases, transits, astrological calculations, tarot readings, numerology, or any esoteric/astrological topic.4license: MIT5---6
7# Astrology API Skill
8
9## When to Use
10
11Use this skill when the user asks about:
12
13- Birth charts, natal charts, horoscopes
14- Zodiac compatibility, synastry, relationship analysis
15- Planetary positions, transits, aspects
16- Moon phases, lunar metrics, void of course
17- Solar/lunar returns, progressions, directions
18- Tarot card readings, spreads, interpretations
19- Numerology (core numbers, compatibility, comprehensive)
20- Vedic astrology (kundli, doshas, dashas, panchang)
21- Chinese astrology (bazi, ming gua, feng shui)
22- Human design (bodygraph, type, channels, gates)
23- Kabbalah (tree of life, birth angels, gematria)
24- Astrocartography (relocation, power zones, lines)
25- Fixed stars (positions, conjunctions)
26- Eclipses (upcoming, natal impact)
27- Palmistry (palm analysis, reading)
28- Daily/weekly/monthly/yearly horoscopes
29- Career, health, spiritual, psychological analysis
30- Chart rendering (SVG, PNG images)
31
32## Prerequisites
33
34Before making any API call, verify:
35
361. `$ASTROLOGY_API_KEY` environment variable is set
372. `curl` is available on PATH
38
39If the API key is missing, ask the user to set it:
40
41```
42export ASTROLOGY_API_KEY="your_token_here"
43```
44
45## How It Works
46
471. **Gather data** from the user depending on the request type:
48 - For natal/personal: name, birth date (year, month, day), birth time (hour, minute), birth city + country code (2-letter ISO)
49 - For synastry/compatibility: birth data for TWO people
50 - For transits: natal data + transit date/time
51 - For horoscopes by sign: just the zodiac sign name
52 - For tarot: question or spread type
53 - For numerology: full name + birth date
54
552. **Call the API** using `{baseDir}/scripts/astro-api.sh`:
56
57 ```
58 bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/natal '{ ... }'
59 ```
60
613. **Present results** in a human-friendly format, highlighting key findings.
62
63## API Call Patterns
64
65### Natal Chart (most common)
66
67```bash
68bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/natal '{
69 "subject": {
70 "name": "John",
71 "year": 1990, "month": 3, "day": 15,
72 "hour": 14, "minute": 30, "second": 0,
73 "city": "New York", "country_code": "US"
74 },
75 "options": {
76 "house_system": "P",
77 "zodiac_type": "Tropic",
78 "language": "EN"
79 }
80}'
81```
82
83### Synastry (compatibility)
84
85```bash
86bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/synastry '{
87 "subject": {
88 "name": "Person A",
89 "year": 1990, "month": 3, "day": 15,
90 "hour": 14, "minute": 30, "second": 0,
91 "city": "New York", "country_code": "US"
92 },
93 "partner": {
94 "name": "Person B",
95 "year": 1992, "month": 7, "day": 20,
96 "hour": 9, "minute": 0, "second": 0,
97 "city": "London", "country_code": "GB"
98 },
99 "options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
100}'
101```
102
103### Transit Snapshot
104
105```bash
106bash {baseDir}/scripts/astro-api.sh POST /api/v3/charts/transit '{
107 "subject": {
108 "name": "John",
109 "year": 1990, "month": 3, "day": 15,
110 "hour": 14, "minute": 30, "second": 0,
111 "city": "New York", "country_code": "US"
112 },
113 "transit": {
114 "year": 2026, "month": 2, "day": 12,
115 "hour": 12, "minute": 0, "second": 0,
116 "city": "New York", "country_code": "US"
117 },
118 "options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
119}'
120```
121
122### Current Sky Data (no parameters needed)
123
124```bash
125bash {baseDir}/scripts/astro-api.sh GET /api/v3/data/now
126```
127
128### Planetary Positions
129
130```bash
131bash {baseDir}/scripts/astro-api.sh POST /api/v3/data/positions '{
132 "subject": {
133 "name": "John",
134 "year": 1990, "month": 3, "day": 15,
135 "hour": 14, "minute": 30, "second": 0,
136 "city": "New York", "country_code": "US"
137 },
138 "options": {"house_system": "P", "zodiac_type": "Tropic"}
139}'
140```
141
142### Lunar Metrics
143
144```bash
145bash {baseDir}/scripts/astro-api.sh POST /api/v3/data/lunar-metrics '{
146 "subject": {
147 "name": "now",
148 "year": 2026, "month": 2, "day": 12,
149 "hour": 12, "minute": 0, "second": 0,
150 "city": "New York", "country_code": "US"
151 }
152}'
153```
154
155### Daily Horoscope by Sign
156
157```bash
158bash {baseDir}/scripts/astro-api.sh POST /api/v3/horoscope/sign/daily '{
159 "sign": "aries",
160 "language": "EN"
161}'
162```
163
164### Personal Daily Horoscope
165
166```bash
167bash {baseDir}/scripts/astro-api.sh POST /api/v3/horoscope/personal/daily '{
168 "subject": {
169 "name": "John",
170 "year": 1990, "month": 3, "day": 15,
171 "hour": 14, "minute": 30, "second": 0,
172 "city": "New York", "country_code": "US"
173 },
174 "language": "EN"
175}'
176```
177
178### Natal Analysis Report (AI-generated interpretation)
179
180```bash
181bash {baseDir}/scripts/astro-api.sh POST /api/v3/analysis/natal-report '{
182 "subject": {
183 "name": "John",
184 "year": 1990, "month": 3, "day": 15,
185 "hour": 14, "minute": 30, "second": 0,
186 "city": "New York", "country_code": "US"
187 },
188 "options": {"house_system": "P", "zodiac_type": "Tropic", "language": "EN"}
189}'
190```
191
192### Render Chart as SVG
193
194```bash
195bash {baseDir}/scripts/astro-api.sh POST /api/v3/svg/natal '{
196 "subject": {
197 "name": "John",
198 "year": 1990, "month": 3, "day": 15,
199 "hour": 14, "minute": 30, "second": 0,
200 "city": "New York", "country_code": "US"
201 },
202 "options": {"house_system": "P", "zodiac_type": "Tropic"}
203}'
204```
205
206### Tarot Card Draw
207
208```bash
209bash {baseDir}/scripts/astro-api.sh POST /api/v3/tarot/cards/draw '{
210 "count": 3
211}'
212```
213
214### Numerology Core Numbers
215
216```bash
217bash {baseDir}/scripts/astro-api.sh POST /api/v3/numerology/core-numbers '{
218 "full_name": "John Smith",
219 "birth_date": "1990-03-15"
220}'
221```
222
223> **Full endpoint reference:** Read `{baseDir}/references/api-endpoints.md` for all 190+ endpoints with detailed parameters.
224
225## Default Options
226
227When the user doesn't specify preferences, use these defaults:
228
229- **House system:** `P` (Placidus) — most common in Western astrology
230- **Zodiac type:** `Tropic` (Tropical) — Western standard
231- **Language:** `EN` (English) — override based on user's language
232- **Tradition:** `universal` — broadest coverage
233
234## Output Format
235
236When presenting results to the user:
237
2381. **Start with the highlights**: Sun sign, Moon sign, Ascendant (Rising)
2392. **Use plain language** — translate astrological jargon
2403. **Format positions as tables** when showing multiple planets
2414. **Highlight notable aspects** (conjunctions, oppositions, squares, trines)
2425. **For compatibility**: lead with the overall score/summary
2436. **For horoscopes**: present the text naturally, don't dump raw JSON
2447. **For chart images (SVG/render)**: save to a file and inform the user
245
246## Edge Cases
247
248- **Birth time unknown**: Use noon (12:00) and note that house positions and Moon degree may be less accurate
249- **City not found**: Ask for latitude/longitude instead. Use `latitude` and `longitude` fields instead of `city`/`country_code`
250- **API errors (400/422)**: Parse the error message and explain to the user what's wrong (e.g., invalid date, missing field)
251- **Large responses**: For analysis reports, summarize the key points rather than showing everything
252- **Language support**: The API supports EN, RU, FR, DE, ES, IT, PT, and more — match the user's language when possible