Persona Chart API
Introducing the Persona Chart API, an advanced Western astrology technique that casts a full chart for the exact moment - within the first year of life - that the transiting Sun reaches the natal degree of a chosen planet. This API is designed for websites, mobile apps, chatbots, CRM dashboards, or astrology portals that want to offer this specialized personal-development technique alongside standard natal chart readings.
API Endpoint
POST https://astroapi-8.divineapi.com/western-api/v1/persona-chartGuide: Casts a full chart for the exact moment the transiting Planet reaches the natal degree of the chosen persona_planet.
Supported Language Codes
Support Article URL: https://support.divineapi.com/general-api-support/translating-an-indian-vedic-apis-into-a-different-language
| Code | Language |
|---|---|
| en | English |
| hi | Hindi |
| bn | Bengali |
| ma | Marathi |
| tm | Tamil |
| tl | Telugu |
| ml | Malayalam |
| kn | Kannada |
Guide: These languages are supported by this API. You can use them by passing lan in the request body with the value of the language.
Headers
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Your API Access Token. Example: Bearer {token} |
Fields marked with * are mandatory.
Request Body
| Name | Type | Description |
|---|---|---|
| api_key* | String | Your API key from the DivineAPI dashboard. |
| full_name* | String | Free text. |
| day* | Integer | 1–31 (must form a valid real date together with month/year). |
| month* | Integer | 1–12. |
| hour* | Integer | 0–23. |
| min* | Integer | 0–59. |
| sec* | Integer | 0–59. |
| gender* | String | Free text, no enforced values. |
| place* | String | Free text, display only. |
| lat* | Number | -90 to 90. |
| lon* | Number | -180 to 180. |
| tzone* | Number | -15 to 15 (decimal hours allowed, e.g. 5.5). |
| persona_planet* | String | One of: sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto (case-insensitive). |
| lan | String | Language code as per the table above. Default is en. |
| house_system | String | Single-letter Swiss Ephemeris house system code: P Placidus, K Koch, O Porphyry, R Regiomontanus, C Campanus, A/E Equal (from Asc), D Equal (from MC), V Vehlow Equal, W Whole Sign, X Meridian/Axial Rotation, M Morinus, S Sripati, T Topocentric (Polich-Page), B Alcabitius, N Whole sign (from 0° Aries). |
| node_type | String | meannode | truenode — which lunar node convention is used for North/South Node positions. |
| output_include | String | See “Response size control” below. |
Optional — chart appearance (only affects the wheel_chart images, never the numeric data)
| Name | Default | Allowed values |
|---|---|---|
| graphic_layout | INNER_V1_HOUSE_CUSPS_PLANETS_DEGREES_SIGNS | PLANETS_ONLY, PLANETS_DEGREES, PLANETS_DEGREES_SIGNS, INNER_V1_HOUSE_CUSPS_PLANETS, INNER_V1_HOUSE_CUSPS_PLANETS_DEGREES, INNER_V1_HOUSE_CUSPS_PLANETS_DEGREES_SIGNS, INNER_V2_HOUSE_CUSPS_PLANETS, INNER_V2_HOUSE_CUSPS_PLANETS_DEGREES, INNER_V2_HOUSE_CUSPS_PLANETS_DEGREES_SIGNS, OUTER_HOUSE_CUSPS_PLANETS, OUTER_HOUSE_CUSPS_PLANETS_DEGREES, OUTER_HOUSE_CUSPS_PLANETS_DEGREES_SIGNS |
| planet_icon | 1 | Only 1 has defined behavior (current glyph set); any other value falls back to the legacy glyph rendering. |
| planet_glyphs | COLORED_SMALL | COLORED_SMALL | COLORED_LARGE | BLACK_LARGE |
| planet_graphic_thickness | 0 | Number, 0–1 (glyph boldness). |
| sign_graphic_thickness | 0 | Number, 0–1 (zodiac glyph boldness). |
| filter_effect | (unset → DEFAULT_THEME) | DEFAULT_THEME, LIGHT_THEME, SUNRISE_THEME, OCEAN_THEME, FOREST_THEME, COSMIC_THEME, DARK_THEME, NIGHT_THEME, MONOCHROME_THEME — any unrecognized value silently falls back to DEFAULT_THEME. |
| element_color | default | DEFAULT_THEME, WARM_THEME, MUTED_THEME, COSMIC_THEME, EARTHY_THEME — must match exactly (uppercase); the literal default doesn’t match any theme name and falls back to DEFAULT_THEME. |
| sign_element_air_color | #60a5fa | Any CSS color string — overrides the Air element color from the element_color theme. |
| sign_element_fire_color | #f87171 | Any CSS color string. |
| sign_element_water_color | #38bdf8 | Any CSS color string. |
| sign_element_earth_color | #a3e635 | Any CSS color string. |
| show_planet_retro | 0 | 1 = show retrograde marker on planets, 0/omitted = hide. |
| persona_planet* | String | One of: sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto (case-insensitive). |
| planet_aspects | ASPECTS_INNER_CIRCLE | ASPECTS_INNER_CIRCLE | ASPECTS_TOUCH_PLANETS |
| degrees_color | (unset) | Only meaningful value is COLORED_BY_PLANET (colors each degree label by its planet’s element); anything else/omitted uses the default text color. |
sign_text_color, house_text_color, sign_background, house_background, aspect_background, main_background, lines_color | theme defaults | Any CSS color string — override the corresponding color from the filter_effect theme. |
| background | - | Accepted but not currently applied by the chart renderer — has no visible effect. |
Optional — aspect calculation
| Name | Default | Allowed values |
|---|---|---|
| aspects_type | ALL | ALL | MAJOR_ASPECTS | MINOR_ASPECTS | a comma-separated list of specific aspect names: CONJUNCTION, SEXTILE, SQUARE, TRINE, OPPOSITION, SEMISEXTILE, SEMISQUARE, SESQUIQUADRATE, QUINCUNX, QUINTILE, BIQUINTILE, NOVILE, SEPTILE (can’t mix a special keyword with named aspects). |
| aspect_orbs_type | default | FIXED | PERCENTAGE (must be provided together with aspect_orbs_value, or both omitted). |
| aspect_orbs_value | default | If aspect_orbs_type=PERCENTAGE: integer -99–100. If aspect_orbs_type=FIXED: "degree" or "degree_min", e.g. "5" or "5_30" (degree 0–15, minutes 0–59). |
Response Size Control (output_include)
By default (raw_data, or the param omitted entirely) the response contains only the numeric/textual data — no chart images — keeping the payload small (~15–20 KB). Chart images are large (each wheel_chart entry can be several hundred KB to over 1 MB) and must be explicitly requested.
| Token | Adds |
|---|---|
| raw_data | planetary_positions, house_cusps, aspect_table, persona_natal_aspect |
| persona_wheel_chart_svg | Persona chart image, SVG |
| persona_wheel_chart_base64 | Persona chart image, base64-encoded |
| natal_wheel_chart_svg | Natal chart image, SVG |
| natal_wheel_chart_base64 | Natal chart image, base64-encoded |
| persona_x_natal_wheel_chart_svg | Persona×Natal overlay chart image, SVG |
| persona_x_natal_wheel_chart_base64 | Persona×Natal overlay chart image, base64-encoded |
| all | Everything above, combined |
200: OK Fetched Persona Chart Successfully
{
"status": "success",
"code": 200,
"message": "Request successful",
"data": {
"persona_planet": "Sun",
"persona_datetime": "1991-08-24 19:16:00",
"planetary_positions": [
{"name": "Ascendant", "full_degree": "340.3069516", "sign": "Pisces", "sign_no": 12, "longitude": "10:18:25", "speed": "498.9753636", "is_retro": "false", "is_rising": "false", "is_setting": "false", "in_midheaven": "false", "house": 1, "element": "Water", "modality": "Mutable"},
{"name": "Sun", "full_degree": "150.9055278", "sign": "Virgo", "sign_no": 6, "longitude": "0:54:20", "speed": "0.9638115", "is_retro": "false", "is_rising": "false", "is_setting": "false", "in_midheaven": "false", "house": 6, "element": "Earth", "modality": "Mutable"},
{"name": "Moon", "full_degree": "321.770395", "sign": "Aquarius", "sign_no": 11, "longitude": "21:46:13", "speed": "12.2146061", "is_retro": "false", "is_rising": "false", "is_setting": "false", "in_midheaven": "false", "house": 12, "element": "Air", "modality": "Fixed"}
/* ... remaining planets, North/South Node, MC, Vertex, Chiron, Part of
fortune and Lilith follow the same shape ... */
],
"house_cusps": {
"houses": [
{"house": 1, "full_degree": "340.3069516", "sign": "Pisces", "sign_no": 12, "longitude": "10:18:25"}
/* ... houses 2-12 ... */
],
"ascendant": "340.3069516",
"midheaven": "257.1695065",
"vertex": "171.5342701"
},
"aspect_table": [
{"planetOne": "Sun", "planetTwo": "Moon", "orb": 9.14, "aspect": "Opposition"},
{"planetOne": "Sun", "planetTwo": "Mercury", "orb": 4.85, "aspect": "Conjunction"}
/* ... every persona-chart planet pair with an aspect, one row each ... */
],
"persona_natal_aspect": [
{"planetOne": "Sun", "planetTwo": "Sun", "orb": 0, "aspect": "Conjunction"},
{"planetOne": "Sun", "planetTwo": "Moon", "orb": 5.73, "aspect": "Novile"}
/* ... every persona-planet-to-natal-planet aspect, one row each ... */
]
}
}Example Code Implementations
Below are example implementations in various programming environments.
cURL
curl --location 'https://astroapi-8.divineapi.com/western-api/v1/persona-chart' \
--header 'Authorization: {token}' \
--form 'api_key="Your API Key"' \
--form 'full_name="Rahul Kumar"' \
--form 'day="24"' \
--form 'month="08"' \
--form 'year="1990"' \
--form 'hour="13"' \
--form 'min="23"' \
--form 'sec="0"' \
--form 'gender="male"' \
--form 'place="New Delhi"' \
--form 'lat="28.644800"' \
--form 'lon="77.216721"' \
--form 'tzone="5.5"' \
--form 'lan="en"' \
--form 'house_system="A"' \
--form 'persona_planet="sun"'Notes and Best Practices
• persona_planet=sun is accepted, but many reference sources don't treat “Persona Sun” as a distinct concept — the Sun can't have a persona chart relative to itself in the usual sense, since that reduces to a literal one-year-later Solar Return chart. If you pass sun, that's exactly what you'll get.
• The search always starts 1 day after birth and scans up to 366 days forward, so persona_datetime always falls within roughly the first year of life.
• Invalid persona_planet or output_include values return a 422 with the full allowed-values list in the error message.
• Chart-appearance parameters (graphic_layout, filter_effect, element_color, etc.) only affect the wheel_chart images — they never change the numeric/textual data.
• Request only the output_include tokens you need; chart images add significant payload size (hundreds of KB to over 1 MB each).