Zodiac Signs
A complete reference of the 12 signs of the Western tropical zodiac, each annotated with its Unicode symbol glyph, classical element (fire, earth, air, water), modality (cardinal, fixed, mutable), and the conventional MM-DD start and end dates used in sun-sign astrology.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/zodiac-signs.json
Or use as a typed import:
import { zodiacSigns } from "https://staticdata.dev/v1/zodiac-signs.ts"
Formats
- JSON 1.8 KB
/v1/zodiac-signs.json
min: 1.3 KB · /v1/zodiac-signs.min.json
- CSV 496 B
/v1/zodiac-signs.csv
- TypeScript 2.0 KB
/v1/zodiac-signs.ts
export const zodiacSigns
type ZodiacSign = (typeof zodiacSigns)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| name | string | English name of the zodiac sign | Aries |
| symbol | string | Unicode glyph (U+2648–U+2653) for the sign | ♈ |
| element | string | Classical element: fire, earth, air, or water | fire |
| modality | string | Quality: cardinal, fixed, or mutable | cardinal |
| startDate | string | Conventional start date as MM-DD (tropical, no year) | 03-21 |
| endDate | string | Conventional end date as MM-DD (tropical, no year) | 04-19 |
Preview
First 10 records.
| name | symbol | element | modality | startDate | endDate |
|---|---|---|---|---|---|
| Aries | ♈ | fire | cardinal | 03-21 | 04-19 |
| Taurus | ♉ | earth | fixed | 04-20 | 05-20 |
| Gemini | ♊ | air | mutable | 05-21 | 06-20 |
| Cancer | ♋ | water | cardinal | 06-21 | 07-22 |
| Leo | ♌ | fire | fixed | 07-23 | 08-22 |
| Virgo | ♍ | earth | mutable | 08-23 | 09-22 |
| Libra | ♎ | air | cardinal | 09-23 | 10-22 |
| Scorpio | ♏ | water | fixed | 10-23 | 11-21 |
| Sagittarius | ♐ | fire | mutable | 11-22 | 12-21 |
| Capricorn | ♑ | earth | cardinal | 12-22 | 01-19 |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/zodiac-signs.json | jq '.[0]' import type { ZodiacSign } from "https://staticdata.dev/v1/zodiac-signs.ts";
const res = await fetch("https://staticdata.dev/v1/zodiac-signs.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const zodiacSigns: ZodiacSign[] = await res.json();
console.log(zodiacSigns[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/zodiac-signs.min.json") as r:
zodiacSigns = json.load(r)
print(zodiacSigns[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/zodiac-signs.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/zodiac-signs.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The 12 signs of the Western tropical zodiac divide the ecliptic into 30-degree arcs, each associated with a classical element (fire, earth, air, water) repeated in order, and a modality (cardinal, fixed, mutable) that cycles through each element group. The date ranges reflect the conventional sun-sign boundaries used in popular Western astrology, where the sun transits each sign for roughly 28–31 days per year. Because the tropical zodiac is anchored to the vernal equinox rather than to fixed stars, the dates remain stable across years (with only a one-day variation around leap years).
Each sign is encoded with its Unicode symbol from the Miscellaneous Symbols block (U+2648 ARIES through U+2653 PISCES), enabling consistent rendering across modern fonts and platforms. Dates are stored as MM-DD strings to be year-agnostic; callers should prepend the relevant year when constructing full Date objects, keeping in mind that Capricorn spans the year boundary (December 22 – January 19).
This dataset reflects well-established Western astrological convention and is intended for use in locale-aware applications, date pickers, cultural reference tools, and educational contexts. It does not cover sidereal/Vedic zodiac boundaries, Chinese zodiac signs, or the IAU astronomical constellation boundaries, which differ from the tropical system used here.
Versioning
URLs under /v1/ are stable: field names and types will not change in a way
that breaks consumers. Values can be corrected or records added when the upstream source
changes; schema-incompatible updates ship under a new version path. See the
zodiac-signs changelog for this dataset's history.