Ir al contenido
AstroWay/api v2.254.12 · es
todos los sistemas funcionando con normalidad

Inicio rápido

Cinco minutos desde el registro hasta una carta natal completa en JSON. Cubre la instalación del SDK, la primera petición, las cabeceras de respuesta, la autenticación y el tratamiento de errores.

  1. Entra en el panel y pulsa Generate key. El plan gratuito da 10 000 créditos/mes para siempre, sin introducir tarjeta. Las claves empiezan por:

    • aw_live_*: producción, cargos reales
    • aw_test_*: sandbox, sin descontar créditos, respuesta determinista
  2. La API es REST + JSON normal, así que el SDK no es obligatorio. Pero los tres ya están publicados: TypeScript (@astroway/sdk), Python (astroway) y PHP (astroway/sdk), más el servidor MCP (@astroway/mcp) para agentes de IA.

    Ventana de terminal
    # No SDK needed - just curl and a key:
    export AW_KEY="aw_test_demo_replaceme"
  3. Cálculo de la carta natal para el 24 de agosto de 1991, 16:30 EEST, Kiev:

    first-request.sh
    curl -X POST https://api.astroway.info/v1/chart \
    -H "X-Api-Key: $AW_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "date": "1991-08-24",
    "time": "16:30:00",
    "timezoneOffset": 3,
    "latitude": 50.4501,
    "longitude": 30.5234,
    "houseSystem": "P"
    }'

    timezoneOffset es el desfase que marcaban los relojes en esa fecha, en horas. Si no lo conoces, envía en su lugar "timezone": "Europe/Kyiv" o "timezone": "auto" para tomar la zona a partir de las coordenadas, y el servidor calculará el desfase por sí mismo, horario de verano incluido: formatos de los campos.

  4. Cada respuesta es un JSON con planetas, casas, aspectos y un bloque meta (cache hit, credits, engine version).

    response.json
    {
    "ok": true,
    "data": {
    "julianDay": 2448493.0625,
    "planets": [
    { "id": 0, "name": "Sun", "longitude": 150.894819, "latitude": 0.00019, "isRetrograde": false, "declination": 11.15726 },
    { "id": 1, "name": "Moon", "longitude": 321.634655, "latitude": 2.834053, "isRetrograde": false, "declination": -11.609723 }
    ],
    "houses": {
    "system": "P",
    "cusps": [264.384681, 306.997683, 353.867426],
    "ascendant": 264.384681,
    "mc": 207.315669
    },
    "aspects": [
    {
    "planet1": "Sun",
    "planet2": "Moon",
    "type": { "name": "Opposition", "angle": 180, "isMajor": true },
    "exactAngle": 170.739837,
    "orb": 9.260163,
    "isApplying": true
    }
    ],
    "chartSect": "diurnal",
    "meta": { "engineVersion": "2.10.03", "calculatedAt": "2026-08-22T20:53:31.431Z" }
    }
    }
  5. El panel muestra el uso en tiempo real: api.astroway.info/dashboard. O mediante la API:

    Ventana de terminal
    curl https://api.astroway.info/v1/keys/usage \
    -H "X-Api-Key: $AW_KEY"

La API de AstroWay autentica las peticiones con la cabecera X-Api-Key. No se admiten tokens Bearer ni claves en la query string.

Ventana de terminal
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/health
Tipo de clavePrefijoComportamiento
Productionaw_live_*Consume créditos reales de la cuenta
Sandboxaw_test_*Respuesta simulada determinista, sin cargo
Restricted (Pro+)aw_live_* con restricciónLimitada a endpoints / IP / RPS concretos

Las claves se rotan sin downtime: la clave antigua sigue funcionando 24 horas después de generar la nueva. Detalles: /authentication/.

Todos los errores se devuelven en el formato ok: false + objeto error. El campo error.code (UPPER_SNAKE_CASE) es estable para scripts: haz el switch sobre él, no sobre message.

error-response.json
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Validation failed: date: Invalid input: expected string, received undefined",
"details": [
{ "path": "date", "message": "Invalid input: expected string, received undefined" }
]
}
}

Los códigos más frecuentes:

  • INVALID_INPUT (400): validación Zod fallida; details contiene un array { path, message }
  • INVALID_API_KEY (401): la clave no existe o está revocada
  • PLAN_UPGRADE_REQUIRED (402): hace falta un plan superior o un pack add-on
  • CREDITS_EXHAUSTED (429): se ha agotado el presupuesto mensual de créditos
  • RATE_LIMIT (429): se ha superado el RPM; se devuelve con la cabecera Retry-After: <sec>
  • internal_calc_error (500): error de efemérides; reintento automático en el lado del SDK

Lista completa y semántica: /errors/.

PlanCuota
Free10 req/min
Indie30 req/min
Starter120 req/min
Pro400 req/min
Business1 000 req/min
Enterprisepersonalizada

Si se supera → 429 con Retry-After (sec). Los SDK oficiales hacen reintentos con backoff exponencial por defecto. Detalles: /rate-limits-credits/.

¿Útil?
Sugerir edición

Última actualización: