changedInput schema / properties / days / description
Previous value: -"Number of days ahead to search for passes. Default 7, max 10."New value: +"Number of days ahead to search for passes. Default 7. At most 10 are searched per call; a value up to 30 searches the first 10 with a notice naming the `start` and `days` that continue the search."
changedInput schema / properties / days / maximum
Previous value: -10New value: +30
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_time`: The start timestamp is not a parseable ISO 8601 instant, or names a calendar date that does not exist (e.g. 2026-02-30). `time_out_of_range`: The start instant is outside the SGP4 high-accuracy span (≈1900–2100), or more than about a month from the epoch of the current element set — checked on the epoch distance itself, since SGP4 keeps returning positions well past the point where the mean elements describe the orbit. `invalid_timezone`: The `timezone` value is not an IANA zone this runtime knows. `invalid_target`: Neither `norad_id` nor `name` was supplied, or both were. `tle_not_found`: CelesTrak has no current element set for the NORAD ID. `satellite_name_not_found`: No current CelesTrak object has a name containing the `name` value. `ambiguous_satellite_name`: The `name` value matches more than one current object and none of them carries it as their whole name. The error names the match count and lists the matching objects with their catalog numbers, capped when there are more than the list holds. A capped list carries a hint leading with narrowing instead of with the list, since the wanted object need not be among the ones shown. `object_decayed`: A current element set will not propagate to a window near its own epoch — the signature of an object that has reentered. `celestrak_unavailable`: The element-set fetch failed after retries, or returned a body that is not JSON at all. `malformed_element_set`: CelesTrak answered with parsable JSON whose GP record does not carry the fields an OMM element set requires — a permanent property of that record, not the transient outage celestrak_unavailable covers. The same request returns the same record, so retrying it can only fail again. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_time`: The start timestamp is not a parseable ISO 8601 instant, or names a calendar date that does not exist (e.g. 2026-02-30). `time_out_of_range`: The start instant falls outside the years 1900–2100, or more than about a month from the epoch of the current element set — checked on the epoch distance itself, since SGP4 keeps returning positions well past the point where the mean elements describe the orbit. `invalid_timezone`: The `timezone` value is not an IANA zone this runtime knows. `invalid_target`: Neither `norad_id` nor `name` was supplied, or both were. `tle_not_found`: CelesTrak has no current element set for the NORAD ID. `satellite_name_not_found`: No current CelesTrak object has a name containing the `name` value. `ambiguous_satellite_name`: The `name` value matches more than one current object and none of them carries it as their whole name. The error names the match count and lists the matching objects with their catalog numbers, capped when there are more than the list holds. A capped list carries a hint leading with narrowing instead of with the list, since the wanted object need not be among the ones shown. `object_decayed`: A current element set will not propagate to a window near its own epoch — the signature of an object that has reentered. `celestrak_unavailable`: The element-set fetch failed after retries, or returned a body that is not JSON at all. `malformed_element_set`: CelesTrak answered with parsable JSON whose GP record does not carry the fields an OMM element set requires — a permanent property of that record, not the transient outage celestrak_unavailable covers. The same request returns the same record, so retrying it can only fail again. Other values are possible when a failure originates below the handler."
addedOutput schema / properties / notice
Added value: +{
+ "description": "How to search the days the per-call cap held back: the exact `start` and `days` to re-call with, or — when that start would lie more than about a month from the element set's epoch — that no call can search them. Absent when every requested day was searched.",
+ "type": "string"
+}
changedOutput schema / properties / passes / description
Previous value: -"Visible passes (sunlit satellite over a dark-enough sky) in the requested window, chronological."New value: +"Passes whose visible stretch — the satellite above the horizon and sunlit while the Sun is below −6° for the observer — reaches 10° elevation, in the window searched, chronological."
changedOutput schema / properties / passes / items / description
Previous value: -"One visible pass with rise/peak/set geometry and illumination."New value: +"One visible pass: horizon-to-horizon rise/peak/set geometry, illumination at peak, and the stretch of the pass that is visible to the naked eye."
changedOutput schema / properties / passes / items / properties / duration_seconds / description
Previous value: -"Pass duration from rise to set, in seconds."New value: +"Pass duration from `rise_utc` to `set_utc`, in seconds."
changedOutput schema / properties / passes / items / properties / peak_altitude_degrees / description
Previous value: -"Maximum elevation angle during the pass, in degrees."New value: +"Maximum elevation angle during the pass, in degrees, as sampled every 30 seconds."
changedOutput schema / properties / passes / items / properties / peak_utc / description
Previous value: -"Time of maximum elevation in ISO 8601 UTC."New value: +"Time of maximum elevation in ISO 8601 UTC, the highest sample of a 30-second scan."
changedOutput schema / properties / passes / items / properties / rise_azimuth_degrees / description
Previous value: -"Azimuth at rise, in degrees (0=N, 90=E, 180=S, 270=W)."New value: +"Azimuth at `rise_utc`, in degrees (0=N, 90=E, 180=S, 270=W)."
changedOutput schema / properties / passes / items / properties / rise_utc / description
Previous value: -"Acquisition of signal (rise above horizon) in ISO 8601 UTC."New value: +"Rise above the horizon in ISO 8601 UTC, within 1 s of the true crossing. Can fall up to 30 s before `start` when the satellite rose inside the 30-second scan step ending at `start`."
changedOutput schema / properties / passes / items / properties / set_azimuth_degrees / description
Previous value: -"Azimuth at set, in degrees."New value: +"Azimuth at `set_utc`, in degrees."
changedOutput schema / properties / passes / items / properties / set_utc / description
Previous value: -"Loss of signal (set below horizon) in ISO 8601 UTC."New value: +"Set below the horizon in ISO 8601 UTC, within 1 s of the true crossing."
changedOutput schema / properties / passes / items / properties / sunlit / description
Previous value: -"True when the satellite is in sunlight at peak — a precondition for naked-eye visibility."New value: +"True when the satellite is in sunlight at the peak instant. False on a pass that enters Earth's shadow before its peak or leaves it after — the visible_* fields say when it can be seen."
addedOutput schema / properties / passes / items / properties / visible_end_altitude_degrees
Added value: +{
+ "description": "Elevation where the visible stretch ends, in degrees — 0 when it ends at the set.",
+ "type": "number"
+}
addedOutput schema / properties / passes / items / properties / visible_end_azimuth_degrees
Added value: +{
+ "description": "Azimuth where the visible stretch ends, in degrees.",
+ "type": "number"
+}
addedOutput schema / properties / passes / items / properties / visible_end_local
Added value: +{
+ "description": "Visible-stretch end in observer-local time, present only when a timezone was supplied.",
+ "type": "string"
+}
addedOutput schema / properties / passes / items / properties / visible_end_utc
Added value: +{
+ "description": "End of the visible stretch in ISO 8601 UTC. Equals `set_utc` when the pass is visible until it sets; otherwise within 1 s of the moment it enters Earth's shadow or the sky brightens.",
+ "type": "string"
+}
addedOutput schema / properties / passes / items / properties / visible_start_altitude_degrees
Added value: +{
+ "description": "Elevation where the visible stretch starts, in degrees — 0 when it starts at the rise.",
+ "type": "number"
+}
addedOutput schema / properties / passes / items / properties / visible_start_azimuth_degrees
Added value: +{
+ "description": "Azimuth where the visible stretch starts, in degrees — where to look first.",
+ "type": "number"
+}
addedOutput schema / properties / passes / items / properties / visible_start_local
Added value: +{
+ "description": "Visible-stretch start in observer-local time, present only when a timezone was supplied.",
+ "type": "string"
+}
addedOutput schema / properties / passes / items / properties / visible_start_utc
Added value: +{
+ "description": "Start of the visible stretch — above the horizon, sunlit, over a dark sky — in ISO 8601 UTC. Equals `rise_utc` when the pass is visible from its rise; otherwise within 1 s of the moment it leaves Earth's shadow or the sky darkens.",
+ "type": "string"
+}
changedOutput schema / properties / passes / items / required
Previous value: -[
- "rise_utc",
- "peak_utc",
- "set_utc",
- "peak_altitude_degrees",
- "rise_azimuth_degrees",
- "set_azimuth_degrees",
- "peak_azimuth_degrees",
- "duration_seconds",
- "sunlit"
-]New value: +[
+ "rise_utc",
+ "peak_utc",
+ "set_utc",
+ "peak_altitude_degrees",
+ "rise_azimuth_degrees",
+ "set_azimuth_degrees",
+ "peak_azimuth_degrees",
+ "duration_seconds",
+ "sunlit",
+ "visible_start_utc",
+ "visible_end_utc",
+ "visible_start_altitude_degrees",
+ "visible_end_altitude_degrees",
+ "visible_start_azimuth_degrees",
+ "visible_end_azimuth_degrees"
+]
changedOutput schema / properties / totalCount / description
Previous value: -"Number of visible passes found in the window."New value: +"Number of visible passes found in the window searched."