Feng Shui
The Kua number and Eight Mansions, a building's gua, Xuan Kong flying star charts with an SVG grid, and each year's stars, Five Yellow, Tai Sui, Sui Po and San Sha. It says where the traditional stars fall and gives no cures.
A person's Kua number, East or West group and eight directions
POST/v1/feng-shui/kua
1 credit · Secret key (test or live) · getKua · Page for this operation
The year turns at Li Chun by default, or at Lunar New Year if you choose. The traditional formula needs gender.
Request body
birthBirth requireddatestring (date) requirede.g.
"1990-08-13"timestringpattern
^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$· e.g."06:30"time_accuracystringWith "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.
one of
exact,approximate,unknown· default"exact"placeCoordinates or object or object requiredCoordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.
One of:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
timezonestring"auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".
default
"auto"
No other fields are accepted.
genderstring requiredThe traditional formula needs it. Used for this response and not stored.
one of
male,femaleyear_boundarystringone of
li_chun,lunar_new_year· default"li_chun"optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
yearinteger requiredyear_boundarystring requiredboundaries_agreeboolean requirednumberinteger requiredguastring requiredchinesestring requiredgroupstring requiredone of
east,westhome_directionobject requiredidstring requirednamestring required
mansionsarray of object requiredidstring requiredchinesestring requirednamestring requiredkindstring requiredone of
good,baddirectionobject requiredFields
idstring requirednamestring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/feng-shui/kua' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"gender":"female"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/feng-shui/kua", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"birth": {
"date": "1990-08-13",
"time": "06:30",
"place": {
"latitude": 28.6139,
"longitude": 77.209
}
},
"gender": "female"
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"birth": {
"date": "1990-08-13",
"time": "06:30",
"place": {
"latitude": 28.6139,
"longitude": 77.209,
},
},
"gender": "female",
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/feng-shui/kua",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/feng-shui/kua');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"gender":"female"}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,078 characters
{
"data": {
"year": 1990,
"year_boundary": "li_chun",
"boundaries_agree": true,
"number": 8,
"gua": "gen",
"chinese": "艮",
"group": "west",
"home_direction": {
"id": "NE",
"name": "northeast"
},
"mansions": [
{
"id": "sheng_qi",
"chinese": "生气",
"name": "Life Generating",
"kind": "good",
"direction": {
"id": "SW",
"name": "southwest"
}
},
{
"id": "tian_yi",
"chinese": "天医",
"name": "Heavenly Doctor",
"kind": "good",
"direction": {
"id": "NW",
"name": "northwest"
}
},
{
"id": "yan_nian",
"chinese": "延年",
"name": "Longevity",
"kind": "good",
"direction": {
"id": "W",
"name": "west"
}
},
{
"id": "fu_wei",
"chinese": "伏位",
"name": "Stability",
"kind": "good",
"direction": {
"id": "NE",
"name": "northeast"
}
},
{
"id": "huo_hai",
"chinese": "祸害",
"name": "Mishap",
"kind": "bad",
"direction": {
"id": "S",
"name": "south"
}
},
{
"id": "wu_gui",
"chinese": "五鬼",
"name": "Five Ghosts",
"kind": "bad",
"direction": {
"id": "N",
"name": "north"
}
},
{
"id": "liu_sha",
"chinese": "六煞",
"name": "Six Killings",
"kind": "bad",
"direction": {
"id": "E",
"name": "east"
}
},
{
"id": "jue_ming",
"chinese": "绝命",
"name": "Life Ending",
"kind": "bad",
"direction": {
"id": "SE",
"name": "southeast"
}
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}Try it
A building's gua from its facing, its eight mansions, and how it fits an occupant's Kua
POST/v1/feng-shui/house
1 credit · Secret key (test or live) · getFengShuiHouse · Page for this operation
Request body
facing_degreesnumber requiredThe bearing the building faces, in degrees from magnetic north, as a luopan reads it.
≥ 0 · < 360
kuaintegerAn occupant's Kua number, from /v1/feng-shui/kua. 5 is not valid.
≥ 1 · ≤ 9
optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
facingobject requiredidstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
sittingobject requiredidstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
houseobject requirednumberinteger requiredguastring requiredchinesestring requiredgroupstring requiredone of
east,westhome_directionobject requiredFields
idstring requirednamestring required
mansionsarray of object requiredFields
idstring requiredchinesestring requirednamestring requiredkindstring requiredone of
good,baddirectionobject requiredFields
idstring requirednamestring required
occupantobjectkuainteger requiredgroupstring requiredsame_groupboolean requiredfacing_mansionstring requiredsitting_mansionstring requiredmansionsarray of object requiredFields
idstring requiredchinesestring requirednamestring requiredkindstring requiredone of
good,baddirectionobject requiredFields
idstring requirednamestring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/feng-shui/house' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"facing_degrees":180,"kua":1}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/feng-shui/house", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"facing_degrees": 180,
"kua": 1
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"facing_degrees": 180,
"kua": 1,
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/feng-shui/house",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/feng-shui/house');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"facing_degrees":180,"kua":1}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 4,600 characters
{
"data": {
"facing": {
"id": "wu",
"chinese": "午",
"palace": {
"id": "S",
"name": "south"
},
"order_in_palace": 2,
"from_degree": 172.5,
"to_degree": 187.5
},
"sitting": {
"id": "zi",
"chinese": "子",
"palace": {
"id": "N",
"name": "north"
},
"order_in_palace": 2,
"from_degree": 352.5,
"to_degree": 7.5
},
"house": {
"number": 1,
"gua": "kan",
"chinese": "坎",
"group": "east",
"home_direction": {
"id": "N",
"name": "north"
},
"mansions": [
{
"id": "sheng_qi",
"chinese": "生气",
"name": "Life Generating",
"kind": "good",
"direction": {
"id": "SE",
"name": "southeast"
}
},
{
"id": "tian_yi",
"chinese": "天医",
"name": "Heavenly Doctor",
"kind": "good",
"direction": {
"id": "E",
"name": "east"
}
},
{
"id": "yan_nian",
"chinese": "延年",
"name": "Longevity",
"kind": "good",
"direction": {
"id": "S",
"name": "south"
}
},
{
"id": "fu_wei",
"chinese": "伏位",
"name": "Stability",
"kind": "good",
"direction": {
"id": "N",
"name": "north"
}
},
{
"id": "huo_hai",
"chinese": "祸害",
"name": "Mishap",
"kind": "bad",
"direction": {
"id": "W",
"name": "west"
}
},
{
"id": "wu_gui",
"chinese": "五鬼",
"name": "Five Ghosts",
"kind": "bad",
"direction": {
"id": "NE",
"name": "northeast"
}
},
{
"id": "liu_sha",
"chinese": "六煞",
"name": "Six Killings",
"kind": "bad",
"direction": {
"id": "NW",
"name": "northwest"
}
},
{
"id": "jue_ming",
"chinese": "绝命",
"name": "Life Ending",
"kind": "bad",
"direction": {
"id": "SW",
"name": "southwest"
}
}
]
},
"occupant": {
"kua": 1,
"group": "east",
"same_group": true,
"facing_mansion": "yan_nian",
"sitting_mansion": "fu_wei",
"mansions": [
{
"id": "sheng_qi",
"chinese": "生气",
"name": "Life Generating",
"kind": "good",
"direction": {
"id": "SE",
"name": "southeast"
}
},
{
"id": "tian_yi",
"chinese": "天医",
"name": "Heavenly Doctor",
"kind": "good",
"direction": {
"id": "E",
"name": "east"
}
},
{
"id": "yan_nian",
"chinese": "延年",
"name": "Longevity",
"kind": "good",
"direction": {
"id": "S",
"name": "south"
}
},
{
"id": "fu_wei",
"chinese": "伏位",
"name": "Stability",
"kind": "good",
"direction": {
"id": "N",
"name": "north"
}
},
{
"id": "huo_hai",
"chinese": "祸害",
"name": "Mishap",
"kind": "bad",
"direction": {
"id": "W",
"name": "west"
}
},
{
"id": "wu_gui",
"chinese": "五鬼",
"name": "Five Ghosts",
"kind": "bad",
"direction": {
"id": "NE",
"name": "northeast"
}
},
{
"id": "liu_sha",
"chinese": "六煞",
"name": "Six Killings",
"kind": "bad",
"direction": {
"id": "NW",
"name": "northwest"
}
},
{
"id": "jue_ming",
"chinese": "绝命",
"name": "Life Ending",
"kind": "bad",
"direction": {
"id": "SW",
"name": "southwest"
}
}
]
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}Try it
A Xuan Kong flying star chart: base, mountain and water stars in all nine palaces, and its structure
POST/v1/feng-shui/flying-stars
2 credits · Secret key (test or live) · getFlyingStars · Page for this operation
Give the facing bearing and either the period or the year built. Replacement charts are not calculated: near_boundary says when a school might use one.
Request body
facing_degreesnumber requiredThe bearing the building faces, in degrees from magnetic north, as a luopan reads it.
≥ 0 · < 360
periodintegerPeriod 9 runs from Li Chun 2024 to Li Chun 2044.
≥ 1 · ≤ 9
built_yearintegerUsed for the period if you do not give one. It does not know which side of Li Chun the building was finished.
≥ 1864 · ≤ 2100
optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
periodinteger requiredfacingobject requireddegreesnumber requiredmountainobject requiredFields
idstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
sittingobject requireddegreesnumber requiredmountainobject requiredFields
idstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
mountain_starobject requiredcenterinteger requiredflightstring requiredone of
forward,reverse
water_starobject requiredcenterinteger requiredflightstring requiredone of
forward,reverse
palacesarray of object requiredpalaceobject requiredFields
idstring requirednamestring required
baseinteger requiredmountaininteger requiredwaterinteger requiredtimelinessobject requiredFields
mountainstring requiredone of
current,next,future,retreating,pastwaterstring requiredone of
current,next,future,retreating,past
structurestring or null requiredOne of:
- string
- null
fu_yinobject requiredmountainboolean requiredwaterboolean required
fan_yinobject requiredmountainboolean requiredwaterboolean required
near_boundaryboolean requiredreplacement_chartboolean required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/feng-shui/flying-stars' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"facing_degrees":180,"period":9}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/feng-shui/flying-stars", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"facing_degrees": 180,
"period": 9
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"facing_degrees": 180,
"period": 9,
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/feng-shui/flying-stars",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/feng-shui/flying-stars');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"facing_degrees":180,"period":9}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 3,445 characters
{
"data": {
"period": 9,
"facing": {
"degrees": 180,
"mountain": {
"id": "wu",
"chinese": "午",
"palace": {
"id": "S",
"name": "south"
},
"order_in_palace": 2,
"from_degree": 172.5,
"to_degree": 187.5
}
},
"sitting": {
"degrees": 0,
"mountain": {
"id": "zi",
"chinese": "子",
"palace": {
"id": "N",
"name": "north"
},
"order_in_palace": 2,
"from_degree": 352.5,
"to_degree": 7.5
}
},
"mountain_star": {
"center": 5,
"flight": "reverse"
},
"water_star": {
"center": 4,
"flight": "forward"
},
"palaces": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"base": 1,
"mountain": 4,
"water": 5,
"timeliness": {
"mountain": "past",
"water": "past"
}
},
{
"palace": {
"id": "W",
"name": "west"
},
"base": 2,
"mountain": 3,
"water": 6,
"timeliness": {
"mountain": "past",
"water": "past"
}
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"base": 3,
"mountain": 2,
"water": 7,
"timeliness": {
"mountain": "future",
"water": "past"
}
},
{
"palace": {
"id": "S",
"name": "south"
},
"base": 4,
"mountain": 1,
"water": 8,
"timeliness": {
"mountain": "next",
"water": "retreating"
}
},
{
"palace": {
"id": "N",
"name": "north"
},
"base": 5,
"mountain": 9,
"water": 9,
"timeliness": {
"mountain": "current",
"water": "current"
}
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"base": 6,
"mountain": 8,
"water": 1,
"timeliness": {
"mountain": "retreating",
"water": "next"
}
},
{
"palace": {
"id": "E",
"name": "east"
},
"base": 7,
"mountain": 7,
"water": 2,
"timeliness": {
"mountain": "past",
"water": "future"
}
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"base": 8,
"mountain": 6,
"water": 3,
"timeliness": {
"mountain": "past",
"water": "past"
}
},
{
"palace": {
"id": "center",
"name": "center"
},
"base": 9,
"mountain": 5,
"water": 4,
"timeliness": {
"mountain": "past",
"water": "past"
}
}
],
"structure": "double_at_sitting",
"fu_yin": {
"mountain": false,
"water": false
},
"fan_yin": {
"mountain": true,
"water": false
},
"near_boundary": false,
"replacement_chart": false
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2
},
"warnings": []
}Try it
The flying star chart drawn as a nine-palace grid in SVG, south at the top
POST/v1/feng-shui/flying-stars.svg
2 credits · Secret key (test or live) · getFlyingStarsSvg · Page for this operation
Request body
facing_degreesnumber requiredThe bearing the building faces, in degrees from magnetic north, as a luopan reads it.
≥ 0 · < 360
periodintegerPeriod 9 runs from Li Chun 2024 to Li Chun 2044.
≥ 1 · ≤ 9
built_yearinteger≥ 1864 · ≤ 2100
themestringone of
light,dark· default"light"optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
image/svg+xml
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/feng-shui/flying-stars.svg' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"facing_degrees":180,"period":9}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/feng-shui/flying-stars.svg", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"facing_degrees": 180,
"period": 9
}),
});
console.log(await res.text());Python
import json
import urllib.error
import urllib.request
body = {
"facing_degrees": 180,
"period": 9,
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/feng-shui/flying-stars.svg",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(res.read().decode())
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/feng-shui/flying-stars.svg');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"facing_degrees":180,"period":9}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
Try it
A year's flying stars, Five Yellow, Tai Sui, Sui Po and San Sha, with the twelve monthly charts
POST/v1/feng-shui/annual
1 credit · Secret key (test or live) · getFengShuiAnnual · Page for this operation
Request body
yearinteger required≥ 1901 · ≤ 2099
optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
yearinteger requiredfromstring (date-time) requiredtostring (date-time) requiredyear_pillarstring requiredperiodinteger requiredcenter_starinteger requiredstarsarray of object requiredpalaceobject requiredFields
idstring requirednamestring required
starinteger required
five_yellowobject requiredidstring requirednamestring required
tai_suiobject requiredidstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
sui_poobject requiredidstring requiredchinesestring requiredpalaceobject requiredFields
idstring requirednamestring required
order_in_palaceinteger requiredfrom_degreenumber requiredto_degreenumber required
san_shaobject requiredidstring requirednamestring required
monthsarray of object requiredmonthinteger requiredcenter_starinteger requiredfive_yellowobject requiredFields
idstring requirednamestring required
starsarray of object requiredFields
palaceobject requiredFields
idstring requirednamestring required
starinteger required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/feng-shui/annual' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"year":2026}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/feng-shui/annual", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"year": 2026
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"year": 2026,
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/feng-shui/annual",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/feng-shui/annual');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"year":2026}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 19,633 characters
{
"data": {
"year": 2026,
"from": "2026-02-03T20:01:54.541Z",
"to": "2027-02-04T01:46:24.431Z",
"year_pillar": "丙午",
"period": 9,
"center_star": 1,
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 2
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 3
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 4
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 5
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 6
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 7
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 8
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 9
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 1
}
],
"five_yellow": {
"id": "S",
"name": "south"
},
"tai_sui": {
"id": "wu",
"chinese": "午",
"palace": {
"id": "S",
"name": "south"
},
"order_in_palace": 2,
"from_degree": 172.5,
"to_degree": 187.5
},
"sui_po": {
"id": "zi",
"chinese": "子",
"palace": {
"id": "N",
"name": "north"
},
"order_in_palace": 2,
"from_degree": 352.5,
"to_degree": 7.5
},
"san_sha": {
"id": "N",
"name": "north"
},
"months": [
{
"month": 1,
"center_star": 8,
"five_yellow": {
"id": "SW",
"name": "southwest"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 9
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 1
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 2
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 3
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 4
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 5
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 6
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 7
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 8
}
]
},
{
"month": 2,
"center_star": 7,
"five_yellow": {
"id": "E",
"name": "east"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 8
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 9
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 1
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 2
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 3
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 4
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 5
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 6
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 7
}
]
},
{
"month": 3,
"center_star": 6,
"five_yellow": {
"id": "SE",
"name": "southeast"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 7
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 8
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 9
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 1
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 2
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 3
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 4
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 5
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 6
}
]
},
{
"month": 4,
"center_star": 5,
"five_yellow": {
"id": "center",
"name": "center"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 6
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 7
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 8
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 9
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 1
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 2
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 3
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 4
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 5
}
]
},
{
"month": 5,
"center_star": 4,
"five_yellow": {
"id": "NW",
"name": "northwest"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 5
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 6
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 7
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 8
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 9
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 1
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 2
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 3
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 4
}
]
},
{
"month": 6,
"center_star": 3,
"five_yellow": {
"id": "W",
"name": "west"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 4
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 5
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 6
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 7
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 8
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 9
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 1
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 2
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 3
}
]
},
{
"month": 7,
"center_star": 2,
"five_yellow": {
"id": "NE",
"name": "northeast"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 3
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 4
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 5
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 6
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 7
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 8
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 9
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 1
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 2
}
]
},
{
"month": 8,
"center_star": 1,
"five_yellow": {
"id": "S",
"name": "south"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 2
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 3
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 4
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 5
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 6
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 7
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 8
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 9
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 1
}
]
},
{
"month": 9,
"center_star": 9,
"five_yellow": {
"id": "N",
"name": "north"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 1
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 2
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 3
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 4
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 5
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 6
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 7
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 8
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 9
}
]
},
{
"month": 10,
"center_star": 8,
"five_yellow": {
"id": "SW",
"name": "southwest"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 9
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 1
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 2
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 3
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 4
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 5
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 6
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 7
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 8
}
]
},
{
"month": 11,
"center_star": 7,
"five_yellow": {
"id": "E",
"name": "east"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 8
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 9
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 1
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 2
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 3
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 4
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 5
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 6
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 7
}
]
},
{
"month": 12,
"center_star": 6,
"five_yellow": {
"id": "SE",
"name": "southeast"
},
"stars": [
{
"palace": {
"id": "NW",
"name": "northwest"
},
"star": 7
},
{
"palace": {
"id": "W",
"name": "west"
},
"star": 8
},
{
"palace": {
"id": "NE",
"name": "northeast"
},
"star": 9
},
{
"palace": {
"id": "S",
"name": "south"
},
"star": 1
},
{
"palace": {
"id": "N",
"name": "north"
},
"star": 2
},
{
"palace": {
"id": "SW",
"name": "southwest"
},
"star": 3
},
{
"palace": {
"id": "E",
"name": "east"
},
"star": 4
},
{
"palace": {
"id": "SE",
"name": "southeast"
},
"star": 5
},
{
"palace": {
"id": "center",
"name": "center"
},
"star": 6
}
]
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}