Salta ai contenuti
AstroWay/api v2.254.12 · it
tutti i sistemi sono operativi

Guida rapida

Cinque minuti dalla registrazione a una carta natale completa in JSON. Copre l’installazione dell’SDK, la prima richiesta, gli header di risposta, l’autenticazione e la gestione degli errori.

  1. Entra nella dashboard e premi Generate key. Il piano gratuito offre 10 000 crediti/mese per sempre, senza inserire una carta. Le chiavi iniziano con:

    • aw_live_*: produzione, addebiti reali
    • aw_test_*: sandbox, nessun consumo di crediti, risposta deterministica
  2. L’API è un normale REST + JSON, quindi l’SDK non è obbligatorio. Ma tutti e tre sono già pubblicati: TypeScript (@astroway/sdk), Python (astroway) e PHP (astroway/sdk), più un server MCP (@astroway/mcp) per gli agenti AI.

    Terminal window
    # No SDK needed - just curl and a key:
    export AW_KEY="aw_test_demo_replaceme"
  3. Calcolo della carta natale per il 24 agosto 1991, 16:30 EEST, Kyiv:

    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 è lo scostamento, in ore, che gli orologi avevano in quella data. Se non lo conosci, invia invece "timezone": "Europe/Kyiv" oppure "timezone": "auto" per ricavare il fuso dalle coordinate, e il server calcolerà lo scostamento da solo, ora legale compresa: formati dei campi.

  4. Ogni risposta è un JSON con pianeti, case, aspetti e un blocco meta (cache hit, crediti, versione del motore).

    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. La dashboard mostra l’utilizzo in tempo reale: api.astroway.info/dashboard. Oppure tramite API:

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

L’API AstroWay autentica le richieste tramite l’header X-Api-Key. Token Bearer e chiavi nella query string non sono supportati.

Terminal window
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/health
Tipo di chiavePrefissoComportamento
Productionaw_live_*Addebita crediti reali dall’account
Sandboxaw_test_*Risposta mock deterministica, senza addebito
Restricted (Pro+)aw_live_* con restrizioniLimitata a endpoint / IP / RPS specifici

Le chiavi si ruotano senza downtime: la vecchia chiave continua a funzionare per 24 ore dopo la generazione della nuova. Dettagli: /authentication/.

Tutti gli errori vengono restituiti nel formato ok: false + oggetto error. Il campo error.code (UPPER_SNAKE_CASE) è stabile per gli script: fai lo switch su di esso, non su 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" }
]
}
}

I codici più frequenti:

  • INVALID_INPUT (400): validazione Zod fallita; details contiene un array di { path, message }
  • INVALID_API_KEY (401): la chiave non esiste o è stata revocata
  • PLAN_UPGRADE_REQUIRED (402): serve un piano superiore o un pack add-on
  • CREDITS_EXHAUSTED (429): budget mensile di crediti esaurito
  • RATE_LIMIT (429): RPM superato; viene restituito con l’header Retry-After: <sec>
  • internal_calc_error (500): errore delle effemeridi; retry automatico lato SDK

Elenco completo e semantica: /errors/.

PianoQuota
Free10 req/min
Indie30 req/min
Starter120 req/min
Pro400 req/min
Business1 000 req/min
Enterprisepersonalizzata

Superamento → 429 con Retry-After (sec). Gli SDK ufficiali hanno di default retry con backoff esponenziale. Dettagli: /rate-limits-credits/.

Utile?
Suggerisci modifica

Ultimo aggiornamento: