Transits
Two endpoints for transit work:
| Endpoint | Credits | What it does |
|---|---|---|
POST /v1/transits | 50 | Transit chart for a specific date, overlaid on natal location |
POST /v1/transit-calendar | 100 | Calendar of transit events over a date range |
POST /v1/transits — overlay
Section titled “POST /v1/transits — overlay”Calculates planet positions on a given transit date in the natal location’s coordinates.
Parameters
Section titled “Parameters”All natal chart parameters (date, time, timezoneOffset, latitude, longitude, houseSystem) plus:
| Parameter | Type | Required | Description |
|---|---|---|---|
transitDate | string | Yes | Transit date YYYY-MM-DD |
transitTime | string | No (12:00:00) | Transit time HH:mm:ss |
transitTzOffset | number | No (0) | Transit timezone offset |
Example
Section titled “Example”curl -X POST https://api.astroway.info/v1/transits \ -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, "transitDate": "2026-04-14", "transitTime": "12:00:00", "transitTzOffset": 3 }'const res = await fetch('https://api.astroway.info/v1/transits', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': process.env.ASTROWAY_API_KEY!, }, body: JSON.stringify({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, transitDate: '2026-04-14', transitTime: '12:00:00', transitTzOffset: 3, }),});const transits = await res.json();console.log(transits.planets); // Transit planet positionsimport os, requests
r = requests.post( 'https://api.astroway.info/v1/transits', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={ 'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3, 'latitude': 50.4501, 'longitude': 30.5234, 'transitDate': '2026-04-14', 'transitTime': '12:00:00', 'transitTzOffset': 3, },)transits = r.json()print(transits['planets'])<?phpuse GuzzleHttp\Client;
$aw = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$r = $aw->post('transits', [ 'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')], 'json' => [ 'date' => '1990-07-14', 'time' => '14:30:00', 'timezoneOffset' => 3, 'latitude' => 50.4501, 'longitude' => 30.5234, 'transitDate' => '2026-04-14', 'transitTime' => '12:00:00', 'transitTzOffset' => 3, ],]);$transits = json_decode($r->getBody(), true);print_r($transits['planets']);Response
Section titled “Response”Same structure as /v1/chart — full chart with planets, houses, aspects — but calculated for the transit date.
POST /v1/transit-calendar — event calendar
Section titled “POST /v1/transit-calendar — event calendar”Scans a date range and returns a list of transit events: exact aspects of transit planets to natal planets, ingresses, retrogrades.
Additional parameters
Section titled “Additional parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Range start YYYY-MM-DD |
endDate | string | Yes | Range end YYYY-MM-DD |
Example
Section titled “Example”curl -X POST https://api.astroway.info/v1/transit-calendar \ -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, "startDate": "2026-04-01", "endDate": "2026-04-30" }'const r = await fetch('https://api.astroway.info/v1/transit-calendar', { method: 'POST', headers: { 'X-Api-Key': apiKey, 'Content-Type': 'application/json' }, body: JSON.stringify({date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, startDate: '2026-04-01', endDate: '2026-04-30',}),});const { data: calendar } = await r.json();
for (const event of calendar.events) { console.log(`${event.date}: ${event.transitPlanet} ${event.aspect} ${event.natalPlanet}`);}import os, requests
r = requests.post( 'https://api.astroway.info/v1/transit-calendar', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={ 'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3, 'latitude': 50.4501, 'longitude': 30.5234, 'startDate': '2026-04-01', 'endDate': '2026-04-30', },)calendar = r.json()['data']for event in calendar['events']: print(f"{event['date']}: {event['transitPlanet']} {event['aspect']} {event['natalPlanet']}")<?phpuse GuzzleHttp\Client;
$aw = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$r = $aw->post('transit-calendar', [ 'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')], 'json' => [ 'date' => '1990-07-14', 'time' => '14:30:00', 'timezoneOffset' => 3, 'latitude' => 50.4501, 'longitude' => 30.5234, 'startDate' => '2026-04-01', 'endDate' => '2026-04-30', ],]);$calendar = json_decode($r->getBody(), true)['data'];foreach ($calendar['events'] as $e) { printf("%s: %s %s %s\n", $e['date'], $e['transitPlanet'], $e['aspect'], $e['natalPlanet']);}Example response
Section titled “Example response”{ "events": [ { "date": "2026-04-03", "transitPlanet": "Mars", "natalPlanet": "Sun", "aspect": "conjunction", "orb": 0.12, "exact": true }, { "date": "2026-04-15", "transitPlanet": "Jupiter", "natalPlanet": "Moon", "aspect": "trine", "orb": 0.45, "exact": true } ]}Related endpoints
Section titled “Related endpoints”| Endpoint | Credits | What it adds |
|---|---|---|
/v1/forecast-calendar | 100 | Annual forecast — 365-day heatmap |
/v1/progressions | 50 | Secondary progressions |
/v1/solar-return | 50 | Solar return (annual chart) |
/v1/aspect-timeline | 100 | Aspect timeline over range |
- Natal chart — basic request
- Synastry — two-chart compatibility
- Human Design — full HD chart
- API reference — all 705 endpoints
Was this helpful?
Thanks for the feedback.