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

Natal Chart API in TypeScript: SDK + React Example

Compute a natal chart in TypeScript with the AstroWay SDK — typed responses, a React component, and where it beats a local ephemeris library.

The AstroWay TypeScript SDK is generated from the OpenAPI spec, so request bodies and responses are fully typed — your IDE autocompletes the fields and the compiler catches mistakes before runtime. Here’s a natal chart, then the same call inside a React component.

Terminal window
npm install @astroway/sdk
# or: pnpm add @astroway/sdk

Get a key on the dashboard — 10,000 credits/month free, no card.

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,
latitude: 50.45,
longitude: 30.52,
});
// chart.planets is typed — not `any`
for (const p of chart.planets) {
console.log(`${p.name} ${p.longitude.toFixed(2)}° ${p.sign}`);
}

The { ok, data, error } envelope is unwrapped for you, so chart is the data. Need a raw response or an endpoint without a typed namespace yet? aw.client.POST('/chart', { body }) is the underlying typed fetch.

No extra dependency needed — call the SDK from an effect (or a server action / route handler if you don’t want the key in the browser):

import { useEffect, useState } from 'react';
import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: import.meta.env.VITE_ASTROWAY_KEY });
export function NatalChart({ birth }: { birth: {
date: string; time: string; timezoneOffset: number; latitude: number; longitude: number;
} }) {
const [planets, setPlanets] = useState<{ name: string; sign: string }[]>([]);
useEffect(() => {
aw.chart.compute(birth).then((c) => setPlanets(c.planets));
}, [birth]);
return (
<ul>
{planets.map((p) => <li key={p.name}>{p.name} in {p.sign}</li>)}
</ul>
);
}

In production, keep the API key server-side: call aw.chart.compute from a Next route handler or a small proxy and pass the result to the client. The SDK runs the same in Node, edge runtimes and the browser.

Mutating-style calls take an idempotency key so a retry can’t double-charge credits, and errors are a typed hierarchy:

import { RateLimitError, BadRequestError } from '@astroway/sdk';
try {
await aw.synastry.aspectGrid(body, { idempotencyKey: 'replay-abc' });
} catch (e) {
if (e instanceof RateLimitError) {/* back off */}
if (e instanceof BadRequestError) {/* show which field failed */}
}

A browser-only ephemeris library ships hundreds of kilobytes of WASM + data to every visitor. The SDK keeps the calculation server-side over a typed HTTP call, so your bundle stays small and you also get 722 other endpoints (synastry, transits, Human Design, AI interpretations) without adding dependencies.

AstroWay team

L'équipe d'ingénierie d'AstroWay API. Nous encapsulons Swiss Ephemeris dans un REST pur et écrivons 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-06-05

How Accurate Is the Swiss Ephemeris? Verified Benchmarks

Swiss Ephemeris accuracy in numbers — planetary positions under 0.1 arcsecond, exact house cusps, eclipses within a minute — and how AstroWay verifies it.

Ephemeris 2026-06-05

Swiss Ephemeris: REST API vs pyswisseph (When to Use Which)

pyswisseph vs a REST API for Swiss Ephemeris calculations — C dependencies, data files, licensing and deployment compared, with a decision guide.

Engineering 2026-05-21

L'astrologie védique via l'API : de Parashara à Lal Kitab en 354 endpoints

AstroWay propose désormais la couverture védique la plus complète parmi les API commerciales : 10 systèmes de dasha, 16 varga, Panchang, Lal Kitab complet + KP + Jaimini. Comment cela fonctionne et quand choisir quelle technique.