BYTETOOLS

CosmyDay API

Free astrology API with no key, computed with the Swiss Ephemeris: upcoming ingresses, retrogrades, eclipses and zodiac seasons with exact times, plus daily content per sign.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the CosmyDay API?

CosmyDay is a free, key-free astrology API whose sky events are computed with the Swiss Ephemeris rather than hand-written. It returns upcoming planetary ingresses, retrogrades, eclipses and zodiac season boundaries with exact times, covering a window from late 2025 to the end of 2030.

Nearly every free horoscope API is a bag of pre-written paragraphs on a rotation. This one is different in a specific, checkable way: the `computed_with` field says Swiss Ephemeris, and the event times it returns are precise to the minute and match ephemeris calculations. Whatever you think of astrology, the underlying astronomy — when Mercury actually enters Virgo, when a retrograde station occurs, when the Sun crosses a sign boundary — is real positional data, and that is useful well beyond horoscopes.

The event records are also unusually well written. Each carries a `headline`, a one-sentence `short`, and a `long` that explains the mechanism — the Virgo season entry in the example below correctly notes that season boundaries drift roughly six hours a year because the tropical year is 365.2422 days, and that anyone born near a boundary needs their birth time. There is an `importance` score for ranking, a `covers` window telling you the precomputed range, and separate endpoints for per-sign daily content and monthly archives. The natal chart endpoint is a POST and is not documented here, since verification stays read-only.

Quick facts

Base URL
https://api.cosmyday.com
Authentication
No key or account for the read endpoints.
Rate limit
No published limit. Events are precomputed through 2030, so cache generously.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the CosmyDay API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Sky events for the next 30 days

GET https://api.cosmyday.com/events/upcoming?days=30

curl
curl 'https://api.cosmyday.com/events/upcoming?days=30'
JavaScript (fetch)
const res = await fetch("https://api.cosmyday.com/events/upcoming?days=30");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.cosmyday.com/events/upcoming?days=30", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "timezone": "America/New_York (Eastern Time)",
  "computed_with": "Swiss Ephemeris",
  "covers": {
    "from": "2025-11-11",
    "to": "2030-12-09"
  },
  "from": "2026-08-21",
  "to": "2026-09-20",
  "count": 7,
  "events": [
    {
      "id": "season-virgo-2026-08-22",
      "date": "2026-08-22",
      "kind": "season_start",
      "headline": "Virgo season begins",
      "short": "The Sun enters Virgo at 10:19 PM ET on August 22, 2026, running until September 22, 2026.",
      "long": "The Sun crosses into Virgo on August 22, 2026 at 10:19 PM Eastern and stays there until September 22, 2026. Season boundaries are not fixed calendar dates: the tropical year runs about 365.2422 days, so each crossing drifts roughly six hours later per year until a leap day resets it. Anyone born within a day of a boundary needs their exact birth time to know their sun sign.",
      "url": "https://cosmyday.com/zodiac-seasons",
      "sign": "Virgo",
      "time_et": "10:19 PM",
      "importance": 50
    },
    {
      "id": "ingress-mercury-2026-08-25",
      "date": "2026-08-25",
      "kind": "ingress",
      "headline": "Mercury enters Virgo",
      "short": "Mercury moves into Virgo at 7:04 AM ET on August 25, 2026.",
      "long": "Mercury crosses into Virgo on August 25, 2026 at 7:04 AM Eastern. Fast-moving planets change sign every few weeks, so any single crossing matters far less on its own than where it lands in your chart.",
      "url": "https://cosmyday.com/ingress-calendar",
      "sign": "Virgo",
      "time_et": "7:04 AM",
      "importance": 22
    },
    {
      "id"

Parameters

ParameterTypeRequiredDescription
daysintegerOptionalHow far ahead `/events/upcoming` should look. 30
signpath segmentOptionalZodiac sign for `/content/daily/{sign}`, lowercase. leo
monthpath segmentOptionalYear and month for `/content/monthly-archive/{sign}/{yyyy-mm}`. 2026-03
qstringOptionalPlace name for `/search-location?q=`, used when preparing chart input. Berlin

Response fields

computed_withstring
Which ephemeris produced the times. Currently "Swiss Ephemeris".
coversobject
The precomputed date range, `from` and `to`. Requests outside it will return nothing.
timezonestring
The zone all human-readable times are expressed in — currently US Eastern. Convert before displaying.
countinteger
How many events fell in the requested window.
events[].kindstring
Event type: `season_start`, `ingress`, `retrograde`, `eclipse` and others. List them with `/events/kinds`.
events[].datestring (YYYY-MM-DD)
Calendar date of the event.
events[].headline / short / longstring
Three lengths of copy for the same event, so you can use one API response at three densities.
events[].importanceinteger
Ranking score — sort by it to pick which events deserve a headline slot.

What you can build with the CosmyDay API

  • Show an accurate 'what is happening in the sky' panel on a site
  • Send a notification before a retrograde or eclipse
  • Build an astronomy calendar that only needs the positional events
  • Populate per-sign daily content without writing horoscope copy yourself
  • Cross-check the exact minute a sign boundary falls when a birth date is borderline

Common errors and how to fix them

Empty `events` array

Your window falls outside the precomputed range.

Fix: Check the `covers` object in the response — the dataset currently runs from late 2025 to the end of 2030.

404 on /content/daily/{sign}

Sign name misspelled or capitalised.

Fix: Signs are lowercase English names: `aries` through `pisces`. `scorpio`, not `scorpius`.

Times look wrong by several hours

All human-readable times are US Eastern, as the `timezone` field states.

Fix: Convert using the date plus the stated zone before displaying to an international audience.

CosmyDay API — frequently asked questions

Is there a free astrology API with no key?

Yes. CosmyDay serves sky events, per-sign daily content and monthly archives with no key or account. What sets it apart is that the event times are computed with the Swiss Ephemeris rather than written by hand.

How accurate are the event times?

They come from the Swiss Ephemeris, the same library used by serious astronomical and astrological software, and are given to the minute. The astronomy is genuine positional data whatever your view of the interpretation layered on top.

How far ahead does the data go?

Every response includes a `covers` object with the precomputed range, currently from November 2025 to December 2030. Requests beyond it come back with an empty event list rather than an error.

Can I generate a natal chart?

There is a `/natal` endpoint, but it takes a POST body with birth details, so it is outside the read-only scope of this page. The `/search-location` endpoint exists to resolve a birthplace to coordinates for that request.

Tools that pair with this API

CosmyDay is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.