Developers

Build on the sky.

One engine computes every answer on this site. It is yours too: a free astronomy API that returns interpreted answers, the same answers as tools an AI assistant can call, and widgets that drop the live sky onto any page.

No key and no signup for the API and widgets. Accuracy is measured and published, and the conventions behind every answer are published as data. Prefer no code at all? Paste a widget.

the whole sky for one place, in one request
$ curl "https://www.cyclecalcs.com/v2/today?lat=51.5074&lon=-0.1278&at=2026-08-27T22:00Z"
{
  "data": {
    "moon": { "phase": { "name": "Full Moon", "illumination_percent": 99.9 } },
    "planets_up": [ { "name": "Saturn", "magnitude": 0.37,
                      "visibility": "Up most of the night" } ],
    "night": { "verdict": "Bright. The Moon is up through the whole dark window." },
    "next_events": [ { "label": "Partial lunar eclipse", "days_until": 0.3 } ]
  }
}   // trimmed: the full body carries rise and set instants, azimuths,
    // dark-window times and the stated refraction model

Four things to build first

Each of these is a working project you can finish in an evening, with a step-by-step guide and code that was run before it was published. Together they cover all three surfaces, in JavaScript and Python.

The toolbox

The REST API

29 endpoints under /v2 that answer the question, not the coordinates: moon phase by name, rise and set instants, "worth looking tonight" verdicts, eclipses with an explicit answer to whether you can see them from your spot. Plain GET, no key, no signup, open CORS, JSON or CSV, reliable from 1700 to 2200. Rise and set searches take any target, including radec: coordinates for a comet or a deep-sky object of your own, and every location accepts an optional elevation_m. Start at the API overview, try the live playground, or go straight to the endpoint reference, where every route carries a real captured response. In Python, pip install cyclecalcs gives you the same 29 endpoints as typed methods with no dependencies of its own.

The MCP server

The same API as 11 read-only Model Context Protocol tools at https://www.cyclecalcs.com/mcp, for Claude and every other MCP-capable client. Browsing the tool list needs nothing; tool calls are metered by a key from the free Basic plan on RapidAPI. The server adds no endpoints and changes no contracts: it is a protocol adapter in front of the same 29 routes.

The widgets

Six embeddable widgets (moon phase, tonight's sky, sunrise and sunset, planet parade, eclipse countdown, cosmic clock) that ship as two lines of HTML from the embed builder, plus a newer no-iframe moon widget that renders in a shadow root with zero layout shift. For frameworks there is cyclecalcs-widget on npm, one custom element over the same frozen loader contracts.

Contracts, feeds and bulk data

Machines are first-class callers here: an OpenAPI 3.1 document at /v2/openapi.json, an agent-oriented llms-full.txt, every convention and threshold as data at /v2/conventions, and errors as RFC 9457 problem documents. Subscribable calendar feeds carry eclipses, full moons and seasons as ICS. For offline work, the bulk datasets on GitHub hold 55,909 computed events from 1700 to 2200 as CC0 CSV, archived with a permanent DOI on Zenodo.

Why build here

Where our tools live

Everything ships from this site first. These are the places beyond it where you can find, install or subscribe to our tools.

WhereWhat is thereStatus
RapidAPIThe API's paid plans (Pro, Ultra, Mega) and the free Basic key that meters the MCP server.Live
MCP RegistryThe official server record, com.cyclecalcs/astronomy, which registry-fed directories ingest.Live
SmitheryThe MCP server, connectable from Smithery-integrated clients.Live
APIs.ioThe provider profile apis.io generated from our submission; we also publish a machine-readable apis.json.Live
PyPIThe Python client: pip install cyclecalcs. Zero dependencies, typed, one method per endpoint, and it never puts a key in a URL.Live
npmThe widget as a web component: cyclecalcs-widget, with @cyclecalcs/widget as a scoped alias.Live
GitHubBulk event datasets: eclipses, full moons, seasons and more, 1700 to 2200, CC0 CSV.Live
ZenodoThe same datasets archived with a permanent DOI, citable in research.Live
WordPress plugin directoryThe widgets as a [cyclecalcs] shortcode and a block. Built and tested; until it lands, the two-line snippet works in any Custom HTML block.Coming soon
PostmanA collection of worked examples, keyless, whose tests assert the response contract rather than the status code. Run it in Postman.Live

Something wrong on these pages, or missing for your build? Contact us at info@cyclecalcs.com.

All API documentation