Generate Kundali chart SVG
Generate Vedic astrological chart SVGs. Returns North Indian and South Indian style charts for both Lagna (D1) and Navamsa (D9), as SVG strings. Each planet shows abbreviation, degree°minutes', and superscripts for Vakri (ᴿ), Asta (ᶜ), and Vargottama (ᵛ). Returns North Indian (Uttar Bharatiya) and South Indian (Dakshina Bharatiya) Kundali charts as inline SVG. Also returns Navamsa (D9) chart. The response contains SVG strings for each chart style. To render them: 1. In browser: create an HTML file, paste the SVG string directly into the body tag. 2. In React/Vue/Angular: use dangerouslySetInnerHTML or v-html to render the SVG string. 3. To preview instantly: copy the lagna_north value and paste into https://svgviewer.dev Chart styles returned: - lagna_north: North Indian style (diamond layout) - lagna_south: South Indian style (square grid layout) - navamsa_north: D9 Navamsa chart North Indian style - navamsa_south: D9 Navamsa chart South Indian style - legend: R=Vakri(Retrograde) C=Asta(Combust) V=Vargottama
Endpoint
POST /v1/astro/chart
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| location | string | null | No | City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required. |
| name | string | No | Person name associated with the birth record |
| date | string | Yes | Birth date in YYYY-MM-DD format |
| time | string | null | No | Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback. |
| latitude | number | null | No | Latitude. Required if location not provided. |
| longitude | number | null | No | Longitude. Required if location not provided. |
| timezone | string | null | No | IANA timezone. Required if location not provided. |
| ayanamsa | string | No | Sidereal ayanamsa mode used in calculations |
Example request
- curl
- Python
- TypeScript
curl -X POST "https://api.asterwise.com/v1/astro/chart" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"1985-11-12","time":"06:45","latitude":19.076,"longitude":72.8777,"timezone":"Asia/Kolkata"}'
import asterwise
from asterwise.api.astrology_api import AstrologyApi
from asterwise.models.chart_request import ChartRequest
configuration = asterwise.Configuration(
host="https://api.asterwise.com",
access_token="YOUR_API_KEY",
)
request = ChartRequest(
date="1985-11-12",
time="06:45",
latitude=19.076,
longitude=72.8777,
timezone="Asia/Kolkata",
)
with asterwise.ApiClient(configuration) as client:
api = AstrologyApi(client)
result = api.chart_svg(chart_request=request)
print(result)
import { createClient, createConfig, chartSvg } from 'asterwise';
const client = createClient(createConfig({
baseUrl: 'https://api.asterwise.com',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
}));
const result = await chartSvg({
client,
body: {
"date": "1985-11-12",
"time": "06:45",
"latitude": 19.076,
"longitude": 72.8777,
"timezone": "Asia/Kolkata"
},
});
console.log(result.data);
Example response
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | True if the request succeeded |
| message | string | Human-readable status message |
| data | object | |
| data.lagna_north | string | North Indian Lagna chart SVG string |
| data.lagna_south | string | South Indian Lagna chart SVG string |
| data.navamsa_north | string | North Indian Navamsa (D9) chart SVG string |
| data.navamsa_south | string | South Indian Navamsa (D9) chart SVG string |
| data.legend | string | null | Superscript legend explaining chart markers |
Errors
| Code | Description | Reference |
|---|---|---|
| authentication_failed | Missing or invalid API key. | authentication_failed |
| ephemeris_unavailable | Upstream ephemeris service error. | ephemeris_unavailable |
| insufficient_tier | API key tier does not include this endpoint. | insufficient_tier |
| internal_error | Unexpected server error. | internal_error |
| ip_rate_limit_exceeded | Too many requests in a short window. | ip_rate_limit_exceeded |
| payload_too_large | Request body exceeds the size limit. | payload_too_large |
| resource_not_found | Referenced resource was not found. | resource_not_found |
| validation_error | Request body failed schema validation. | validation_error |