CycleCalcs · Example Payload
Cyclecalcs V2 Dark Window Example
AstronomySpaceScienceEphemerisSunMoonPlanetsEclipsesTimeCalendarGeolocationMCPAgent-native
Cyclecalcs V2 Dark Window Example is an example object payload from CycleCalcs, with 9 top-level fields. It illustrates the shape of data this provider's APIs accept or return.
Top-level fields
endpointcomputed_atquerydatawarningslinksmetaattributiondocs
Example Payload
{
"endpoint": "/v2/dark-window",
"computed_at": "2026-08-01T00:00:00.000Z",
"query": {
"at": "2026-11-14T00:00:00.000Z",
"mode": "instant",
"resolved_from": "at",
"is_now": false,
"latitude": 51.509,
"longitude": -0.126,
"elevation_m": 0,
"tz": "Europe/London",
"utc_offset_seconds": 0,
"utc_offset_iso": "+00:00",
"is_dst": false,
"timezone_source": "parameter",
"time_format": "iso",
"format": "json",
"shape": "nested",
"precision": 6,
"pretty": 1,
"verbosity": "full",
"nights": 3,
"sun_depression_deg": 18,
"moon_altitude_max_deg": 0,
"moon_illumination_max": 1,
"ignored": []
},
"data": {
"method": {
"sun_test": "Sun's geometric centre at or below -18 deg",
"moon_test": "Moon below the horizon by the engine's own rise and set search, which applies topocentric parallax and refraction to the upper limb",
"illumination_override_offered": false,
"illumination_override_applied": false,
"boundary_precision_seconds": 1,
"note": "Boundaries are root-found, not sampled, through the same rise and set search /v2/rise-set uses, so a moonset here and a moonset there agree to within the root finder's own tolerance of a few milliseconds."
},
"high_latitude_caution": false,
"high_latitude_note": null,
"best_night_index": 0,
"ranked": [
0,
1,
2
],
"nights": [
{
"night_of": "2026-11-14",
"label": "Night of Saturday 14 November 2026",
"dark_interval": {
"kind": "astronomical_night",
"label": "Astronomical night",
"start": "2026-11-14T18:09:13.058+00:00",
"end": "2026-11-15T05:21:23.662+00:00",
"duration_minutes": 672.2,
"start_reason": "sun_reached_depression",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
},
"special": null,
"usable_intervals": [
{
"kind": "moonless_dark",
"label": "Moonless dark",
"start": "2026-11-14T19:50:10.104+00:00",
"end": "2026-11-15T05:21:23.662+00:00",
"duration_minutes": 571.2,
"start_reason": "moon_set",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
}
],
"usable_minutes": 571.2,
"moonlit_dark_minutes": 101,
"usable_fraction": 0.8497,
"moon": {
"illuminated_fraction_at_midpoint": 0.271392,
"phase_name": "waxing_crescent",
"rise": "2026-11-14T12:16:26.512+00:00",
"set": "2026-11-14T19:50:10.104+00:00",
"up_at_dusk": true,
"up_for_whole_dark_interval": false
},
"illumination_override_applied": false,
"verdict": "good",
"verdict_reason": "Between 60 and 85 percent of astronomical night is moonless."
},
{
"night_of": "2026-11-15",
"label": "Night of Sunday 15 November 2026",
"dark_interval": {
"kind": "astronomical_night",
"label": "Astronomical night",
"start": "2026-11-15T18:08:07.923+00:00",
"end": "2026-11-16T05:22:48.657+00:00",
"duration_minutes": 674.7,
"start_reason": "sun_reached_depression",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
},
"special": null,
"usable_intervals": [
{
"kind": "moonless_dark",
"label": "Moonless dark",
"start": "2026-11-15T21:02:13.762+00:00",
"end": "2026-11-16T05:22:48.657+00:00",
"duration_minutes": 500.6,
"start_reason": "moon_set",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
}
],
"usable_minutes": 500.6,
"moonlit_dark_minutes": 174.1,
"usable_fraction": 0.742,
"moon": {
"illuminated_fraction_at_midpoint": 0.35895,
"phase_name": "waxing_crescent",
"rise": "2026-11-15T12:40:39.487+00:00",
"set": "2026-11-15T21:02:13.762+00:00",
"up_at_dusk": true,
"up_for_whole_dark_interval": false
},
"illumination_override_applied": false,
"verdict": "good",
"verdict_reason": "Between 60 and 85 percent of astronomical night is moonless."
},
{
"night_of": "2026-11-16",
"label": "Night of Monday 16 November 2026",
"dark_interval": {
"kind": "astronomical_night",
"label": "Astronomical night",
"start": "2026-11-16T18:07:05.191+00:00",
"end": "2026-11-17T05:24:12.871+00:00",
"duration_minutes": 677.1,
"start_reason": "sun_reached_depression",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
},
"special": null,
"usable_intervals": [
{
"kind": "moonless_dark",
"label": "Moonless dark",
"start": "2026-11-16T22:15:31.163+00:00",
"end": "2026-11-17T05:24:12.871+00:00",
"duration_minutes": 428.7,
"start_reason": "moon_set",
"end_reason": "sun_left_depression",
"open_start": false,
"open_end": false
}
],
"usable_minutes": 428.7,
"moonlit_dark_minutes": 248.4,
"usable_fraction": 0.6331,
"moon": {
"illuminated_fraction_at_midpoint": 0.452732,
"phase_name": "first_quarter",
"rise": "2026-11-16T12:59:01.516+00:00",
"set": "2026-11-16T22:15:31.163+00:00",
"up_at_dusk": true,
"up_for_whole_dark_interval": false
},
"illumination_override_applied": false,
"verdict": "good",
"verdict_reason": "Between 60 and 85 percent of astronomical night is moonless."
}
],
"summary": {
"nights_returned": 3,
"best_night_of": "2026-11-14",
"best_usable_minutes": 571.2,
"total_usable_minutes": 1500.5,
"trend": "declining",
"trend_note": "The moonless window shortens by about 71.3 minutes on each successive night across this run."
}
},
"warnings": [],
"links": {
"self": "https://www.cyclecalcs.com/v2/dark-window?at=2026-11-14&lat=51.509&lon=-0.126&nights=3&tz=Europe%2FLondon",
"docs": "https://www.cyclecalcs.com/api/reference.html#dark-window",
"spec": "https://www.cyclecalcs.com/v2/openapi.json",
"page": "https://www.cyclecalcs.com/sunrise-sunset-calculator.html#dw-section"
},
"meta": {
"api_version": "2",
"contract_version": "2.0.0",
"engine": {
"name": "Astronomy Engine",
"license": "MIT",
"author": "Don Cross",
"version": "2.1.19",
"version_source": "upstream_sha256_match",
"sha256": "068f1445ed0c636c94818fe6d20d7d125120e605e0bab9fc4675c3d531be5ad7",
"vendored": true,
"credit": "astronomy-engine (MIT, Copyright (c) 2019-2023 Don Cross)"
},
"tzdb": "2026b",
"rights": "unrestricted",
"attribution": {
"required": false,
"text": "Computed by CycleCalcs (cyclecalcs.com) with the MIT-licensed Astronomy Engine. Positional astronomy only.",
"sources": []
},
"notice_url": "https://www.cyclecalcs.com/methodology.html#data-sources",
"cache": {
"class": "fixed_instant",
"deterministic": true
},
"accuracy": {
"statement": "Positions are arcminute class for the Sun, Moon and planets across 1700 to 2200, degrading toward the ends of that window.",
"residuals_url": "https://www.cyclecalcs.com/api/accuracy.html"
},
"time": {
"scale_of_input": "UTC",
"ut1_source": "assumed equal to UTC; no IERS bulletin is loaded, so UT1 minus UTC may differ by up to 0.9 s",
"delta_t_seconds": 75.6,
"delta_t_model": "Espenak and Meeus"
},
"conventions": {
"verdict_bands": [
{
"code": "excellent",
"min_usable_fraction": 0.85
},
{
"code": "good",
"min_usable_fraction": 0.6
},
{
"code": "fair",
"min_usable_fraction": 0.25
},
{
"code": "poor",
"min_usable_fraction": 0
}
],
"flat_slope_minutes_per_night": 5
},
"budget": {
"engine_calls": 408
}
},
"attribution": "Computed by CycleCalcs (cyclecalcs.com) with the MIT-licensed Astronomy Engine. Positional astronomy only.",
"docs": "https://www.cyclecalcs.com/api/reference.html#dark-window"
}