Send a date and a place. Get back the human body-clock frame — when to get light, when to sleep, when you'll focus or crash, when caffeine becomes a mistake, the vitamin-D and UV windows, jet-lag recovery, and more. Each answer computed to the second for your exact location, each grounded in named, peer-reviewed chronobiology.
Pick a tab, fill in a date and place, hit run — every tab calls the real API and shows the JSON it returns. Each panel opens with a recorded response so you can see the exact shape before you even click; if the gateway isn't reachable from where you're viewing, it falls back to that same recorded response.
Every window this API returns traces to named, peer-reviewed chronobiology — not a wellness heuristic and not a fixed clock-time rule.
| Capability | Cycles Arc Circadian API | Typical wellness app |
|---|---|---|
| Basis for every window | Named, cited, peer-reviewed chronobiology | Undocumented heuristics |
| Local times | Millisecond-exact for any place and date | Fixed clock-time rules (e.g. "sleep by 10pm") |
| Place awareness | Computed from your exact latitude/longitude and sun | Ignores where you actually are |
| Contested evidence | Labelled evidence:"CONTESTED" with the failed replication | Overclaims, or stays silent |
| Access model | Single GET call, flat JSON response | Closed app, no API |
valid:0 with a note, never a fabricated time. The playground calls the real API.
The playground demos eight of these. Every verb below is live on the API today — the same date-and-place in, flat JSON out.
A calendar date and a latitude/longitude — plain query parameters, no payloads. Add your habitual wake hour for a personalised answer, or leave it out to anchor to local sunrise.
The sun's exact geometry for that place and date sets the anchors — sunrise, solar noon, twilight, elevation — to the millisecond.
Phase markers, light and melatonin windows, alertness peaks, and health windows are located against your solar day, each following named chronobiology.
Flat, predictable fields — exact local times, and an evidence label where a finding is contested, so you always know how firm a number is.
Give users a real bedtime, wind-down, and wake window for where they actually are — plus the caffeine cutoff and the power-nap window, all computed, not guessed.
Drive tunable-white schedules from real melanopic targets: bright day block, evening wind-down CCT, and a night dark block, updated for the date and place.
Overlay the body-clock frame on your own biometrics — phase, alertness peaks, hazard troughs, and jet-lag recovery — without building a chronobiology engine.
Turn a route or roster into a re-entrainment plan: shift size and direction, days to adapt, the light strategy, and the misalignment score.
{
"sunrise_local": "06:02:59.709",
"sunset_local": "19:58:25.236",
"solar_noon_local": "13:01:02.655",
"day_length_h": 13.9237574,
"peak_elevation_deg": 64.097084,
"vitd_window_local": "10:10:57.857..15:50:50.552",
"place_city": "New York City",
"tz": "America/New_York"
}
Flat JSON — exact local times, nothing wrapped. Every verb takes the same date-and-place shape; the ones that read as a personal clock (phase, caffeine, performance…) accept an optional wake_local and otherwise anchor to your local sunrise.
Every window this API returns is grounded in published chronobiology — not a wellness heuristic. Here is the literature behind the numbers.
/v1/circadian/moonlight verb returns the exact lunar geometry over your sleep block and the reported effect sizes, explicitly labelled evidence:"CONTESTED" alongside the replication that failed to find them. We show it honestly rather than overclaim — that honesty is part of the brand.
Self-serve, metered, and priced in euros. Start free — the free tier and the live playground above are your trial.
/v1/circadian/moonlight returns the reported effect sizes but labels them evidence:"CONTESTED", and the Science section links both papers. We'd rather show the disagreement than pretend it away.wake_local (your habitual wake hour). Leave it out and the answer is sun-entrained — anchored to your local sunrise — and the response labels it anchor_source:"sun_entrained" so you always know which frame you're in.