CycleCalcs · Schema
Envelope
The nine-key v2 response envelope. Every /v2 endpoint returns exactly these keys, in this order, on every 200 (spec-00 1.1).
AstronomySpaceScienceEphemerisSunMoonPlanetsEclipsesTimeCalendarGeolocationMCPAgent-Native
Properties
| Name | Type | Description |
|---|---|---|
| endpoint | string | The endpoint path that produced this response. |
| computed_at | string | A revision stamp, never a wall clock: identical requests return identical bytes, so a fixed_instant or reference response can be cached for a year and 304 stays reachable. |
| query | object | The request as understood: every resolved input (instant, location, presentation options) plus `ignored`, in the order spec-00 13.2 defines. Shape is endpoint-specific. |
| data | object | The answer. Shape is endpoint-specific; see each operation's summary and /api/reference.html. |
| warnings | array | Machine-readable notices about this response. Empty when none apply; never changes the HTTP status. |
| links | object | Related URLs. self reproduces this exact response; docs is always present; others (page, spec, next, first, explain) appear where relevant. |
| meta | object | Provenance: engine version, rights and attribution, cache class, accuracy statement, tzdb version, and endpoint-specific conventions (refraction model, horizon definitions, time scales, and so on). Ne |
| attribution | string | The credit line, byte-identical to meta.attribution.text. |
| docs | string | The human-readable reference section for this endpoint. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cyclecalcs/main/json-schema/cyclecalcs-envelope-schema.json",
"title": "Envelope",
"description": "The nine-key v2 response envelope. Every /v2 endpoint returns exactly these keys, in this order, on every 200 (spec-00 1.1).",
"x-generated": "2026-09-28",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cyclecalcs-apsides-api-openapi.yml#/components/schemas/Envelope",
"type": "object",
"required": [
"endpoint",
"computed_at",
"query",
"data",
"warnings",
"links",
"meta",
"attribution",
"docs"
],
"properties": {
"endpoint": {
"type": "string",
"description": "The endpoint path that produced this response."
},
"computed_at": {
"type": "string",
"format": "date-time",
"description": "A revision stamp, never a wall clock: identical requests return identical bytes, so a fixed_instant or reference response can be cached for a year and 304 stays reachable."
},
"query": {
"type": "object",
"description": "The request as understood: every resolved input (instant, location, presentation options) plus `ignored`, in the order spec-00 13.2 defines. Shape is endpoint-specific.",
"additionalProperties": true
},
"data": {
"description": "The answer. Shape is endpoint-specific; see each operation's summary and /api/reference.html."
},
"warnings": {
"type": "array",
"description": "Machine-readable notices about this response. Empty when none apply; never changes the HTTP status.",
"items": {
"$ref": "#/$defs/Warning"
}
},
"links": {
"type": "object",
"description": "Related URLs. self reproduces this exact response; docs is always present; others (page, spec, next, first, explain) appear where relevant.",
"additionalProperties": {
"type": "string",
"format": "uri"
}
},
"meta": {
"type": "object",
"description": "Provenance: engine version, rights and attribution, cache class, accuracy statement, tzdb version, and endpoint-specific conventions (refraction model, horizon definitions, time scales, and so on). Never subject to `fields` projection.",
"additionalProperties": true
},
"attribution": {
"type": "string",
"description": "The credit line, byte-identical to meta.attribution.text."
},
"docs": {
"type": "string",
"format": "uri",
"description": "The human-readable reference section for this endpoint."
}
},
"$defs": {
"Warning": {
"type": "object",
"description": "One machine-readable notice. Exactly four keys, in this order (spec-00 11.4). Never changes the HTTP status.",
"required": [
"code",
"message",
"field",
"value"
],
"properties": {
"code": {
"type": "string",
"enum": [
"ambiguous_local_time",
"antipodal_pair_not_aspected",
"approximates_undefined_placidus",
"assumed_utc",
"birth_time_unknown",
"blocked_layer_omitted",
"cusps_not_monotonic",
"dataset_stale",
"decorative_starfield",
"dms_rounds_to_next_sign",
"dst_discontinuity",
"duplicate_alarm",
"duplicate_aspect",
"duplicate_body",
"duplicate_depression",
"duplicate_derived",
"duplicate_house_system",
"duplicate_include",
"duplicate_pair",
"duplicate_parameter",
"duplicate_point",
"duplicate_shower",
"duplicate_source",
"elevation_ignored",
"estimate_only",
"extrapolated_epoch",
"field_blocked",
"fields_ignored",
"harmonic_orb_mode_has_no_effect",
"high_latitude_caution",
"horizon_overridden",
"house_system_substituted",
"large_intercept",
"lot_term_null",
"low_altitude_precision",
"mean_node_model",
"model_disagreement",
"model_epoch_only",
"moon_dominates",
"no_astronomical_darkness",
"no_location_orientation",
"no_search_result",
"nonexistent_local_time_shifted",
"not_visible_from_location",
"oblateness_simplified",
"orbit_arc_truncated",
"parameter_ignored",
"perfection_search_truncated",
"place_ambiguous",
"place_index_tier_2",
"place_matched_by_substring",
"placement_within_error_of_boundary",
"polar_angles_flipped",
"polar_day",
"polar_night",
"polar_region",
"prose_window_differs",
"refraction_below_cutoff",
"render_degenerate",
"rounded_parameter",
"sect_tests_disagree",
"shape_ignored",
"source_window_clipped",
"station_near_window_edge",
"station_search_truncated",
"time_format_not_applicable",
"time_scale_undefined",
"timezone_from_place",
"truncated_results",
"tz_source_boundary_1970",
"tzdb_lmt_interval",
"unknown_parameter",
"unusual_navigational_body",
"vertex_undefined_at_equator"
],
"description": "A stable, lower_snake_case token. The full registry is at GET /v2/enums?set=warning_codes."
},
"message": {
"type": "string",
"description": "A human-readable explanation. Not parsed by machines; use `code`."
},
"field": {
"type": [
"string",
"null"
],
"description": "The data or query pointer the warning is about, dot-addressed the same way `fields` is. Null when the warning is not about one field."
},
"value": {
"description": "The value involved, when there is a single obvious one to show. Null otherwise."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cyclecalcs-envelope"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.