Daily Horoscope API with Unique Forecasts Per Sign [2026]
Most horoscope APIs return identical text for 11 of 12 signs. Learn how whole-sign house positions produce unique daily content per zodiac sign with transit metadata.
TL;DR
- Most horoscope APIs return the same generic text for 11 of 12 zodiac signs. Publisher-grade content requires unique forecasts per sign driven by real planetary house positions.
- The Western Astrology API returns a finished column plus unique overview, love, career, health, finance, and advice sections for every sign, every day, read through whole-sign houses and named by life area rather than house number.
- Every response also carries
events[](the dated aspects, sign changes, stations and lunations the reading names) andpositions[](where each of the ten bodies stands), so every claim in the prose can be checked against the same response. - One GET request per sign returns the whole daily reading, with
activeTransits,moonSign,moonPhase, andenergyRatingfor headlines, widgets, and push notifications.
If you have ever built a horoscope feature and compared the output for Aries against Cancer, you probably noticed something disappointing: the text was nearly identical. A different lucky number, maybe a different color. But the overview, career guidance, and health advice were the same generic sentences recycled across 10 or 11 signs.
That is not a minor cosmetic problem. It is the reason an editorial team at a consumer publisher rejects most API-generated horoscopes. They need content that is genuinely different for each sign, grounded in actual planetary positions, and written the way a horoscope columnist writes. Generic one-liners do not pass editorial review.
The Western Astrology API solves this with a house-based transit system that produces unique content across all 6 sections for every zodiac sign, every day.
Why most horoscope APIs produce identical content
The typical horoscope generator works like this: check which planets are transiting which signs today. If Mars is in Aries, write a Mars-in-Aries sentence for the Aries horoscope. Every other sign gets a generic fallback.
The problem is that most planets stay in the same sign for weeks or months. Jupiter spends about a year in one sign. Saturn spends 2-3 years. On any given day, only 1-2 signs have a planet transiting them directly. The remaining 10-11 signs hit the fallback path and receive identical text.
This is astronomically correct but editorially useless. A magazine publishing all 12 signs on the same page would expose the duplication immediately.
Ready to build this? RoxyAPI Western Astrology API gives you publisher-grade daily, weekly, and monthly horoscopes with unique content per sign. See pricing.
How whole-sign house positions create uniqueness
The fix is whole-sign houses. In this system, each zodiac sign corresponds to one house in the chart. When the Moon is in Libra, that is a different house for every sign:
| Sign | Moon house | Life area activated |
|---|---|---|
| Aries | 7th | Partnerships and relationships |
| Taurus | 6th | Health and daily routines |
| Gemini | 5th | Romance, creativity, and joy |
| Cancer | 4th | Home and emotional foundations |
| Leo | 3rd | Communication and learning |
| Virgo | 2nd | Finances and personal values |
| Libra | 1st | Identity and self-expression |
| Scorpio | 12th | Solitude and inner reflection |
| Sagittarius | 11th | Friendships and future goals |
| Capricorn | 10th | Career and public image |
| Aquarius | 9th | Adventure and higher learning |
| Pisces | 8th | Transformation and shared resources |
One Moon position. Twelve different life areas. Twelve different readings. The same principle applies to every planet and every dated event: each is placed in the house it occupies relative to the queried sign, and each topic field reads the transits that reach its own life area.
What the daily horoscope endpoint returns
A single GET request returns a complete daily forecast with 18 fields, including the finished column, the dated events the reading is built on, and the standing positions of all ten bodies:
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily?date=2026-04-03" \
-H "X-API-Key: YOUR_API_KEY"
{
"sign": "Aries",
"date": "2026-04-03",
"overview": "This morning, Mercury in your inner-life realm meets Jupiter in a flowing trine, and a secret ambition grows sturdier out of sight. A goal you're keeping to yourself is ready for a modest start. Write it on a card and tuck it in your wallet where only you'll see it each time you pay for something.",
"love": "If a date with someone new has you jittery, think of one story you enjoy telling and choose a spot you already know well. The Sun is exalted in your sign, and preparation shifts the flutter toward something like excitement. Familiar surroundings calm the nerves. They're probably just as anxious, and a warm smile helps everyone relax.",
"career": "Your ruler Mars moves through your house of solitude until April 9, and a clear boundary earns more goodwill than constant availability. When pings follow you after hours, pick a cutoff and set your status to match. Tell the people you work with when you'll reply. Most will respect it once they know. Your answers will be sharper when you do log on.",
"health": "Venus, at home in Taurus, passes through your money zone, and scouting somewhere to get active feels like a treat. New to the area or just curious? Many gyms, pools and studios offer a free trial pass. Try a couple over the next stretch and notice which one you'd happily return to. The right place feels welcoming from the first visit, so you'll spot it quickly.",
"finance": "Jupiter, at its strongest in Cancer, lights up your house of family life, and buying in bulk or on subscription trims the bill. If you have a pet, supplies bought one bag at a time often cost more than they need to. Compare the per-pound price of a larger bag, or set up a repeat order that comes with a discount. Your pet won't notice the difference. Your budget will.",
"advice": "Update the portfolio or resume you haven't touched in a year. Add the things you've finished lately and a line about what you'd like to do next. It helps even if you're happy where you are. Opportunities tend to find people whose work is plain to see, so lead with the project you're proudest of.",
"column": "A goal you're keeping to yourself is ready for a modest start. Write it on a card and tuck it in your wallet where only you'll see it each time you pay for something. This morning, messenger Mercury in your house of rest and renewal flows with Jupiter in an easy trine, and a secret ambition grows sturdier out of sight. Set aside a slot for a slow run, walking breaks allowed, and don't time it. Nobody needs to know yet, Aries, and that privacy is part of what makes it yours.",
"events": [
{"type": "aspect", "at": "2026-04-03T11:28:26Z", "bodies": ["Mercury", "Jupiter"], "aspect": "trine", "house": 12, "through": "2026-04-11T02:29:41Z"}
],
"positions": [
{"name": "Sun", "sign": "aries", "house": 1, "isRetrograde": false, "dignity": "exaltation", "enteredAt": "2026-03-20T14:45:57Z", "leavesAt": "2026-04-20T01:39:06Z"},
{"name": "Moon", "sign": "libra", "house": 7, "isRetrograde": false, "dignity": "peregrine", "enteredAt": "2026-04-01T02:50:46Z", "leavesAt": "2026-04-03T12:10:52Z"},
{"name": "Mercury", "sign": "pisces", "house": 12, "isRetrograde": false, "dignity": "fall", "enteredAt": "2026-02-06T22:48:04Z", "leavesAt": "2026-04-15T03:21:29Z"},
{"name": "Venus", "sign": "taurus", "house": 2, "isRetrograde": false, "dignity": "domicile", "enteredAt": "2026-03-30T16:00:52Z", "leavesAt": "2026-04-24T04:03:25Z"},
{"name": "Mars", "sign": "pisces", "house": 12, "isRetrograde": false, "dignity": "peregrine", "enteredAt": "2026-03-02T14:15:50Z", "leavesAt": "2026-04-09T19:36:09Z"},
{"name": "Jupiter", "sign": "cancer", "house": 4, "isRetrograde": false, "dignity": "exaltation", "enteredAt": "2025-06-09T21:02:10Z", "leavesAt": "2026-06-30T05:52:22Z"},
{"name": "Saturn", "sign": "aries", "house": 1, "isRetrograde": false, "dignity": "fall", "enteredAt": "2026-02-14T00:11:39Z", "leavesAt": "2028-04-13T03:39:44Z"},
{"name": "Uranus", "sign": "taurus", "house": 2, "isRetrograde": false, "dignity": "fall", "enteredAt": "2025-11-08T02:19:31Z", "leavesAt": "2026-04-26T00:51:32Z"},
{"name": "Neptune", "sign": "aries", "house": 1, "isRetrograde": false, "dignity": "peregrine", "enteredAt": "2026-01-26T17:34:38Z", "leavesAt": "2038-05-22T00:12:56Z"},
{"name": "Pluto", "sign": "aquarius", "house": 11, "isRetrograde": false, "dignity": "peregrine", "enteredAt": "2024-11-19T20:38:57Z", "leavesAt": "2043-03-09T01:01:26Z"}
],
"luckyNumber": 8,
"luckyColor": "Red",
"compatibleSigns": ["Leo", "Sagittarius", "Gemini"],
"activeTransits": [
"Sun in Aries (your sign)",
"Moon in Libra (your house of partnership)",
"Mercury in Pisces (your house of rest and renewal)",
"Venus in Taurus (your house of money)",
"Mars in Pisces (your house of rest and renewal)",
"Jupiter in Cancer (your house of home and family)",
"Saturn in Aries (your sign)"
],
"moonSign": "Libra",
"moonPhase": "Waning Gibbous Moon",
"energyRating": 6
}
Every string field is unique to Aries. Querying Cancer for the same date returns completely different text in all 6 content sections because the planetary house positions differ, and no two signs print the same sentence on the same day.
Using transit metadata for headlines and widgets
The activeTransits array gives you structured planet, sign and life-area data you can use for headlines, content labels, and SEO titles without parsing the prose:
"Moon in Libra (your house of partnership)"
A publisher can use the life area as a section header. A mobile app can use energyRating (1-10) for a visual energy meter. A push notification service can use moonPhase to trigger alerts on New Moon and Full Moon days. For anything a fact checker needs, use events[] and positions[], which carry exact UTC instants rather than display text.
The moonSign field changes every 2-3 days, so even when slow-moving planets produce stable house positions, the Moon-driven fields create natural daily variation in the content.
Scheduling future horoscopes with the date parameter
Editorial teams pre-publish content. The date query parameter lets you fetch horoscopes for any date, and the optional timezone parameter reads the day on the clock of your readers:
# Tomorrow
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily?date=2026-04-04" \
-H "X-API-Key: YOUR_API_KEY"
# Next week, read on New York time
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily?date=2026-04-10&timezone=America/New_York" \
-H "X-API-Key: YOUR_API_KEY"
The planetary positions are calculated from ephemeris data for the requested date, so future horoscopes are astronomically accurate, not interpolated or recycled, and a column scheduled months ahead is the column that runs.
Weekly and monthly forecasts
The same house-based system powers weekly and monthly endpoints:
# Weekly
curl "https://roxyapi.com/api/v2/astrology/horoscope/leo/weekly" \
-H "X-API-Key: YOUR_API_KEY"
# Monthly
curl "https://roxyapi.com/api/v2/astrology/horoscope/leo/monthly" \
-H "X-API-Key: YOUR_API_KEY"
Monthly horoscopes include a weekByWeek array that reads the month one calendar week at a time, naming the life area each week turns on for that sign and one thing to do about it, and a keyDates array listing the lunations, eclipses, retrograde and direct stations and slow-planet sign changes of the month, each on the day of its real instant and placed in the life area it reaches for that sign.
Multi-language support
All horoscope endpoints are composed in eight languages via the lang query parameter, any other language code returning English. Sign names, content sections, lucky colors, compatible sign names, and transit descriptions all translate:
# Turkish
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily?lang=tr" \
-H "X-API-Key: YOUR_API_KEY"
# Hindi (Devanagari)
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily?lang=hi" \
-H "X-API-Key: YOUR_API_KEY"
Supported languages: English (en), Turkish (tr), German (de), Spanish (es), Hindi (hi), Portuguese (pt), French (fr), Russian (ru).
How daily uniqueness works under the hood
Five steps produce the final forecast, and none of them involves a random draw or a language model:
- Compute the sky. Exact aspects, sign changes, retrograde and direct stations, lunations and eclipses are found to the second from the NASA JPL DE440 ephemeris.
- Read it into the sign. Each event lands in the whole-sign house it falls in for the reader, named by life area.
- Rank what matters. Exact aspects to the sign ruler, new and full moons in the reader own sign or partnership house, and slow-planet stations lead; minor contacts fill.
- Compose from audited text. Sentences come from writing prepared and reviewed in advance, assembled to keep one theme, frame each aspect the way columnists do, and close on one takeaway. A sign never meets the same sentence again inside 90 days where another fits, and no two signs share a sentence on the same day.
- Return the evidence. The events the reading names and the position of every body come back in
events[]andpositions[].
All planetary positions are verified against NASA JPL Horizons. The system is deterministic: the same sign, date and time zone always produce the same output. Why we chose this over a language model is in Deterministic Horoscope Engine vs LLM.
Frequently Asked Questions
Q: How many unique daily horoscopes does the API produce per day? A: Twelve. Every sign receives unique text across the column and all 6 content sections (overview, love, career, health, finance, advice). The uniqueness comes from whole-sign house positions, where the same planet occupies a different house for each sign, and from a rule that no two signs print the same sentence on the same day.
Q: Does the daily horoscope change every day? A: Yes. Each day is read from the events of that day and the position of the Moon, which changes sign every 2-3 days, and a sign does not meet the same sentence again inside 90 days where another fits. Slow-moving planets produce stable house positions that are unique per sign, while the dated events and Moon-driven fields change daily.
Q: Can I fetch horoscopes for future dates?
A: Yes. The date query parameter accepts any date in YYYY-MM-DD format. Planetary positions are calculated from ephemeris data for the requested date, so future horoscopes reflect actual astronomical positions.
Q: What is the energyRating field? A: A 1-10 score indicating how much planetary activity directly affects the queried sign on that day. Higher ratings mean more transits are activating the sign. Useful for visual indicators, push notification triggers, or content prioritization.
Q: Is the horoscope content generated by AI?
A: No language model runs at request time: every reading is composed deterministically from text written and audited in advance, and the astronomical calculations come from the NASA JPL DE440 ephemeris. Every event the reading names is returned in events[] for checking.
Start building
The daily horoscope endpoint is part of the Western Astrology API with 39+ endpoints covering birth charts, synastry, transits, returns, moon phases, and horoscopes. One API key, one subscription, all endpoints included.
Browse the API reference to try live requests, or see pricing to get started.