Determine zodiac sign from birthdate
Enter a birth month and day to get the sun sign and its range: August 23 is Virgo, which runs from August 23 to September 22. No birth year is needed, and February 29 works too. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Month
- 8
- Day
- 23
- Sign
- Virgo
- Date range
- August 23 – September 22
Enter a birth month and day to determine the corresponding Western zodiac sign from the standard tropical date ranges. The calculator validates that the date can occur, accepts February 29 without requiring a year, and returns both the sign name and its familiar date range. It uses a fixed, deterministic table rather than the current date, a timezone, or an outside astrology service. That makes it useful for forms, quizzes, profiles, and automated workflows that need a consistent answer from a simple month-and-day input.
Enter a valid birth month and day
Provide month as an integer from 1 through 12 and day as an integer that is possible in that month. January is 1, February is 2, and December is 12. February 29 is accepted because a person can be born on leap day and the year is not needed for this conventional sun-sign lookup.
Once the pair passes calendar validation, the calculator compares it with the inclusive boundaries of the twelve standard Western tropical sign ranges. The input month and day are also returned in normalized numeric form, making the response easy to associate with the submitted record.
Understand standard zodiac boundaries
The lookup follows the commonly published fixed date ranges for Western tropical sun signs. Capricorn covers December 22 through January 19, so its interval crosses the end of the calendar year. Aquarius begins January 20, Pisces begins February 19, Aries begins March 21, Taurus begins April 20, Gemini begins May 21, Cancer begins June 21, Leo begins July 23, Virgo begins August 23, Libra begins September 23, Scorpio begins October 23, Sagittarius begins November 22, and Capricorn begins December 22.
Every start and end date is inclusive, which makes cusp-day behavior explicit and testable. For example, March 20 returns Pisces while March 21 returns Aries. They are not an astronomical calculation of the Sun’s exact position for a particular year, time, and birthplace, and they should not be presented as a natal chart or precise ephemeris result.
Use the result in apps and workflows
A successful response is deliberately small: it contains the validated month and day, the English sign name, and the sign’s readable standard date range. A profile form can store sign as a label, a quiz can compare it with an expected answer, and a content system can use it to select a themed page without shipping its own boundary table. Use the browser experience for an immediate personal lookup.
If a request fails validation, display the returned message near the month and day controls so the user can correct the combination. For products that require rising signs, houses, sidereal positions, or exact cusp timing, collect a full timestamp and birthplace and choose a specialized astronomical capability instead; this tool intentionally answers only the standard month-and-day question.
What you can do with it
Profile signup
Convert a month and day collected during onboarding into a consistent Western zodiac sign label.
Birthday quizzes
Check quiz answers and show the standard sign range without maintaining a separate boundary table.
Content personalization
Select sign-themed articles or cards from a validated birth month and day in an automated workflow.
FAQ
Which zodiac system does this use?
It uses the standard fixed date ranges for the twelve Western tropical sun signs.
Are boundary dates included?
Yes. Each listed start and end date is inclusive; March 20 is Pisces and March 21 is Aries.
Is a birth year required?
No. Only month and day are used, and February 29 is accepted without a year.
What zodiac sign is someone born on March 20?
March 20 falls under Pisces, while March 21 is the first day of Aries. Every boundary date is included in its sign’s range, so a birthday on the cusp always gets one clear answer.
Which sign covers birthdays in late December or early January?
Capricorn, which runs from December 22 through January 19 and is the only sign that crosses the new year. Aquarius then begins on January 20.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/misc2/zodiac-sign-from-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"month":8,"day":23}'const res = await fetch("https://api.kit.forhosting.com/misc2/zodiac-sign-from-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"month": 8,
"day": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/zodiac-sign-from-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"month": 8,
"day": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/zodiac-sign-from-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"month":8,"day":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"month":8,"day":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/zodiac-sign-from-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"month": 8,
"day": 23
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.zodiac_sign_from_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Enter a valid birth month and day
The date is validated before any sign is selected, so combinations such as April 31, June 31, or February 30 produce an invalid_input error instead of a misleading result. Values must be actual JSON integers: words, decimals, empty strings, numeric strings, missing fields, arrays, and values outside the documented bounds are rejected. This strict contract is useful in applications because bad form data remains visible and correctable rather than being silently rounded or converted.
Understand standard zodiac boundaries
The response includes date_range alongside sign so a person can see the convention used without consulting another chart. These popular fixed boundaries are appropriate for general profiles, entertainment, and educational tools.
Use the result in apps and workflows
Automated calls cost $0.002 per item and provide the same calculation to backends and integrations.
Technical questions
What happens for an impossible date?
An impossible combination such as April 31 returns an invalid_input error rather than a sign.
How much does an API lookup cost?
Each successful API item costs $0.002; the browser calculator can be used for free.