Swiss Ephemeris API
Swiss Ephemeris - o de facto padrão de cálculos astronômicos na astrologia: nele estão baseados Astrodienst (astro.com), Solar Fire, Kerykeion e a maioria do software sério. Ele lê efeitos DE431 da NASA JPL e fornece precisão subsegunda. A API AstroWay fornece acesso direto ao HTTP - sem compilação de bibliotecas C, sem download de arquivos .se1, sem gerenciamento de memória. Um único pedido POST, JSON de resposta.
Por que o Swiss Ephemeris através da API
Seção intitulada “Por que o Swiss Ephemeris através da API”Self-host Swiss Ephemeris significa: coletar a biblioteca C (ou build WASM), colocar vários centenas de megabytes de arquivos .se1, mantê-los em estado atual e implementar os cálculos de casas, aspectos e fases. Por meio da API, tudo isso é um embaraço estranho:
- Zero infraestrutura: sem binários, arquivos efeitos ou atrasos de inicialização fria. O cálculo é realizado no servidor lado, no mesmo motor que o Astrodienst.
- Precisão subsegunda:
< 0.1″contra o CGI padrãoswetestdo Astrodienst, verificado em 873 snapshots congelados em cada deploy. - Intervalo de datas completo: DE431 cobre 13201 a.C. – 17191 d.C., então as cartas históricas e futuras distantes são calculadas sem perda de precisão.
- Não apenas posições: além dos efeitos, as casas, aspectos, eclipses, transições e progressões estão disponíveis imediatamente.
O que é calculado no Swiss Ephemeris
Seção intitulada “O que é calculado no Swiss Ephemeris”| Endpoint | Créditos | O que retorna |
|---|---|---|
/v1/chart | 20 | Carta completa: planetas + casas + aspectos |
/v1/planets | 10 | Posições geocêntricas dos planetas (longitude, latitude, velocidade, retrogradação) |
/v1/houses | 10 | Casas dos planos - 15 sistemas (Placidus, Koch, Whole Sign, Equal…) |
/v1/transits | 50 | Transições para a carta nativa em uma data específica |
/v1/progressions | 50 | Progressões secundárias (dia = ano) |
/v1/eclipses | 100 | Eclipses solares e lunares (verificado contra o Catálogo da NASA) |
/v1/moon-phase | 10 | Fase da Lua, iluminação, próximas quartas |
/v1/fixed-stars | 20 | Conjunções dos planetas com estrelas fixas |
Isso é uma parte dos 760 endpoints da plataforma - o catálogo completo está na Guia da API.
Exemplo
Seção intitulada “Exemplo”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']}")Quem usa
Seção intitulada “Quem usa”- Desenvolvedores de aplicativos astronômicos: posições subsegundas sem a biblioteca C local
- Agentes de inteligência artificial: efeitos precisos como ground truth para LLM (através do servidor MCP)
- Pesquisadores: cálculos em massa no intervalo histórico DE431
- Migração de self-host: substituição de
swissephlocal por HTTP sem perda de precisão
Posições dos planetas (/v1/planets) - 10 créditos, carta completa (/v1/chart) - 20. No plano de tarifa gratuito (760+ endpoints, 10 000 créditos/mês) - cerca de 1.000 pedidos de planetas por mês sem custo, sem plano.