Skip to content
POST/api/astro/chinese/zodiac/1 credit

Chinese zodiac sign

The animal, its element, and who it gets on with. The animal comes from the year BRANCH and the element from the year STEM — which is what makes a Wood Dragon different from an Earth Dragon, and gives the cycle a sixty-year period rather than twelve. The Chinese year begins at LICHUN — the moment the Sun reaches 315 degrees of tropical longitude, around 4 February. Not 1 January, and not Chinese New Year, which is a lunar date drifting between 21 January and 20 February and governs the festival rather than the chart. Someone born on 20 January 2024 has 2023's pillar: a Water Rabbit, not a Wood Dragon. This is the single thing cheap implementations get wrong, and it misassigns the year for everyone born in January. Also returned: the two branches sharing the animal's trine, which the tradition reads as its natural allies, and the branch directly opposite, which is its clash. Plus the inner and secret animals from the month and hour branches — the year animal is the face others see, while those two are held to be nearer the person.

https://yogataraapi.prahlad.app/api/astro/chinese/zodiac/
Test Request

Authentication

Send your key in the X-API-Key header. Keys are server-side credentials — never put one in browser JavaScript or a mobile app.

X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/json

Request fields

FieldTypeRequiredNotes
date_timestring (date-time)required

The moment to calculate for, ISO 8601. ALWAYS include an offset or a trailing Z - a value with no zone is read as Asia/Kolkata (UTC+05:30), not UTC, and can return the previous day's result with a 200. '2026-09-01T06:00:00Z' and '2026-09-01 06:00:00' are different instants and give different answers.

day_boundarystringoptional

When the day pillar changes. 'zi_hour' is 23:00, the traditional rule; 'midnight' is what most software uses. They disagree for births between 23:00 and 24:00.

zi_hourmidnight
keysarrayoptional

Which calculations to return, as a list of names. See the key table for this endpoint; an unrecognised name rejects the whole request. One call costs one credit however many keys you ask for, so request everything you need at once rather than making several calls.

latitudenumber (double)optional

Latitude of the place, in decimal degrees. Positive is north, negative is south. Example: 26.9124 for Jaipur, 40.7128 for New York. Minutes and seconds are not accepted - convert first.

longitudenumber (double)optional

Longitude of the place, in decimal degrees. Positive is east, negative is west. Example: 75.7873 for Jaipur, -74.0060 for New York. Note the sign: a missing minus puts New York in China.

orb_factornumber (double)optional

Scale every aspect orb. 0.5 halves them, 2 doubles them.

min 0.1 · max 2

timezone_as_floatnumber (double)optional

UTC offset of the place, in hours, as a decimal. Example: 5.5 for India (UTC+05:30), -5 for New York in winter, 5.75 for Nepal. This is NOT validated against date_time - if the two disagree you get a successful response for the wrong moment, so derive both from the same source. Use the offset in force on that date, not today's: a summer birth in a country with daylight saving needs the summer offset.

min -12 · max 14

true_solar_timebooleanoptional

Correct the hour by the longitude's offset from the timezone meridian. Traditional practice uses true local solar time and it can move the hour pillar by one place.

Example request

curl -X POST https://yogataraapi.prahlad.app/api/astro/chinese/zodiac/ \
  -H "X-API-Key: $OCCULT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date_time":"1984-06-15T14:30:00+08:00","latitude":39.9042,"longitude":116.4074,"timezone_as_float":8}'

Response

{
  "data": {
    "system": "Chinese zodiac",
    "chinese_year": 1984,
    "year_begins_at_lichun": "1984-02-04T15:18:45+00:00",
    "animal": "Rat",
    "element": "wood",
    "polarity": "yang",
    "sign": "Wood Rat",
    "year_pillar": "Jia-Zi",
    "allies": [
      "Dragon",
      "Monkey"
    ],
    "clash": "Horse",
    "inner_animal": {
      "animal": "Horse",
      "from": "month branch",
      "meaning": "Traditionally read as the private self."
    },
    "secret_animal": {
      "animal": "Goat",
      "from": "hour branch",
      "meaning": "Traditionally read as the innermost self."
    },
    "note": "The animal follows the year branch and the year turns at Lichun, about 4 February. A January birth carries the PREVIOUS year's animal."
  },
  "status": 200,
  "is_error": false,
  "message": "successful"
}

Captured from a real call using the exact request above. Results sit under data.

Errors

Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.