Swiss Ephemeris API
Swiss Ephemeris, astrolojide astronomik hesaplamaların fiili standardıdır: Astrodienst (astro.com), Solar Fire, Kerykeion ve ciddi yazılımların çoğu onun üzerine kuruludur. NASA JPL’nin DE431 efemerislerini okur ve saniyenin altında hassasiyet sağlar. AstroWay API ona doğrudan HTTP erişimi sunar: C kütüphanesi derlemeden, .se1 dosyaları indirmeden, bellek yönetimiyle uğraşmadan. Tek bir POST isteği, yanıt olarak JSON.
Swiss Ephemeris neden API üzerinden
Section titled “Swiss Ephemeris neden API üzerinden”Swiss Ephemeris’i kendiniz barındırmak şu anlama gelir: C kütüphanesini (veya bir WASM derlemesini) derlemek, birkaç yüz megabaytlık .se1 dosyasını yerleştirmek, bunları güncel tutmak ve ev başlangıçlarını, açıları, evreleri kendiniz uygulamak. API ile bunların hepsi başkasının derdidir:
- Sıfır altyapı: ikili dosya, efemeris dosyası veya cold-start gecikmesi yok. Hesaplama sunucu tarafında, Astrodienst ile aynı motorda yapılır.
- Saniyenin altında hassasiyet: Astrodienst’in referans
swetestCGI’ına karşı< 0.1″, her dağıtımda 873 dondurulmuş snapshot testiyle doğrulanır. - Tam tarih aralığı: DE431 MÖ 13201 – MS 17191 aralığını kapsar, bu yüzden tarihi ve uzak gelecekteki haritalar hassasiyet kaybı olmadan hesaplanır.
- Yalnızca konumlar değil: efemerislerin üzerine ev başlangıçları (15 sistem), açılar, tutulmalar, transitler, progresyonlar hazır gelir; kendiniz barındırsaydınız bunları kendiniz yazmanız gerekirdi.
Swiss Ephemeris ile neler hesaplanır
Section titled “Swiss Ephemeris ile neler hesaplanır”| Endpoint | Kredi | Ne döndürür |
|---|---|---|
/v1/chart | 20 | Tam harita: gezegenler + evler + açılar |
/v1/planets | 10 | Gezegenlerin jeosantrik konumları (boylam, enlem, hız, retro durumu) |
/v1/houses | 10 | Ev başlangıçları: 15 sistem (Placidus, Koch, Whole Sign, Equal…) |
/v1/transits | 50 | Belirli bir tarihte doğum haritasına transitler |
/v1/progressions | 50 | İkincil progresyonlar (bir gün = bir yıl) |
/v1/eclipses | 100 | Güneş ve Ay tutulmaları (NASA Catalog’a karşı doğrulanmış) |
/v1/moon-phase | 10 | Ay evresi, aydınlanma oranı, sonraki dördünler |
/v1/fixed-stars | 20 | Gezegenlerin sabit yıldızlarla kavuşumları |
Bu, platformun 771 endpoint’inin bir parçasıdır; tam liste API referansında.
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']}")Kimler kullanıyor
Section titled “Kimler kullanıyor”- Astroloji uygulaması geliştiricileri: C kütüphanesini kendileri barındırmadan saniye altı konumlar
- AI ajanları: LLM’ler için grounding olarak kesin efemerisler (MCP sunucusu üzerinden)
- Araştırmacılar: DE431’in tarihsel aralığında toplu hesaplamalar
- Self-host’tan geçiş: yerel
swisseph’i hassasiyet kaybı olmadan HTTP ile değiştirme
Maliyet
Section titled “Maliyet”Gezegen konumları (/v1/planets) 10 kredi, tam harita (/v1/chart) 20 kredidir. Free planda (771+ endpoint, ayda 10 000 kredi) ayda yaklaşık 1000 gezegen isteği ücretsizdir, kart gerekmez.