🕓 Enregistrement du 2026-04-14, mis à jour le 2026-05-09. TS / Python / PHP SDK vivent maintenant sur des registres publics -
@astroway/sdk(npm),astroway(PyPI),astroway/sdk(Packagist). Détails dans journal des modifications.
Tu veux calculer une carte natale depuis le code. Voici le chemin le plus court – en 5 minutes, de zéro à un JSON fonctionnel.
Étape 1 : Obtiens la clé API (30 secondes)
Section intitulée « Étape 1 : Obtiens la clé API (30 secondes) »Inscris-toi sur api.astroway.info/dashboard/sign-up. Plan gratuit : 10 000 crédits / mois. Sans carte.
Dans le dashboard, clique sur «Create key» → «Production» → copie. Les clés ont le format aw_live_aB3xY7pQ9rN2mK4jH8vC5tL6wZ1fD0eR.
Astuce : il existe aussi des clés sandbox avec le préfixe aw_test_ – elles ne consomment pas de crédits. Utilise‑les pendant le développement.
Étape 2 : Installe le SDK
Section intitulée « Étape 2 : Installe le SDK »TypeScript
Section intitulée « TypeScript »npm install @astroway/sdkpip install astrowayLes deux SDK couvrent tous les 758 endpoints avec des requêtes et réponses typées.
Étape 3 : Première carte natale
Section intitulée « Étape 3 : Première carte natale »TypeScript
Section intitulée « TypeScript »import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY!,});
const chart = await aw.chart.compute({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, // UTC+3, літо в Києві latitude: 50.4501, longitude: 30.5234, houseSystem: 'P', // Placidus});
const SIGNS = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Sagittarius', 'Capricorn', 'Aquarius', 'Pisces'];
const sun = chart.planets.find((p) => p.name === 'Sun')!;console.log(`Sun: ${SIGNS[Math.floor(sun.longitude / 30)]} at ${sun.longitude.toFixed(2)}°`);console.log(`ASC: ${chart.houses.ascendant.toFixed(2)}°`);console.log(`Aspects: ${chart.aspects.length}`);Exécute :
ASTROWAY_API_KEY=aw_live_... npx tsx chart.tsLe fichier utilise le await de niveau supérieur, donc le package.json doit contenir "type": "module". Sinon tsx plantera avec Top-level await is currently not supported with the "cjs" output format.
from astroway import Astroway, BirthData
aw = Astroway(api_key="aw_live_your_key_here")
chart = aw.chart.compute(BirthData( date="1990-07-14", time="14:30:00", timezone_offset=3, latitude=50.4501, longitude=30.5234, house_system="P",))
SIGNS = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"]
sun = next(p for p in chart["planets"] if p["name"] == "Sun")print(f"Sun: {SIGNS[int(sun['longitude'] // 30)]} at {sun['longitude']:.2f}°")print(f"ASC: {chart['houses']['ascendant']:.2f}°")print(f"Aspects: {len(chart['aspects'])}")Exécute :
ASTROWAY_API_KEY=aw_live_... python3 chart.pyCe que renvoie l’API
Section intitulée « Ce que renvoie l’API »Un objet JSON est renvoyé avec quatre parties principales :
planètes
Section intitulée « planètes »Un tableau de 13 objets. Dans name se trouve le nom du corps provenant de Swiss Ephemeris : Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, true Node (Nœud Nord), mean Apogee (Lilith), Chiron.
{ "id": 0, "name": "Sun", "longitude": 354.702, // еклiптична довгота у градусах "latitude": -0.00016, "distance": 0.9945, // в астрономічних одиницях "speedLong": 0.9971, // градусів на день (від'ємне = ретроград) "speedLat": 0.00003, "speedDist": 0.00019, "isRetrograde": false, "declination": -1.4159, "rightAscension": 355.437}Le signe et la maison ne sont pas fournis : calcule le signe avec Math.floor(longitude / 30), et la maison à partir des cusps dans houses.
Cusps des maisons (12), ainsi que asc et MC :
{ "system": "P", "cusps": [118.18, 138.27, ...], // 12 значень "ascendant": 118.18, "mc": 12.708, "armc": 11.69, "vertex": 253.97, "equatorialAsc": 100.75, "coAscWK": 81.13, "coAscMunkasey": 123.7, "polarAsc": 261.13}Tableau des aspects entre les planètes :
{ "planet1": "Sun", "planet2": "Mercury", "planet1Id": 0, "planet2Id": 2, "type": { // об'єкт, не рядок "name": "Conjunction", "i18nKey": "aspect_conjunction", "angle": 0, "orb": 12, "symbol": "☌", "isMajor": true, "color": "#660480" }, "exactAngle": 3.365, "orb": 3.365, // відхилення від точного у градусах "isApplying": true}chartSect
Section intitulée « chartSect »"diurnal" (Soleil au-dessus de l’horizon au moment de la naissance) ou "nocturnal" (sous l’horizon). Utilisé en astrologie classique.
Et après
Section intitulée « Et après »Que tester d’autre :
Synastrie : compatibilité de deux personnes :
const synastry = await client.synastry({ 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(`Compatibility score: ${synastry.compatibility.score}/100`);Transits actuels sur la carte natale :
const transits = await client.transits({ // дані народження date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, // дата транзиту transitDate: '2026-04-14',});Horoscope quotidien à partir de transits réels :
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);Carte Human Design complète :
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} - Profile ${hd.profile}`);Coût en crédits
Section intitulée « Coût en crédits »- Carte natale (
/chart) : 20 crédits - Synastrie : 50 crédits
- Transits : 50 crédits
- Horoscope quotidien : 20 crédits
- Human Design : 50 crédits
Plan gratuit : 10 000 crédits / mois = 500 cartes natales, ou 200 synastries, ou charge mixte.
Gestion des erreurs
Section intitulée « Gestion des erreurs »Chaque réponse contient des en‑têtes avec les crédits :
X-Credits-Used: 20X-Credits-Remaining: 4980X-Credits-Reset: 2026-05-01T00:00:00ZQuand les crédits sont épuisés – tu reçois 402 Payment Required. Quand tu atteins la rate‑limit (Free : 10 requêtes / min) – 429 Too Many Requests avec l’en‑tête Retry-After.
Le SDK lève des erreurs typées que tu peux attraper :
import { QuotaExceededError, RateLimitError } from '@astroway/sdk';
try { const chart = await aw.chart.compute(birth);} catch (err) { if (err instanceof QuotaExceededError) { console.log('Upgrade plan or wait for reset'); } else if (err instanceof RateLimitError) { console.log(`Retry in ${err.retryAfterSeconds ?? 60} seconds`); } else { throw err; }}Il faut attraper du plus spécifique au plus général : toutes héritent de ApiError, donc vérifier d’abord ce type absorbera les autres.
Et c’est tout
Section intitulée « Et c’est tout »Tu as maintenant :
- Une clé API fonctionnelle
- Le SDK installé
- La première carte natale
- Assez d’exemples pour ajouter la synastrie, les transits, les horoscopes
Lire la suite :
- Guide complet «par où commencer»: plus de détails
- Exemple : carte natale: walkthrough plus approfondi
- Référence API: tous les 758 endpoints
Le même Swiss Ephemeris que Solar Fire - en 4 lignes de code.
Clé gratuite sans carte. 5 000 appels par mois avant le premier paiement.