Альтернатива Swiss Ephemeris API
Якщо ви шукали Swiss Ephemeris API, вам, найімовірніше, потрібне одне: позиції планет, куспіди домів і затемнення, які дає swetest або обгортка swisseph, але без компіляції C-бібліотеки, без хостингу файлів ефемерид і без власного астрологічного шару зверху. AstroWay дає це через HTTP. Один POST-запит, JSON у відповідь, розрахунок на наших власних серверах без стороннього API посередині.
Точність і покриття
Section titled “Точність і покриття”- Звірено з NASA JPL Horizons: 231 з 231 позиції в межах допуску на незалежному бенчмарку, медіана
0.052″, максимум1.1″(Хірон у 1900 році;0.47″для Сонця, Місяця і планет). - Проти референсного виводу swetest: медіана
0.0013″, максимум0.561″(Хірон) на 130 замірах від 1900 до 2050 року, тож результати збігаються з числами, які друкує ваша поточна схема. - Regression-тести: 888 заморожених snapshot-тестів на кожен pull request; одна регресія блокує реліз.
- Діапазон дат: приймаються дати з 0000 по 9999 рік. У межах 1800-2399 позиції точніші за
0.01″; поза ними використовується аналітична ефемерида, близько0.1″. - Не лише позиції: куспіди домів у 25 системах, аспекти, затемнення (звірені з NASA 5-Millennium Eclipse Catalog), транзити, прогресії та решта з 865 ендпоінтів, тобто те, що інакше довелося б писати самому.
Ендпоінти, що замінюють виклик ефемериди
Section titled “Ендпоінти, що замінюють виклик ефемериди”| Ендпоінт | Кредити | Що повертає |
|---|---|---|
/v1/planets | 10 | Геоцентричні позиції: довгота, широта, відстань і їхні швидкості, ретроградність |
/v1/ephemeris | 100 | Довготи й прапорці ретроградності між двома датами з фіксованим кроком |
/v1/houses | 10 | Куспіди домів, асцендент і MC у 25 системах |
/v1/chart | 20 | Повна карта: планети + будинки + аспекти |
/v1/transits | 50 | Транзити до натальної карти на задану дату |
/v1/progressions | 50 | Вторинні прогресії (день = рік) |
/v1/eclipses | 100 | Сонячні й місячні затемнення |
/v1/moon-phase | 10 | Фаза Місяця, освітленість, наступні квартилі |
/v1/fixed-stars | 20 | Кон’юнкції планет із нерухомими зорями |
Повний перелік у API-довіднику.
Перехід зі swetest або обгортки swisseph
Section titled “Перехід зі swetest або обгортки swisseph”Форму запиту й відповіді залишено близькою до того, що ви вже передаєте й читаєте:
| Що у вас зараз | Що надсилати |
|---|---|
swetest -b14.7.1990 -ut11:30 | "date": "1990-07-14", "time": "11:30:00", "timezoneOffset": 0 (або місцевий час зі зміщенням, або "timezone": "Europe/Kyiv") |
Юліанський день із swe_julday | Дата й час, як вище; відповідь повертає julianDay, тож ключі за JD можна лишити |
swe_calc_ut(jd, body, SEFLG_SPEED) | POST /v1/planets; кожне тіло повертається з id, longitude, latitude, distance, speedLong, speedLat, speedDist у тому самому порядку, що й шість вихідних значень |
Номери тіл 0-9 (Сонце - Плутон), 11 істинний вузол, 12 середня Ліліт, 13 істинна Ліліт, 15 Хірон | Ті самі номери в id і в planetIds на /v1/ephemeris |
-house<lon>,<lat>,P або swe_houses(..., 'P') | /v1/houses з latitude, longitude і тим самим однолітерним кодом houseSystem |
-sid1 або swe_set_sid_mode | /v1/chart з "zodiacType": "sidereal" і "ayanamsa": "lahiri" (або ayanamsaId) |
Цикл по -n кроках по -s днів | Один виклик /v1/ephemeris зі startDate, endDate, stepDays (до 5 років за виклик, 1 рік для кроку менше доби) |
Дві відмінності, які варто знати. Довгота додатна на схід, широта додатна на північ, у десяткових градусах. За полярним колом, де Placidus, Koch і Regiomontanus не визначені, куспіди повертаються як Porphyry, і про це каже поле warning, а не код помилки, який треба перевіряти.
Приклад
Section titled “Приклад”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']}")Хто використовує
Section titled “Хто використовує”- Розробники астрозастосунків: позиції до кутової секунди без бібліотеки ефемерид у застосунку
- AI-агенти: точні позиції як grounding для LLM (через MCP-сервер)
- Дослідники: масові таблиці позицій за діапазон дат одним викликом
- Команди, що йдуть із self-host: відповідність вище, через HTTP
Вартість
Section titled “Вартість”Позиції планет (/v1/planets) - 10 кредитів, повна карта (/v1/chart) - 20. На Free тарифі (10 000 кредитів/міс) - близько 1000 запитів планет на місяць безкоштовно, без картки.