AstroWay/api v2.296.1 · fr
tous les systèmes sont opérationnels

Démarrage rapide de l'API d'astrologie : TypeScript et Python en 5 minutes

Installer le SDK, obtenir une clé API, effectuer une requête de carte natale. 5 minutes - et un JSON fonctionnel en main (TypeScript et Python).

🕓 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.

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.

Fenêtre de terminal
npm install @astroway/sdk
Fenêtre de terminal
pip install astroway

Les deux SDK couvrent tous les 777 endpoints avec des requêtes et réponses typées.

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 for Kyiv summer
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 :

Fenêtre de terminal
ASTROWAY_API_KEY=aw_live_... npx tsx chart.ts

Le 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 :

Fenêtre de terminal
ASTROWAY_API_KEY=aw_live_... python3 chart.py

Un objet JSON est renvoyé avec quatre parties principales :

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, // ecliptic longitude in degrees
"latitude": -0.00016,
"distance": 0.9945, // in astronomical units
"speedLong": 0.9971, // degrees per day (negative = retrograde)
"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 values
"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": { // an object, not a string
"name": "Conjunction",
"i18nKey": "aspect_conjunction",
"angle": 0,
"orb": 12,
"symbol": "☌",
"isMajor": true,
"color": "#660480"
},
"exactAngle": 3.365,
"orb": 3.365, // deviation from exact in degrees
"isApplying": true
}

"diurnal" (Soleil au-dessus de l’horizon au moment de la naissance) ou "nocturnal" (sous l’horizon). Utilisé en astrologie classique.

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({
// birth data
date: '1990-07-14', time: '14:30:00', timezoneOffset: 3,
latitude: 50.4501, longitude: 30.5234,
// transit date
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}`);
  • 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.

Chaque réponse contient des en‑têtes avec les crédits :

X-Credits-Used: 20
X-Credits-Remaining: 4980
X-Credits-Reset: 2026-05-01T00:00:00Z

Quand 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.

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 :

MakSeong · AstroWay

Je fais l'API AstroWay : j'enveloppe Swiss Ephemeris dans du REST pur et j'écris sur les détails ennuyeux qui sont en fait importants.

// construis avec ça

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.

Plus d'articles du blog voir tous les articles →

Ephemeris 2026-07-19

Comment nous gardons la précision sous contrôle : la CI contre swetest et la NASA

Dans une API d'astrologie, la précision se dégrade facilement après un seul refactoring des éphémérides. Voici notre protection : un seul noyau Swiss Ephemeris pour l'application et l'API, des centaines de snapshots figés sur des thèmes de référence et la triangulation de chaque PR contre swetest CGI, Kerykeion, Prokerala et le catalogue d'éclipses de la NASA.

Engineering 2026-07-15

Trois SDK officiels : TypeScript, Python, PHP au lieu de curl brut

Le HTTP brut fonctionne, mais un client typé fait gagner des heures : autocomplétion des chemins, types de requête et de réponse, retry intégré sur 408/409/429/5xx et hiérarchie d'erreurs à la Stainless. Tour d'horizon des trois SDK officiels, @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist), et de la manière dont ils sont générés à partir d'un même contrat OpenAPI.

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.