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

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "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"

    • place Coordinates or object or object required

      Coordinates, 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:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • gender string required

    The traditional formula needs it. Used for this response and not stored.

    one of male, female

  • year_boundary string

    one of li_chun, lunar_new_year · default "li_chun"

  • options object
    • lang string required

      one of en, hi · default "en"

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • year integer required
  • year_boundary string required
  • boundaries_agree boolean required
  • number integer required
  • gua string required
  • chinese string required
  • group string required

    one of east, west

  • home_direction object required
    • id string required
    • name string required
  • mansions array of object required
    • id string required
    • chinese string required
    • name string required
    • kind string required

      one of good, bad

    • direction object required
      Fields
      • id string required
      • name string 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

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

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_degrees number required

    The bearing the building faces, in degrees from magnetic north, as a luopan reads it.

    ≥ 0 · < 360

  • kua integer

    An occupant's Kua number, from /v1/feng-shui/kua. 5 is not valid.

    ≥ 1 · ≤ 9

  • options object
    • lang string required

      one of en, hi · default "en"

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • facing object required
    • id string required
    • chinese string required
    • palace object required
      Fields
      • id string required
      • name string required
    • order_in_palace integer required
    • from_degree number required
    • to_degree number required
  • sitting object required
    • id string required
    • chinese string required
    • palace object required
      Fields
      • id string required
      • name string required
    • order_in_palace integer required
    • from_degree number required
    • to_degree number required
  • house object required
    • number integer required
    • gua string required
    • chinese string required
    • group string required

      one of east, west

    • home_direction object required
      Fields
      • id string required
      • name string required
    • mansions array of object required
      Fields
      • id string required
      • chinese string required
      • name string required
      • kind string required

        one of good, bad

      • direction object required
        Fields
        • id string required
        • name string required
  • occupant object
    • kua integer required
    • group string required
    • same_group boolean required
    • facing_mansion string required
    • sitting_mansion string required
    • mansions array of object required
      Fields
      • id string required
      • chinese string required
      • name string required
      • kind string required

        one of good, bad

      • direction object required
        Fields
        • id string required
        • name string 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

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

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_degrees number required

    The bearing the building faces, in degrees from magnetic north, as a luopan reads it.

    ≥ 0 · < 360

  • period integer

    Period 9 runs from Li Chun 2024 to Li Chun 2044.

    ≥ 1 · ≤ 9

  • built_year integer

    Used for the period if you do not give one. It does not know which side of Li Chun the building was finished.

    ≥ 1864 · ≤ 2100

  • options object
    • lang string required

      one of en, hi · default "en"

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • period integer required
  • facing object required
    • degrees number required
    • mountain object required
      Fields
      • id string required
      • chinese string required
      • palace object required
        Fields
        • id string required
        • name string required
      • order_in_palace integer required
      • from_degree number required
      • to_degree number required
  • sitting object required
    • degrees number required
    • mountain object required
      Fields
      • id string required
      • chinese string required
      • palace object required
        Fields
        • id string required
        • name string required
      • order_in_palace integer required
      • from_degree number required
      • to_degree number required
  • mountain_star object required
    • center integer required
    • flight string required

      one of forward, reverse

  • water_star object required
    • center integer required
    • flight string required

      one of forward, reverse

  • palaces array of object required
    • palace object required
      Fields
      • id string required
      • name string required
    • base integer required
    • mountain integer required
    • water integer required
    • timeliness object required
      Fields
      • mountain string required

        one of current, next, future, retreating, past

      • water string required

        one of current, next, future, retreating, past

  • structure string or null required

    One of:

    1. string
    2. null
  • fu_yin object required
    • mountain boolean required
    • water boolean required
  • fan_yin object required
    • mountain boolean required
    • water boolean required
  • near_boundary boolean required
  • replacement_chart boolean 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

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

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_degrees number required

    The bearing the building faces, in degrees from magnetic north, as a luopan reads it.

    ≥ 0 · < 360

  • period integer

    Period 9 runs from Li Chun 2024 to Li Chun 2044.

    ≥ 1 · ≤ 9

  • built_year integer

    ≥ 1864 · ≤ 2100

  • theme string

    one of light, dark · default "light"

  • options object
    • lang string required

      one 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

The chart this example request returns

Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

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

  • year integer required

    ≥ 1901 · ≤ 2099

  • options object
    • lang string required

      one of en, hi · default "en"

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • year integer required
  • from string (date-time) required
  • to string (date-time) required
  • year_pillar string required
  • period integer required
  • center_star integer required
  • stars array of object required
    • palace object required
      Fields
      • id string required
      • name string required
    • star integer required
  • five_yellow object required
    • id string required
    • name string required
  • tai_sui object required
    • id string required
    • chinese string required
    • palace object required
      Fields
      • id string required
      • name string required
    • order_in_palace integer required
    • from_degree number required
    • to_degree number required
  • sui_po object required
    • id string required
    • chinese string required
    • palace object required
      Fields
      • id string required
      • name string required
    • order_in_palace integer required
    • from_degree number required
    • to_degree number required
  • san_sha object required
    • id string required
    • name string required
  • months array of object required
    • month integer required
    • center_star integer required
    • five_yellow object required
      Fields
      • id string required
      • name string required
    • stars array of object required
      Fields
      • palace object required
        Fields
        • id string required
        • name string required
      • star integer 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": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one