🕓 Eintrag vom 2026-04-14, aktualisiert am 2026-05-09. TS / Python / PHP SDK leben jetzt in öffentlichen Registries -
@astroway/sdk(npm),astroway(PyPI),astroway/sdk(Packagist). Details im changelog.
Du willst eine Geburtshoroskop aus dem Code berechnen. Hier ist der kürzeste Weg – in 5 Minuten von Null zum funktionierenden JSON.
Schritt 1: Hol dir den API-Schlüssel (30 Sekunden)
Abschnitt betitelt „Schritt 1: Hol dir den API-Schlüssel (30 Sekunden)“Registriere dich unter api.astroway.info/dashboard/sign-up. Kostenloser Plan: 10 000 Credits / Monat. Ohne Karte.
Im dashboard klicke auf „Create key“ → „Production“ → kopiere. Schlüssel sehen so aus: aw_live_aB3xY7pQ9rN2mK4jH8vC5tL6wZ1fD0eR.
Hinweis: Es gibt auch Sandbox-Schlüssel mit dem Präfix aw_test_ – sie verbrauchen keine Credits. Verwende sie während der Entwicklung.
Schritt 2: Installiere das SDK
Abschnitt betitelt „Schritt 2: Installiere das SDK“TypeScript
Abschnitt betitelt „TypeScript“npm install @astroway/sdkpip install astrowayBeide SDKs decken alle 758 Endpunkte mit typisierten Anfragen und Antworten ab.
Schritt 3: Erste Geburtshoroskop
Abschnitt betitelt „Schritt 3: Erste Geburtshoroskop“TypeScript
Abschnitt betitelt „TypeScript“import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY!,});
const chart = await aw.chart.compute({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, // UTC+3, літо в Києві latitude: 50.4501, longitude: 30.5234, houseSystem: 'P', // Placidus});
const SIGNS = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Sagittarius', 'Capricorn', 'Aquarius', 'Pisces'];
const sun = chart.planets.find((p) => p.name === 'Sun')!;console.log(`Sun: ${SIGNS[Math.floor(sun.longitude / 30)]} at ${sun.longitude.toFixed(2)}°`);console.log(`ASC: ${chart.houses.ascendant.toFixed(2)}°`);console.log(`Aspects: ${chart.aspects.length}`);Führe aus:
ASTROWAY_API_KEY=aw_live_... npx tsx chart.tsDie Datei verwendet top-level await, also muss in package.json "type": "module" stehen. Andernfalls fällt tsx mit Top-level await is currently not supported with the "cjs" output format.
from astroway import Astroway, BirthData
aw = Astroway(api_key="aw_live_your_key_here")
chart = aw.chart.compute(BirthData( date="1990-07-14", time="14:30:00", timezone_offset=3, latitude=50.4501, longitude=30.5234, house_system="P",))
SIGNS = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"]
sun = next(p for p in chart["planets"] if p["name"] == "Sun")print(f"Sun: {SIGNS[int(sun['longitude'] // 30)]} at {sun['longitude']:.2f}°")print(f"ASC: {chart['houses']['ascendant']:.2f}°")print(f"Aspects: {len(chart['aspects'])}")Führe aus:
ASTROWAY_API_KEY=aw_live_... python3 chart.pyWas die API zurückgibt
Abschnitt betitelt „Was die API zurückgibt“Zurück kommt ein JSON-Objekt mit vier Hauptteilen:
planets
Abschnitt betitelt „planets“Ein Array mit 13 Objekten. In name steht der Körpername aus der Swiss Ephemeris: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, true Node (Nordknoten), mean Apogee (Lilith), Chiron.
{ "id": 0, "name": "Sun", "longitude": 354.702, // еклiптична довгота у градусах "latitude": -0.00016, "distance": 0.9945, // в астрономічних одиницях "speedLong": 0.9971, // градусів на день (від'ємне = ретроград) "speedLat": 0.00003, "speedDist": 0.00019, "isRetrograde": false, "declination": -1.4159, "rightAscension": 355.437}Zeichen und Haus kommen hier nicht: Berechne das Zeichen mit Math.floor(longitude / 30), und das Haus über die Cusps aus houses.
Haus-Cusps (12 Stück) sowie asc und MC:
{ "system": "P", "cusps": [118.18, 138.27, ...], // 12 значень "ascendant": 118.18, "mc": 12.708, "armc": 11.69, "vertex": 253.97, "equatorialAsc": 100.75, "coAscWK": 81.13, "coAscMunkasey": 123.7, "polarAsc": 261.13}aspects
Abschnitt betitelt „aspects“Ein Array von Aspekten zwischen den Planeten:
{ "planet1": "Sun", "planet2": "Mercury", "planet1Id": 0, "planet2Id": 2, "type": { // об'єкт, не рядок "name": "Conjunction", "i18nKey": "aspect_conjunction", "angle": 0, "orb": 12, "symbol": "☌", "isMajor": true, "color": "#660480" }, "exactAngle": 3.365, "orb": 3.365, // відхилення від точного у градусах "isApplying": true}chartSect
Abschnitt betitelt „chartSect“"diurnal" (Sonne über dem Horizont zum Zeitpunkt der Geburt) oder "nocturnal" (unter dem Horizont). Wird in der klassischen Astrologie verwendet.
Was als Nächstes
Abschnitt betitelt „Was als Nächstes“Was du noch ausprobieren kannst:
Synastrie: Kompatibilität zweier Personen:
const synastry = await client.synastry({ chart1: { date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.45, longitude: 30.52 }, chart2: { date: '1992-03-22', time: '09:15:00', timezoneOffset: 2, latitude: 48.85, longitude: 2.35 },});console.log(`Compatibility score: ${synastry.compatibility.score}/100`);Aktuelle Transite auf das Geburtshoroskop:
const transits = await client.transits({ // дані народження date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, // дата транзиту transitDate: '2026-04-14',});Tägliches Horoskop aus realen Transiten:
const horoscope = await client.horoscopeDaily({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234,});console.log(horoscope.text);Vollständige Human Design Karte:
const hd = await client.humanDesign({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234,});console.log(`${hd.type} - ${hd.strategy} - Profile ${hd.profile}`);Kosten in Credits
Abschnitt betitelt „Kosten in Credits“- Geburtshoroskop (
/chart): 20 Credits - Synastrie: 50 Credits
- Transite: 50 Credits
- Tägliches Horoskop: 20 Credits
- Human Design: 50 Credits
Kostenloser Plan: 10 000 Credits / Monat = 500 Geburtshoroskope, oder 200 Synastrien, oder gemischte Belastung.
Fehlerbehandlung
Abschnitt betitelt „Fehlerbehandlung“Jede Antwort enthält Header mit Credits:
X-Credits-Used: 20X-Credits-Remaining: 4980X-Credits-Reset: 2026-05-01T00:00:00ZWenn die Credits aufgebraucht sind – bekommst du 402 Payment Required. Wenn du das Rate-Limit (Free: 10 Anfragen / Min) überschreitest – 429 Too Many Requests mit dem Header Retry-After.
Das SDK wirft typisierte Fehler, die du abfangen kannst:
import { QuotaExceededError, RateLimitError } from '@astroway/sdk';
try { const chart = await aw.chart.compute(birth);} catch (err) { if (err instanceof QuotaExceededError) { console.log('Upgrade plan or wait for reset'); } else if (err instanceof RateLimitError) { console.log(`Retry in ${err.retryAfterSeconds ?? 60} seconds`); } else { throw err; }}Fange sie von spezifisch zu allgemein ab: Sie erben alle von ApiError, sodass die Prüfung darauf zuerst den Rest auffängt.
Und das war’s
Abschnitt betitelt „Und das war’s“Jetzt hast du:
- Funktionsfähigen API-Schlüssel
- Installiertes SDK
- Erstes Geburtshoroskop
- Genug Beispiele, um Synastrie, Transite, Horoskope hinzuzufügen
Weiterlesen:
- Vollständiger Leitfaden „Wie man anfängt“: mehr Details
- Beispiel: Geburtshoroskop: tieferer Walkthrough
- API reference: alle 758 Endpunkte
Derselbe Swiss Ephemeris wie in Solar Fire - in 4 Zeilen Code.
Kostenloser Schlüssel ohne Kreditkarte. 5.000 Aufrufe pro Monat vor der ersten Zahlung.