Swiss Ephemeris API
Swiss Ephemeris to de facto standard obliczeń astronomicznych w astrologii: opierają się na nim Astrodienst (astro.com), Solar Fire, Kerykeion i większość poważnego oprogramowania. Czyta efemerydy DE431 od NASA JPL i zapewnia dokładność poniżej sekundy kątowej. AstroWay API daje do niego bezpośredni dostęp przez HTTP: bez kompilowania biblioteki C, bez pobierania plików .se1, bez zarządzania pamięcią. Jedno żądanie POST, JSON w odpowiedzi.
Po co Swiss Ephemeris przez API
Dział zatytułowany „Po co Swiss Ephemeris przez API”Self-hosting Swiss Ephemeris oznacza: zbudować bibliotekę C (albo build WASM), umieścić kilkaset megabajtów plików .se1, dbać o ich aktualność i samodzielnie zaimplementować wierzchołki domów, aspekty, fazy. Przez API to wszystko przestaje być twoim zmartwieniem:
- Zero infrastruktury: żadnych binariów, plików efemeryd ani opóźnień cold startu. Obliczenia wykonują się po stronie serwera na tym samym silniku co w Astrodienst.
- Dokładność poniżej sekundy kątowej:
< 0.1″względem wzorcowegoswetestCGI od Astrodienst, weryfikowana na 873 zamrożonych testach snapshotowych przy każdym wdrożeniu. - Pełny zakres dat: DE431 obejmuje 13201 BCE – 17191 CE, więc horoskopy historyczne i z dalekiej przyszłości liczą się bez utraty dokładności.
- Nie tylko pozycje: na bazie efemeryd od razu dostępne są wierzchołki domów (15 systemów), aspekty, zaćmienia, tranzyty, progresje, czyli to, co przy self-hostingu trzeba by napisać samemu.
Co jest liczone na Swiss Ephemeris
Dział zatytułowany „Co jest liczone na Swiss Ephemeris”| Endpoint | Kredyty | Co zwraca |
|---|---|---|
/v1/chart | 20 | Pełny horoskop: planety + domy + aspekty |
/v1/planets | 10 | Geocentryczne pozycje planet (długość, szerokość, prędkość, retrogradacja) |
/v1/houses | 10 | Wierzchołki domów - 15 systemów (Placidus, Koch, Whole Sign, Equal…) |
/v1/transits | 50 | Tranzyty do horoskopu urodzeniowego na zadaną datę |
/v1/progressions | 50 | Progresje wtórne (dzień = rok) |
/v1/eclipses | 100 | Zaćmienia Słońca i Księżyca (verified vs NASA Catalog) |
/v1/moon-phase | 10 | Faza Księżyca, oświetlenie, następne kwadry |
/v1/fixed-stars | 20 | Koniunkcje planet z gwiazdami stałymi |
To część 771 endpointów platformy, pełna lista jest w dokumentacji API.
Przykład
Dział zatytułowany „Przykład”curl -X POST https://api.astroway.info/v1/planets \ -H "X-Api-Key: aw_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "date": "1990-07-14", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.4501, "longitude": 30.5234 }'const r = await fetch('https://api.astroway.info/v1/planets', { method: 'POST', headers: { 'X-Api-Key': process.env.ASTROWAY_API_KEY!, 'Content-Type': 'application/json', }, body: JSON.stringify({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, }),});const { data } = await r.json();const sun = data.planets.find((p) => p.name === 'Sun');console.log(`Sun: ${sun.longitude.toFixed(4)}° retrograde: ${sun.isRetrograde}`);import os, requests
r = requests.post( 'https://api.astroway.info/v1/planets', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={ 'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3, 'latitude': 50.4501, 'longitude': 30.5234, },)data = r.json()['data']sun = next(p for p in data['planets'] if p['name'] == 'Sun')print(f"Sun: {sun['longitude']:.4f}° retrograde: {sun['isRetrograde']}")Kto z tego korzysta
Dział zatytułowany „Kto z tego korzysta”- Twórcy aplikacji astrologicznych: pozycje z dokładnością poniżej sekundy bez self-hostingu biblioteki C
- Agenci AI: dokładne efemerydy jako grounding dla LLM (przez serwer MCP)
- Badacze: masowe obliczenia w historycznym zakresie DE431
- Migracja z self-hostingu: zastąpienie lokalnego
swissephprzez HTTP bez utraty dokładności
Pozycje planet (/v1/planets) kosztują 10 kredytów, pełny horoskop (/v1/chart) 20. Na planie Free (771+ endpointów, 10 000 kredytów/mies.) to około 1000 zapytań o planety miesięcznie za darmo, bez karty.