Korean Saju chart
curl --request POST \
--url https://api.astrom8.com/api/v3/korean/saju \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"time": "<string>",
"latitude": 0,
"longitude": 0,
"timezoneOffsetMinutes": 0,
"ayanamsa": "lahiri",
"locale": "<string>",
"focus": "general",
"question": "<string>",
"gender": "unknown",
"annual_luck_years_before": 40,
"annual_luck_years_after": 40
}
'import requests
url = "https://api.astrom8.com/api/v3/korean/saju"
payload = {
"date": "2023-12-25",
"time": "<string>",
"latitude": 0,
"longitude": 0,
"timezoneOffsetMinutes": 0,
"ayanamsa": "lahiri",
"locale": "<string>",
"focus": "general",
"question": "<string>",
"gender": "unknown",
"annual_luck_years_before": 40,
"annual_luck_years_after": 40
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
date: '2023-12-25',
time: '<string>',
latitude: 0,
longitude: 0,
timezoneOffsetMinutes: 0,
ayanamsa: 'lahiri',
locale: '<string>',
focus: 'general',
question: '<string>',
gender: 'unknown',
annual_luck_years_before: 40,
annual_luck_years_after: 40
})
};
fetch('https://api.astrom8.com/api/v3/korean/saju', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.astrom8.com/api/v3/korean/saju",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'date' => '2023-12-25',
'time' => '<string>',
'latitude' => 0,
'longitude' => 0,
'timezoneOffsetMinutes' => 0,
'ayanamsa' => 'lahiri',
'locale' => '<string>',
'focus' => 'general',
'question' => '<string>',
'gender' => 'unknown',
'annual_luck_years_before' => 40,
'annual_luck_years_after' => 40
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.astrom8.com/api/v3/korean/saju"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.astrom8.com/api/v3/korean/saju")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.astrom8.com/api/v3/korean/saju")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}"
response = http.request(request)
puts response.read_body{
"system": "<string>",
"pillars": {
"year": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"month": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"day": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"hour": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
}
},
"day_master": {
"stem": "<string>",
"korean": "<string>"
},
"five_elements": {
"counts": {},
"balance": {
"strongest": [
"<string>"
],
"missing": [
"<string>"
],
"favorable": "<string>"
}
},
"hidden_stems": {
"year": [
{
"stem": "<string>"
}
],
"month": [
{
"stem": "<string>"
}
],
"day": [
{
"stem": "<string>"
}
],
"hour": [
{
"stem": "<string>"
}
]
},
"branch_interactions": [
{
"branches": [
"<string>"
],
"pillars": [],
"description": "<string>"
}
],
"ten_gods": {
"year_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"month_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"day_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"hour_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
}
},
"major_luck": {
"direction_assumed_default": true,
"approximate_timescale_note": "<string>",
"periods": [
{
"index": 1,
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>",
"hidden_stems": [
{
"stem": "<string>"
}
],
"stem_ten_god": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"approximate_start_utc": "2023-11-07T05:31:56Z",
"approximate_end_utc_exclusive": "2023-11-07T05:31:56Z"
}
]
},
"annual_luck": {
"anchor_civil_year_utc": 123,
"years_before": 40,
"years_after": 40,
"approximate_calendar_note": "<string>",
"years": [
{
"civil_year": 123,
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>",
"hidden_stems": [
{
"stem": "<string>"
}
],
"stem_ten_god": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
}
}
]
},
"question": "<string>",
"reading_summary": "<string>"
}{
"error": "unauthorized",
"message": "Invalid API key",
"code": "401",
"request_id": "01HQXYZ..."
}{
"error": "payment_required",
"message": "Insufficient credits for this request",
"code": "402",
"request_id": "01HQXYZ..."
}{
"error": "internal_server_error",
"message": "Could not compute Panchang.",
"code": "internal",
"request_id": "01HQXYZ..."
}Chinese & Korean
Korean Saju chart
POST
/
api
/
v3
/
korean
/
saju
Korean Saju chart
curl --request POST \
--url https://api.astrom8.com/api/v3/korean/saju \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"time": "<string>",
"latitude": 0,
"longitude": 0,
"timezoneOffsetMinutes": 0,
"ayanamsa": "lahiri",
"locale": "<string>",
"focus": "general",
"question": "<string>",
"gender": "unknown",
"annual_luck_years_before": 40,
"annual_luck_years_after": 40
}
'import requests
url = "https://api.astrom8.com/api/v3/korean/saju"
payload = {
"date": "2023-12-25",
"time": "<string>",
"latitude": 0,
"longitude": 0,
"timezoneOffsetMinutes": 0,
"ayanamsa": "lahiri",
"locale": "<string>",
"focus": "general",
"question": "<string>",
"gender": "unknown",
"annual_luck_years_before": 40,
"annual_luck_years_after": 40
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
date: '2023-12-25',
time: '<string>',
latitude: 0,
longitude: 0,
timezoneOffsetMinutes: 0,
ayanamsa: 'lahiri',
locale: '<string>',
focus: 'general',
question: '<string>',
gender: 'unknown',
annual_luck_years_before: 40,
annual_luck_years_after: 40
})
};
fetch('https://api.astrom8.com/api/v3/korean/saju', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.astrom8.com/api/v3/korean/saju",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'date' => '2023-12-25',
'time' => '<string>',
'latitude' => 0,
'longitude' => 0,
'timezoneOffsetMinutes' => 0,
'ayanamsa' => 'lahiri',
'locale' => '<string>',
'focus' => 'general',
'question' => '<string>',
'gender' => 'unknown',
'annual_luck_years_before' => 40,
'annual_luck_years_after' => 40
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.astrom8.com/api/v3/korean/saju"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.astrom8.com/api/v3/korean/saju")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.astrom8.com/api/v3/korean/saju")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"date\": \"2023-12-25\",\n \"time\": \"<string>\",\n \"latitude\": 0,\n \"longitude\": 0,\n \"timezoneOffsetMinutes\": 0,\n \"ayanamsa\": \"lahiri\",\n \"locale\": \"<string>\",\n \"focus\": \"general\",\n \"question\": \"<string>\",\n \"gender\": \"unknown\",\n \"annual_luck_years_before\": 40,\n \"annual_luck_years_after\": 40\n}"
response = http.request(request)
puts response.read_body{
"system": "<string>",
"pillars": {
"year": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"month": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"day": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
},
"hour": {
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>"
}
},
"day_master": {
"stem": "<string>",
"korean": "<string>"
},
"five_elements": {
"counts": {},
"balance": {
"strongest": [
"<string>"
],
"missing": [
"<string>"
],
"favorable": "<string>"
}
},
"hidden_stems": {
"year": [
{
"stem": "<string>"
}
],
"month": [
{
"stem": "<string>"
}
],
"day": [
{
"stem": "<string>"
}
],
"hour": [
{
"stem": "<string>"
}
]
},
"branch_interactions": [
{
"branches": [
"<string>"
],
"pillars": [],
"description": "<string>"
}
],
"ten_gods": {
"year_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"month_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"day_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"hour_stem": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
}
},
"major_luck": {
"direction_assumed_default": true,
"approximate_timescale_note": "<string>",
"periods": [
{
"index": 1,
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>",
"hidden_stems": [
{
"stem": "<string>"
}
],
"stem_ten_god": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
},
"approximate_start_utc": "2023-11-07T05:31:56Z",
"approximate_end_utc_exclusive": "2023-11-07T05:31:56Z"
}
]
},
"annual_luck": {
"anchor_civil_year_utc": 123,
"years_before": 40,
"years_after": 40,
"approximate_calendar_note": "<string>",
"years": [
{
"civil_year": 123,
"stem": "<string>",
"branch": "<string>",
"stem_en": "<string>",
"branch_en": "<string>",
"animal": "<string>",
"hidden_stems": [
{
"stem": "<string>"
}
],
"stem_ten_god": {
"name": "<string>",
"korean": "<string>",
"relation": "<string>"
}
}
]
},
"question": "<string>",
"reading_summary": "<string>"
}{
"error": "unauthorized",
"message": "Invalid API key",
"code": "401",
"request_id": "01HQXYZ..."
}{
"error": "payment_required",
"message": "Insufficient credits for this request",
"code": "402",
"request_id": "01HQXYZ..."
}{
"error": "internal_server_error",
"message": "Could not compute Panchang.",
"code": "internal",
"request_id": "01HQXYZ..."
}Authorizations
Use the raw API key as the Bearer token, or send X-API-Key instead.
Body
application/json
Example:
"1992-04-15"
Pattern:
^\d{2}:\d{2}(:\d{2})?$Example:
"08:30:00"
Required range:
-90 <= x <= 90Required range:
-180 <= x <= 180Required range:
-840 <= x <= 840Available options:
lahiri Required string length:
2 - 24Example:
"th"
Available options:
general, love, career, wealth Required string length:
1 - 1000For major luck (대운) direction: male+Yang year → forward, male+Yin → backward; female is the opposite. When unknown, direction defaults to forward with direction_assumed_default on the response.
Available options:
male, female, unknown How many civil calendar years before the birth UTC calendar year to include in annual_luck (流年). Default 5; total row count capped at 121 years.
Required range:
0 <= x <= 80Civil years after birth UTC year in annual_luck. Default 20.
Required range:
0 <= x <= 80Response
Korean Saju report
Allowed value:
"korean_saju"Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
general, love, career, wealth Minimum string length:
1⌘I