AstroWay/api v2.95.1 · ko
모든 시스템 정상 작동 중

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

AstroWay API 엔지니어링 팀. Swiss Ephemeris를 깔끔한 REST로 감싸고, 사실상 중요한 지루한 세부 사항들을 다룹니다.

// 이걸로 빌드해

Solar Fire에 사용된 것과 동일한 Swiss Ephemeris — 단 4줄의 코드로.

카드 없이 무료 키. 첫 결제 전까지 월 5,000 API 호출.

더 많은 블로그 글 모든 글 보기 →

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

베다 아스트로로지 API: 파라샤리에서 라尔 키탑까지 354개의 엔드포인트

AstroWay는 현재 상업용 API 중 가장 완벽한 베다 아스트로로지 커버리지를 제공합니다. 10개의 다샤 시스템, 16개의 바르가, 판창, 라尔 키탑 + KP + 자이미니. 어떻게 작동하는지 및 언제 어떤 기술을 선택해야 하는지