Aller au contenu
AstroWay/api v2.254.12 · fr
tous les systèmes sont opérationnels

Démarrage rapide

Cinq minutes entre l’inscription et une carte natale complète en JSON. Cette page couvre l’installation du SDK, la première requête, les en-têtes de réponse, l’authentification et la gestion des erreurs.

  1. Rendez-vous dans le tableau de bord et cliquez sur Generate key. Le plan gratuit offre 10 000 crédits/mois pour toujours, sans carte bancaire. Les clés commencent par:

    • aw_live_*: production, facturation réelle
    • aw_test_*: sandbox, sans débit de crédits, réponse déterministe
  2. L’API est du REST + JSON classique, le SDK n’est donc pas obligatoire. Mais les trois sont déjà publiés: TypeScript (@astroway/sdk), Python (astroway) et PHP (astroway/sdk), plus un serveur MCP (@astroway/mcp) pour les agents IA.

    Fenêtre de terminal
    # No SDK needed - just curl and a key:
    export AW_KEY="aw_test_demo_replaceme"
  3. Calcul de la carte natale pour le 24 août 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 est le décalage qu’affichaient les horloges à cette date, en heures. Si vous ne le connaissez pas, envoyez à la place "timezone": "Europe/Kyiv" ou "timezone": "auto" pour déduire la zone des coordonnées, et le serveur calculera lui-même le décalage, heure d’été comprise: formats des champs.

  4. Chaque réponse est un JSON avec les planètes, les maisons, les aspects et un bloc meta (cache hit, crédits, version du moteur).

    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. Le tableau de bord affiche l’usage en temps réel: api.astroway.info/dashboard. Ou via l’API:

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

L’API AstroWay authentifie les requêtes via l’en-tête X-Api-Key. Les jetons Bearer et les clés passées en query string ne sont pas pris en charge.

Fenêtre de terminal
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/health
Type de cléPréfixeComportement
Productionaw_live_*Débite de vrais crédits du compte
Sandboxaw_test_*Réponse fictive déterministe, sans facturation
Restreinte (Pro+)aw_live_* avec restrictionLimitée à des endpoints / IP / RPS précis

La rotation des clés se fait sans interruption: l’ancienne clé continue de fonctionner 24 heures après la génération de la nouvelle. Détails: /authentication/.

Toutes les erreurs sont renvoyées au format ok: false + un objet error. Le champ error.code (UPPER_SNAKE_CASE) est stable pour les scripts: faites votre switch dessus, pas sur 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" }
]
}
}

Les codes les plus fréquents:

  • INVALID_INPUT (400): échec de la validation Zod; details contient un tableau { path, message }
  • INVALID_API_KEY (401): la clé n’existe pas ou a été révoquée
  • PLAN_UPGRADE_REQUIRED (402): un plan supérieur ou un pack add-on est nécessaire
  • CREDITS_EXHAUSTED (429): le budget mensuel de crédits est épuisé
  • RATE_LIMIT (429): RPM dépassé; renvoyé avec l’en-tête Retry-After: <sec>
  • internal_calc_error (500): erreur d’éphémérides; retry automatique côté SDK

Liste complète et sémantique: /errors/.

PlanQuota
Free10 req/min
Indie30 req/min
Starter120 req/min
Pro400 req/min
Business1 000 req/min
Enterprisesur mesure

Dépassement → 429 avec Retry-After (sec). Les SDK officiels effectuent par défaut des retries avec backoff exponentiel. Détails: /rate-limits-credits/.

Utile?
Proposer une modification

Dernière mise à jour :