Quick Start
Five minutes from signup to a full natal chart in JSON.
-
Sign up at astroway.info
AstroWay API uses a shared account with the rest of the ecosystem. The free plan gives you 10,000 credits/month with no credit card.
-
Create a key in the dashboard
Every key starts with
aw_live_(production) oraw_test_(sandbox, doesn’t consume credits). Copy the key immediately - it’s shown in plain text only once. -
Make your first request
first-request.sh curl -X POST https://api.astroway.info/v1/chart \-H "X-Api-Key: aw_live_your_key_here" \-H "Content-Type: application/json" \-d '{"date": "1990-07-14","time": "14:30:00","timezoneOffset": 3,"latitude": 50.4501,"longitude": 30.5234,"houseSystem": "P"}'first-request.ts // native fetch - Node 18+ / Bun / Deno / browser. With the SDK: npm install @astroway/sdkconst r = await fetch('https://api.astroway.info/v1/chart', {method: 'POST',headers: {'X-Api-Key': process.env.ASTROWAY_API_KEY!,'Content-Type': 'application/json',},body: JSON.stringify({date: '1990-07-14',time: '14:30:00',timezoneOffset: 3,latitude: 50.4501,longitude: 30.5234,houseSystem: 'P',}),});const { data: chart } = await r.json();console.log(chart.planets[0]);first_request.py # requests or httpx. With the SDK: pip install astrowayimport os, requestsr = requests.post('https://api.astroway.info/v1/chart',headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY']},json={'date': '1990-07-14','time': '14:30:00','timezoneOffset': 3,'latitude': 50.4501,'longitude': 30.5234,'houseSystem': 'P',},)chart = r.json()['data']print(chart['planets'][0])first-request.php <?phpuse GuzzleHttp\Client;$client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$response = $client->post('chart', ['headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY'),'Content-Type' => 'application/json',],'json' => ['date' => '1990-07-14','time' => '14:30:00','timezoneOffset' => 3,'latitude' => 50.4501,'longitude' => 30.5234,'houseSystem' => 'P',],]);$chart = json_decode((string) $response->getBody(), true)['data'];print_r($chart['planets'][0]);timezoneOffsetis the offset the clocks kept on that date, in hours. If you do not know it, send"timezone": "Europe/Kyiv"instead, or"timezone": "auto"to take it from the coordinates, and the server works it out, summer time included: field formats. -
Read the response
Response - full JSON with planet positions, house cusps, aspects, and metadata. Abbreviated example:
{"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" }}}Response headers:
X-Credits-Used: 20X-Credits-Remaining: 9980X-Credits-Limit: 10000X-Credits-Reset: 2026-09-01T00:00:00.000ZX-RateLimit-Limit: 10X-RateLimit-Remaining: 9X-RateLimit-Reset: 1787432304X-Request-Id: 8aec43e9bc749b37e998a489bbad1757 -
Check your balance
Dashboard shows real-time usage: api.astroway.info/dashboard. Or via API:
Terminal window curl https://api.astroway.info/v1/keys/usage \-H "X-Api-Key: aw_live_your_key_here"
- Authentication: best practices, key rotation, sandbox mode
- Credits & Rate Limits: pricing table, rate limiting, overage
- Example: Natal chart: detailed
/v1/chartwalkthrough - Runnable integrations on GitHub - Discord/Slack bots, OpenAI tools, Cloudflare, FastAPI on the official SDKs
- Full API reference: all 760 endpoints with playground