Monthly Horoscope (public, no key)
curl 'https://api.astroway.info/v1/public/horoscope/monthly?sign=aries'Sun-sign monthly horoscope. The cache key anchors to the 1st of the month. _footer watermark. The text comes in sections (overview, love, career, health, finance, advice; null in the rare answer that missed one) and as horoscope, the same sections as plain paragraphs, without headings or markup. Computed beside it, from the sky at noon UTC of date: transits (each planet with its sign and solar house counted from the requested sign, the sign itself being the 1st), aspects, events in the period (ingresses, stations, lunar phases, UTC), energy (a 1-10 score with every factor listed; a stated heuristic, not a classical technique), lucky (the sign’s traditional ruler, its weekday and Cheiro number) and compatibleSigns (same element and the complementary one). When the text cannot be written right now (reason: "ai_unavailable") or is not ready within 15 s ("ai_slow", it is still being written for the next reader), the answer is 200 with X-AI-Cache: STALE and fallback: { reason, textDate, textLanguage }: the most recent text for this sign in the requested language from up to two periods back, otherwise the English one. The computed fields are always for date. 503 AI_UNAVAILABLE only when no such text exists.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Zodiac sun sign.
Calendar date YYYY-MM-DD (UTC). Defaults to today.
Example
enLanguage for this call, overriding Accept-Language. The canonical per-call form: a page that renders in one language passes it here rather than reconfiguring its client. Unknown or inactive codes fall back to uk.
Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.
Example
planets.name,planets.longitudeRound every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.
Example
4Header Parameters
Section titled “Header Parameters ”BCP-47 language (e.g. uk, en, de). Set it once on your HTTP client as its default; for a single call, ?lang= overrides it. Unknown or inactive codes fall back to uk.
Responses
Section titled “ Responses ”OK
object
object
Free-tier watermark, present on every public response. Keys on a paid plan do not receive it.
Example
{ "ok": true, "data": { "sign": "aries", "date": "2026-06-01", "period": "monthly", "horoscope": "The week opens with …\n\n- Monday: …\n- Tuesday: …", "disclaimer": "For entertainment purposes only.", "model": "groq/llama-3.3-70b", "language": "en" }, "_footer": "Powered by astroway.api - get your own key at https://api.astroway.info"}Invalid sign or date
Example
{ "ok": false, "error": { "code": "INVALID_SIGN", "message": "sign must be one of the 12 zodiac signs" }}