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.
$ 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
- 29API endpoints
- 11MCP tools
- 7widgets, iframe and no-iframe
- $0to start, on every surface
Three 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 you can paste. Together they touch all three surfaces.
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.
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
- Free means free. 5,000 requests a day with no key is a published floor, not a trial: the documented promise is that it may only ever rise.
- Interpreted answers. Phase names, visibility verdicts and plain-language summaries ride next to the numbers, so a bot can speak a response without decoding a longitude.
- Conventions you can read. Field names carry their units (
_deg,_km), coordinate paths name their frame and epoch (equatorial.j2000), and every threshold and model is published as data at/v2/conventions. You never have to guess what a number means. - Answers you may sell. The numbers are computed astronomical facts: store them, publish them, build commercial products on them. The terms are one page.
- Contracts that hold. Version 1 is frozen and still served; version 2 only grows. Responses are byte-stable and cache-friendly, with ETags that survive repeat calls.
- One engine, no drift. The API, the MCP tools, the widgets and every page of this site compute from the same vendored engine, so two surfaces can never disagree about the sky.
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.
| Where | What is there | Status |
|---|---|---|
| RapidAPI | The API's paid plans (Pro, Ultra, Mega) and the free Basic key that meters the MCP server. | Live |
| MCP Registry | The official server record, com.cyclecalcs/astronomy, which registry-fed directories ingest. | Live |
| Smithery | The MCP server, connectable from Smithery-integrated clients. | Live |
| APIs.io | The provider profile apis.io generated from our submission; we also publish a machine-readable apis.json. | Live |
| npm | The widget as a web component: cyclecalcs-widget, with @cyclecalcs/widget as a scoped alias. | Live |
| GitHub | Bulk event datasets: eclipses, full moons, seasons and more, 1700 to 2200, CC0 CSV. | Live |
| Zenodo | The same datasets archived with a permanent DOI, citable in research. | Live |
| WordPress plugin directory | The 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 |
| Python SDK | A thin typed client over /v2. Until then, /v2 is two lines of requests with no auth to configure. | Coming soon |
| Postman | A collection with a worked example per endpoint. | Coming soon |
All API documentation
- Developer hub: What to build and where every tool lives: API, MCP server, widgets.
- Overview and playground: What the API answers, the plans, and a live try-it panel.
- Endpoint reference: Every route, its parameters and a real captured response.
- Keys and plans: How to get a key, what each plan raises, and how quotas are counted.
- Error codes: The registered problem documents, one entry per code.
- Accuracy and residuals: Measured error against reference ephemerides, and the conventions every response states.
- Versioning policy: What is frozen, what may change, and how a change is announced.
- Status and limits: Rate windows, range caps and the current service position.
- MCP server: The same engine as tools an AI assistant can call directly.
- Version 1 (frozen): The original seven endpoints, still served and never changing shape.
- Terms of use: What you may do with the answers, including in commercial products.