Copy page

Copy page as Markdown for LLMs

View as Markdown

View this page as plain text


Open in ChatGPT

Ask ChatGPT about this page

Open in Claude

Ask Claude about this page

Natal Insights

The Natal Insights API provides a synthesized view of a native’s birth chart by summarizing element distribution, modality (modes) balance, and hemisphere dominance. This is useful for high-level personality overviews, onboarding flows, and compact “about you” astrology sections.


Step by Step Natal Insights API Postman Testing Integration

https://support.divineapi.com/western-astrology-apis/testing-western-api-planetary-positions-api-using-postman


Supported Language Codes

Support Article URL:
https://support.divineapi.com/general-api-support/translating-a-natal-apis-into-a-different-language

CodeLanguage
enEnglish
hiHindi
ptPortuguese
frFrench
deGerman
jaJapanese
trTurkish
ruRussian
itItalian
esSpanish
nlDutch
plPolish

Guide: Pass lan in the request body with one of the above codes to get localized output. Default is en.


House System Codes

House System Codes Support Article URL:
https://support.divineapi.com/western-astrology-apis/how-to-change-the-house-system-code-in-natal-astrology

CodeHouse System Name
PPlacidus
KKoch
RRegiomontanus
CCampanus
AEqual
WEqual, Whole Sign
NWhole Sign, Aries = 1st House
XAxial Rotation System / Meridian Houses
TPolich/Page (“Topocentric”)
MMorinus
OPorphyry
BAlcabitius
DEqual / MC
EEqual = A
FCarter Poli-Equatorial
G36 Gauquelin Sectors
HHorizon / Azimuth
ISunshine
iSunshine (Alternative)
LPullen S-Delta
QPullen S-Ratio
SSripati
UKrusinski-Pisa-Goelzer
VEqual Vehlow
YAPC Houses

Note: Default house system is P – Placidus.


API Endpoint

POST https://astroapi-4.divineapi.com/western-api/v1/natal-insights

Returns natal insights in response.


Headers

NameTypeDescription
Authorization*StringYour API Access Token, e.g. Bearer {token}

Request Body

NameTypeDescription
api_key*StringYour API key
full_name*StringFull name, e.g. Rahul Kumar
day*IntegerDate of birth, e.g. 24
month*IntegerMonth of birth, e.g. 05
year*IntegerYear of birth, e.g. 2023
hour*IntegerHour, e.g. 14
min*IntegerMinute, e.g. 40
sec*IntegerSecond, e.g. 43
gender*StringGender, e.g. male
place*StringPlace of birth, e.g. New Delhi
lat*FloatLatitude, e.g. 28.7041
lon*FloatLongitude, e.g. 77.1025
tzone*FloatTimezone, e.g. 5.5 (see Timezone List)
lanStringLanguage code, default: en
house_systemStringHouse system code, default: P (Placidus)
node_typeStringmeannode or truenode (default: meannode)

200: OK Natal Insights Fetched Successfully

{
    "success": 1,
    "data": {
        "elements": {
            "elements_data": [
                {
                    "name": "Fire",
                    "percentage": 25
                },
                {
                    "name": "Earth",
                    "percentage": 33.33
                },
                {
                    "name": "Air",
                    "percentage": 8.33
                },
                {
                    "name": "Water",
                    "percentage": 33.33
                }
            ],
            "description": "You’re grounded, dependable, and practical. You like things you can touch, build, and trust. Stability is important to you, and you often find comfort in routines and long-term plans. You value hard work and tend to show your care through consistent actions. People rely on you because you’re steady and responsible. You don’t rush into decisions—you prefer to assess, plan, and then proceed. Sometimes, you may resist change or get caught up in material concerns, but your strength lies in your patience, loyalty, and realism."
        },
        "modes": {
            "modes_data": [
                {
                    "name": "Cardinal",
                    "percentage": 8.33
                },
                {
                    "name": "Fixed",
                    "percentage": 58.33
                },
                {
                    "name": "Mutable",
                    "percentage": 33.33
                }
            ],
            "description": "Since fixed signs dominate your chart, you’re dependable, determined, and deeply rooted in your values. You don’t back down easily, and once you commit to something—or someone—you give it your all. You’re often the anchor in storms, staying steady when others waver. You value loyalty, consistency, and perseverance. Change doesn’t come easily to you, but when it does, it’s on your terms. Others may see you as stubborn or resistant, but your real strength is your staying power. When you decide something matters, you’ll stick with it through thick and thin."
        },
        "hemisphere": {
            "east_west": {
                "dominant": "West",
                "description": "Your western hemisphere is dominant, you’re naturally collaborative, people-oriented, and responsive to your environment. You gain clarity and direction through your relationships and interactions with others. Rather than pushing your own agenda, you often adapt, support, and harmonize, making you great at working in teams or partnerships. You may find your identity through service, cooperation, or shared goals. While you can sometimes struggle with self-assertion, your strength lies in empathy, diplomacy, and understanding that life is better when shared."
            },
            "north_south": {
                "dominant": "South",
                "description": "As you’re Southern-dominant, you’re extroverted, socially engaged, and drawn to public life or collective impact. You feel a strong pull toward the outer world—whether through career, community, or social influence. You often seek meaning through contribution, achievement, or leadership, and your sense of self is tied to how you connect with the world. You may be ambitious, expressive, and eager to be seen or heard. While you might sometimes overlook personal needs, your strength is your ability to uplift and inspire others on a broader scale."
            }
        }
    }
}

Example Code Implementations

Below are example implementations in various programming environments.


cURL

curl --location 'https://astroapi-4.divineapi.com/western-api/v1/natal-insights
' \
--header 'Authorization: Bearer your API Access Token' \
--form 'api_key="your API Key"' \
--form 'full_name="Rahul Kumar"' \
--form 'day="24"' \
--form 'month="05"' \
--form 'year="2023"' \
--form 'hour="14"' \
--form 'min ="40"' \
--form 'sec="43"' \
--form 'gender="male"' \
--form 'place="New Delhi, India"' \
--form 'lat="28.7041"' \
--form 'lon="77.1025"' \
--form 'tzone="5.5"' \
--form 'lan="en"' \
--form 'house_system="P"'

NodeJS

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://astroapi-4.divineapi.com/western-api/v1/natal-insights',
  'headers': {
    'Authorization': 'Bearer your API Access Token'
  },
  formData: {
    'api_key': 'your API Key',
    'full_name': 'Rahul Kumar',
    'day': '24',
    'month': '05',
    'year': '2023',
    'hour': '14',
    'min ': '40',
    'sec': '43',
    'gender': 'male',
    'place': 'New Delhi, India',
    'lat': '28.7041',
    'lon': '77.1025',
    'tzone': '5.5',
    'lan': 'en',
    'house_system': 'P'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});


JavaScript (jQuery AJAX)

var form = new FormData();
form.append("api_key", "your API Key");
form.append("full_name", "Rahul Kumar");
form.append("day", "24");
form.append("month", "05");
form.append("year", "2023");
form.append("hour", "14");
form.append("min ", "40");
form.append("sec", "43");
form.append("gender", "male");
form.append("place", "New Delhi, India");
form.append("lat", "28.7041");
form.append("lon", "77.1025");
form.append("tzone", "5.5");
form.append("lan", "en");
form.append("house_system", "P");

var settings = {
  "url": "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer your API Access Token"
  },
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Python

import requests

url = "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
"

payload = {'api_key': 'your API Key',
'full_name': 'Rahul Kumar',
'day': '24',
'month': '05',
'year': '2023',
'hour': '14',
'min ': '40',
'sec': '43',
'gender': 'male',
'place': 'New Delhi, India',
'lat': '28.7041',
'lon': '77.1025',
'tzone': '5.5',
'lan': 'en',
'house_system': 'P'}
files=[

]
headers = {
  'Authorization': 'Bearer your API Access Token'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
Example Code
curl -X POST "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
" \
  -H "Authorization: Bearer your API Access Token" \
  --form 'api_key="your API Key"' \
  --form 'full_name="Rahul Kumar"' \
  --form 'day="24"' \
  --form 'month="05"' \
  --form 'year="2023"' \
  --form 'hour="14"' \
  --form 'min ="40"' \
  --form 'sec="43"' \
  --form 'gender="male"' \
  --form 'place="New Delhi, India"' \
  --form 'lat="28.7041"' \
  --form 'lon="77.1025"' \
  --form 'tzone="5.5"' \
  --form 'lan="en"' \
  --form 'house_system="P"'
const FormData = require('form-data');
const axios = require('axios');

const form = new FormData();
form.append('api_key', 'your API Key');
form.append('full_name', 'Rahul Kumar');
form.append('day', '24');
form.append('month', '05');
form.append('year', '2023');
form.append('hour', '14');
form.append('min ', '40');
form.append('sec', '43');
form.append('gender', 'male');
form.append('place', 'New Delhi, India');
form.append('lat', '28.7041');
form.append('lon', '77.1025');
form.append('tzone', '5.5');
form.append('lan', 'en');
form.append('house_system', 'P');

const response = await axios.post('https://astroapi-4.divineapi.com/western-api/v1/natal-insights
', form, {
  headers: {
    ...form.getHeaders(),
    'Authorization': 'Bearer your API Access Token',
  }
});

console.log(response.data);
import requests

url = "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
"
headers = {
    "Authorization": "Bearer your API Access Token",
}
payload = {
    "api_key": "your API Key",
    "full_name": "Rahul Kumar",
    "day": "24",
    "month": "05",
    "year": "2023",
    "hour": "14",
    "min ": "40",
    "sec": "43",
    "gender": "male",
    "place": "New Delhi, India",
    "lat": "28.7041",
    "lon": "77.1025",
    "tzone": "5.5",
    "lan": "en",
    "house_system": "P",
}

response = requests.post(url, headers=headers, data=payload)

print(response.json())
const formData = new FormData();
formData.append('api_key', 'your API Key');
formData.append('full_name', 'Rahul Kumar');
formData.append('day', '24');
formData.append('month', '05');
formData.append('year', '2023');
formData.append('hour', '14');
formData.append('min ', '40');
formData.append('sec', '43');
formData.append('gender', 'male');
formData.append('place', 'New Delhi, India');
formData.append('lat', '28.7041');
formData.append('lon', '77.1025');
formData.append('tzone', '5.5');
formData.append('lan', 'en');
formData.append('house_system', 'P');

const response = await fetch('https://astroapi-4.divineapi.com/western-api/v1/natal-insights
', {
  method: 'POST',
  headers: {
      'Authorization': "Bearer your API Access Token",
    },
  body: formData,
});

const data = await response.json();
console.log(data);
<?php

use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('POST', 'https://astroapi-4.divineapi.com/western-api/v1/natal-insights
', [
    'headers' => [
        'Authorization' => 'Bearer your API Access Token',
    ],
    'multipart' => [
        ['name' => 'api_key', 'contents' => 'your API Key'],
        ['name' => 'full_name', 'contents' => 'Rahul Kumar'],
        ['name' => 'day', 'contents' => '24'],
        ['name' => 'month', 'contents' => '05'],
        ['name' => 'year', 'contents' => '2023'],
        ['name' => 'hour', 'contents' => '14'],
        ['name' => 'min ', 'contents' => '40'],
        ['name' => 'sec', 'contents' => '43'],
        ['name' => 'gender', 'contents' => 'male'],
        ['name' => 'place', 'contents' => 'New Delhi, India'],
        ['name' => 'lat', 'contents' => '28.7041'],
        ['name' => 'lon', 'contents' => '77.1025'],
        ['name' => 'tzone', 'contents' => '5.5'],
        ['name' => 'lan', 'contents' => 'en'],
        ['name' => 'house_system', 'contents' => 'P'],
    ],
]);

echo $response->getBody();
package main

import (
    "bytes"
    "fmt"
    "mime/multipart"
    "net/http"
    "io"
)

func main() {
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    writer.WriteField("api_key", "your API Key")
    writer.WriteField("full_name", "Rahul Kumar")
    writer.WriteField("day", "24")
    writer.WriteField("month", "05")
    writer.WriteField("year", "2023")
    writer.WriteField("hour", "14")
    writer.WriteField("min ", "40")
    writer.WriteField("sec", "43")
    writer.WriteField("gender", "male")
    writer.WriteField("place", "New Delhi, India")
    writer.WriteField("lat", "28.7041")
    writer.WriteField("lon", "77.1025")
    writer.WriteField("tzone", "5.5")
    writer.WriteField("lan", "en")
    writer.WriteField("house_system", "P")
    writer.Close()

    req, _ := http.NewRequest("POST", "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
", body)
    req.Header.Set("Content-Type", writer.FormDataContentType())
    req.Header.Set("Authorization", "Bearer your API Access Token")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body2, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body2))
}
import okhttp3.*;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();

        RequestBody body = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart("api_key", "your API Key")
            .addFormDataPart("full_name", "Rahul Kumar")
            .addFormDataPart("day", "24")
            .addFormDataPart("month", "05")
            .addFormDataPart("year", "2023")
            .addFormDataPart("hour", "14")
            .addFormDataPart("min ", "40")
            .addFormDataPart("sec", "43")
            .addFormDataPart("gender", "male")
            .addFormDataPart("place", "New Delhi, India")
            .addFormDataPart("lat", "28.7041")
            .addFormDataPart("lon", "77.1025")
            .addFormDataPart("tzone", "5.5")
            .addFormDataPart("lan", "en")
            .addFormDataPart("house_system", "P")
            .build();

        Request request = new Request.Builder()
            .url("https://astroapi-4.divineapi.com/western-api/v1/natal-insights
")
            .post(body)
            .addHeader("Authorization", "Bearer your API Access Token")
            .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
import Foundation

let url = URL(string: "https://astroapi-4.divineapi.com/western-api/v1/natal-insights
")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer your API Access Token", forHTTPHeaderField: "Authorization")

let boundary = "Boundary-\(UUID().uuidString)"
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

var bodyData = Data()
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"api_key\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("your API Key\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"full_name\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("Rahul Kumar\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"day\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("24\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"month\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("05\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"year\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("2023\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"hour\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("14\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"min \"\r\n\r\n".data(using: .utf8)!)
bodyData.append("40\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"sec\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("43\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"gender\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("male\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"place\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("New Delhi, India\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lat\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("28.7041\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lon\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("77.1025\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"tzone\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("5.5\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lan\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("en\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"house_system\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("P\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = bodyData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()
import okhttp3.*

fun main() {
    val client = OkHttpClient()

    val body = MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("api_key", "your API Key")
        .addFormDataPart("full_name", "Rahul Kumar")
        .addFormDataPart("day", "24")
        .addFormDataPart("month", "05")
        .addFormDataPart("year", "2023")
        .addFormDataPart("hour", "14")
        .addFormDataPart("min ", "40")
        .addFormDataPart("sec", "43")
        .addFormDataPart("gender", "male")
        .addFormDataPart("place", "New Delhi, India")
        .addFormDataPart("lat", "28.7041")
        .addFormDataPart("lon", "77.1025")
        .addFormDataPart("tzone", "5.5")
        .addFormDataPart("lan", "en")
        .addFormDataPart("house_system", "P")
        .build()

    val request = Request.Builder()
        .url("https://astroapi-4.divineapi.com/western-api/v1/natal-insights
")
        .post(body!!)
        .addHeader("Authorization", "Bearer your API Access Token")
        .build()

    client.newCall(request).execute().use { response ->
        println(response.body?.string())
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", "Bearer your API Access Token");

        var content = new MultipartFormDataContent();
        content.Add(new StringContent("your API Key"), "api_key");
        content.Add(new StringContent("Rahul Kumar"), "full_name");
        content.Add(new StringContent("24"), "day");
        content.Add(new StringContent("05"), "month");
        content.Add(new StringContent("2023"), "year");
        content.Add(new StringContent("14"), "hour");
        content.Add(new StringContent("40"), "min ");
        content.Add(new StringContent("43"), "sec");
        content.Add(new StringContent("male"), "gender");
        content.Add(new StringContent("New Delhi, India"), "place");
        content.Add(new StringContent("28.7041"), "lat");
        content.Add(new StringContent("77.1025"), "lon");
        content.Add(new StringContent("5.5"), "tzone");
        content.Add(new StringContent("en"), "lan");
        content.Add(new StringContent("P"), "house_system");

        var response = await client.PostAsync("https://astroapi-4.divineapi.com/western-api/v1/natal-insights
", content);
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}