🕓 Entrada del 2026-04-14, actualizado 2026-05-09. TS / Python / PHP SDK ahora viven en public registries —
@astroway/sdk(npm),astroway(PyPI),astroway/sdk(Packagist). Detalles en changelog.
Tú quieres calcular un mapa natal desde el código. Aquí está el camino más corto — en 5 minutos desde cero hasta un JSON funcionando.
Paso 1: Obtén una clave API (30 segundos)
Sección titulada «Paso 1: Obtén una clave API (30 segundos)»Regístrate en api.astroway.info/dashboard/sign-up. Plan gratuito: 10 000 créditos / mes. Sin tarjeta.
En dashboard haz clic en «Create key» → «Production» → copia. Las claves tienen el formato aw_live_aB3xY7pQ9rN2mK4jH8vC5tL6wZ1fD0eR.
Consejo: también hay claves de sandbox con prefijo aw_test_ — no consumen créditos. Úsalas durante el desarrollo.
Paso 2: Instala el SDK
Sección titulada «Paso 2: Instala el SDK»TypeScript
Sección titulada «TypeScript»npm install @astroway/sdkpip install astrowayAmbos SDK cubren todos los 723 con solicitudes y respuestas tipadas.
Paso 3: Primer mapa natal
Sección titulada «Paso 3: Primer mapa natal»TypeScript
Sección titulada «TypeScript»import { Astroway } from '@astroway/sdk';
const client = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY!,});
const chart = await client.chart({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, // UTC+3, verano en Kiev latitude: 50.4501, longitude: 30.5234, houseSystem: 'P', // Placidus});
console.log(`Sol: ${chart.planets[0].sign} en ${chart.planets[0].longitude}°`);console.log(`ASC: ${chart.houses.ascendant}°`);console.log(`Aspectos: ${chart.aspects.length}`);Ejecuta:
ASTROWAY_API_KEY=aw_live_... npx tsx chart.tsfrom astroway import Astroway
client = Astroway(api_key="aw_live_your_key_here")
chart = client.chart( date="1990-07-14", time="14:30:00", timezone_offset=3, latitude=50.4501, longitude=30.5234, house_system="P",)
print(f"Sol: {chart['planets'][0]['sign']} en {chart['planets'][0]['longitude']}°")print(f"ASC: {chart['houses']['ascendant']}°")print(f"Aspectos: {len(chart['aspects'])}")Ejecuta:
ASTROWAY_API_KEY=aw_live_... python3 chart.pyQué devuelve la API
Sección titulada «Qué devuelve la API»Se devuelve un objeto JSON con cuatro partes principales:
planets
Sección titulada «planets»Matriz con 12 objetos (Sol, Luna, Mercurio, Venus, Marte, Júpiter, Saturno, Urano, Neptuno, Plutón, Nodo Norte, Quirón):
{ "name": "Sol", "longitude": 111.87, // longitud eclíptica en grados "latitude": 0.0, "speed": 0.955, // grados por día (negativo = retrógrado) "sign": "cáncer", "signIndex": 3, "house": 10, "retrograde": false}Cúspides de las casas (12) y también asc y MC:
{ "system": "P", "cusps": [12.34, 43.21, ...], // 12 valores "ascendant": 12.34, "mc": 280.12}aspects
Sección titulada «aspects»Matriz de aspectos entre planetas:
{ "planet1": "Sol", "planet2": "Luna", "type": "sextil", // conjunción, oposición, trino, cuadratura, sextil, quincunx "orb": 1.36, // desviación del exacto en grados "applying": true}chartSect
Sección titulada «chartSect»"diurno" (Sol sobre el horizonte en el momento del nacimiento) o "nocturno" (debajo del horizonte). Se utiliza en la astrología clásica.
Qué sigue
Sección titulada «Qué sigue»Qué más intentar:
Sinastria — compatibilidad entre dos personas:
const sinastria = await client.sinastria({ 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(`Puntuación de compatibilidad: ${sinastria.compatibility.score}/100`);Tránsitos actuales en el mapa natal:
const transits = await client.transits({ // datos de nacimiento date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, // fecha del tránsito transitDate: '2026-04-14',});Horóscopo diario con tránsitos reales:
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);Mapa completo de Human Design:
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} — Perfil ${hd.profile}`);Costo en créditos
Sección titulada «Costo en créditos»- Mapa natal (
/chart): 20 créditos - Sinastria: 50 créditos
- Tránsitos: 50 créditos
- Horóscopo diario: 20 créditos
- Human Design: 50 créditos
Plan gratuito: 10 000 créditos / mes = 500 mapas natales, o 200 sinastrias, o carga mixta.
Procesamiento de errores
Sección titulada «Procesamiento de errores»Cada respuesta contiene encabezados con créditos:
X-Credits-Used: 20X-Credits-Remaining: 4980X-Credits-Reset: 2026-05-01T00:00:00ZCuando se agotan los créditos — se recibe 402 Payment Required. Cuando se alcanza el límite de velocidad (Free: 10 solicitudes / min) — 429 Too Many Requests con encabezado Retry-After.
El SDK lanza errores tipados que se pueden capturar:
try { const chart = await client.chart({ ... });} catch (err) { if (err.code === 'credits_exhausted') { console.log('Actualiza el plan o espera hasta el reinicio'); } else if (err.code === 'rate_limit_exceeded') { console.log(`Reintenta en ${err.retryAfter} segundos`); }}Y eso es todo
Sección titulada «Y eso es todo»Ahora tienes:
- Clave API funcionando
- SDK instalado
- Primer mapa natal
- Ejemplos suficientes para agregar sinastria, tránsitos, horóscopos
Lee más:
- Guía completa de «cómo empezar» — más detalles
- Ejemplo: mapa natal — paseo más profundo
- Referencia de API — todos los 723 puntos finales
El mismo Swiss Ephemeris que en Solar Fire — en 4 líneas de código.
Clave gratuita sin tarjeta. 5 000 llamadas al mes antes del primer pago.