Generate Natal Report (PDF or HTML)
POST /reports/natal
POST
/reports/natal
Render a Western tropical natal chart as a single-page A4 PDF (default) or live HTML (add ?format=html). Includes Big Three (Sun/Moon/ASC), full planets table with houses + retrograde, all 12 house cusps, and major aspects. Set whitelabel: true to apply the caller’s branding overrides. Languages: uk (default) or en. PDF URLs valid 24h via auto-cleanup cron; HTML mode streams directly without storage.
Authorizations
Section titled “Authorizations ”Code Samples
Section titled “ Code Samples ”curl -X POST https://api.astroway.info/v1/reports/natal \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{ "chart": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "language": "uk", "whitelabel": false }'const res = await fetch('https://api.astroway.info/v1/reports/natal', { method: 'POST', headers: { 'X-Api-Key': process.env.ASTROWAY_API_KEY, 'Content-Type': 'application/json', }, body: JSON.stringify({ "chart": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "language": "uk", "whitelabel": false }),});const { ok, data, error } = await res.json();if (!ok) throw new Error(error.message);console.log(data);import os, requests
r = requests.post( 'https://api.astroway.info/v1/reports/natal', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={ 'chart': { 'date': "1990-05-15", 'time': "14:30:00", 'timezoneOffset': 3, 'latitude': 50.45, 'longitude': 30.52 }, 'language': "uk", 'whitelabel': False },)result = r.json()if not result['ok']: raise RuntimeError(result['error']['message'])print(result['data'])<?phpuse GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$r = $client->post('reports/natal', [ 'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')], 'json' => [ 'chart' => [ 'date' => '1990-05-15', 'time' => '14:30:00', 'timezoneOffset' => 3, 'latitude' => 50.45, 'longitude' => 30.52, ], 'language' => 'uk', 'whitelabel' => false, ],]);$result = json_decode($r->getBody(), true);if (!$result['ok']) throw new \RuntimeException($result['error']['message']);print_r($result['data']);Request Body required
Section titled “Request Body required ”object
chart
required
Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss). Defaults to lat/lon/tz=0 if omitted; pass real values for accurate computation.
object
date
required
string
time
required
string
timezoneOffset
number
latitude
number
longitude
number
houseSystem
string
name
string
city
string
zodiacType
string
ayanamsaId
number
cosmogram
boolean
key
additional properties
language
string
whitelabel
boolean
Example
{ "chart": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "language": "uk", "whitelabel": false}Responses
Section titled “ Responses ”Successful calculation
object
ok
boolean
Example
true data
object
url
string
storage_key
string
byte_length
number
page_count
number
duration_ms
number
expires_at
string
Example
{ "ok": true, "data": { "url": "https://api.astroway.info/reports/abc-natal.pdf", "storage_key": "reports/abc-natal.pdf", "byte_length": 124350, "page_count": 1, "duration_ms": 3210, "expires_at": "2026-05-09T07:00:00Z" }}Validation error
Example
{ "ok": false, "error": { "code": "INVALID_INPUT", "message": "Validation failed: date: Date must be YYYY-MM-DD", "details": [ { "path": "date", "message": "Date must be YYYY-MM-DD" } ] }}Missing or invalid API key
Example
{ "ok": false, "error": { "code": "INVALID_API_KEY", "message": "Invalid API key" }} Корисно?
Дякуємо за фідбек.