{"openapi":"3.1.0","info":{"title":"Skywatch API","version":"0.1.0","description":"The sky tonight, anywhere: ISS passes, planets, sun and moon, meteor showers, eclipses, aurora, launches, asteroids, APOD — keyless.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://skywatch.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/skywatch/docs"},"termsOfService":"https://connectorbay.com/skywatch/terms"},"servers":[{"url":"https://skywatch.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/skywatch/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/iss_now":{"post":{"operationId":"iss_now","summary":"Where the International Space Station is right now: latitude/longitude, altitude, speed, whether it is in sunlight, and","description":"Where the International Space Station is right now: latitude/longitude, altitude, speed, whether it is in sunlight, and\n    the nearest city below it. Use for \"where is the ISS\", \"how fast is the space station going\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"iss_nowArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/iss_passes":{"post":{"operationId":"iss_passes","summary":"When the ISS will be visible from a place in the coming days: rise time and direction, highest point (altitude and","description":"When the ISS will be visible from a place in the coming days: rise time and direction, highest point (altitude and\n    direction), set time, duration, how long it is visible and how bright — computed from the current TLE. Use for \"when can\n    I see the space station from Denver\", \"ISS passes this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City, optionally with state/country: 'Denver', 'Cairo', 'Leeds, UK'. Or give latitude/longitude.","examples":["Denver","Cairo"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"Latitude (−90..90).","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"Longitude (−180..180).","title":"Longitude"},"days":{"default":5,"description":"Days ahead to predict (1–10).","maximum":10,"minimum":1,"title":"Days","type":"integer"},"min_elevation":{"default":10,"description":"Ignore passes peaking below this altitude (degrees, 10–60).","maximum":60,"minimum":10,"title":"Min Elevation","type":"integer"},"include_daylight":{"default":false,"description":"Also list passes that are not visible (daytime or in Earth's shadow).","title":"Include Daylight","type":"boolean"}},"title":"iss_passesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/sun_moon":{"post":{"operationId":"sun_moon","summary":"Sunrise, sunset, solar noon, day length, civil/nautical/astronomical twilight, golden hour, moonrise, moonset, moon","description":"Sunrise, sunset, solar noon, day length, civil/nautical/astronomical twilight, golden hour, moonrise, moonset, moon\n    phase and illumination, and the next full and new moon — for any place and date. Use for \"what time is sunset in\n    Cairo\", \"when is it fully dark tonight\", \"is there a full moon this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City, optionally with state/country: 'Denver', 'Cairo', 'Leeds, UK'. Or give latitude/longitude.","examples":["Denver","Cairo"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"Latitude (−90..90).","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"Longitude (−180..180).","title":"Longitude"},"day":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date YYYY-MM-DD (default today at the place).","title":"Day"}},"title":"sun_moonArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/planets_tonight":{"post":{"operationId":"planets_tonight","summary":"Which planets are visible tonight from a place: when each is up (between dusk and dawn), its highest point and","description":"Which planets are visible tonight from a place: when each is up (between dusk and dawn), its highest point and\n    direction, brightness, constellation, naked-eye or not, and a spotting tip — plus how much moonlight there is. Use for\n    \"which planets can I see tonight\", \"where is Jupiter right now\", \"is Saturn visible this evening\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City, optionally with state/country: 'Denver', 'Cairo', 'Leeds, UK'. Or give latitude/longitude.","examples":["Denver","Cairo"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"Latitude (−90..90).","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"Longitude (−180..180).","title":"Longitude"},"day":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date YYYY-MM-DD (default today at the place).","title":"Day"}},"title":"planets_tonightArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/meteor_showers":{"post":{"operationId":"meteor_showers","summary":"Meteor showers peaking in a date range: peak night, active period, expected rate (ZHR), radiant, parent comet, best","description":"Meteor showers peaking in a date range: peak night, active period, expected rate (ZHR), radiant, parent comet, best\n    hemisphere, speed, and the moon's brightness at the peak (the thing that makes or breaks a shower). Use for \"any meteor\n    showers this month\", \"when are the Perseids\", \"will the moon spoil the Geminids\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (default today).","title":"From Date"},"to_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (default +90 days).","title":"To Date"},"hemisphere":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"'north' or 'south' to keep only showers that favour that hemisphere.","title":"Hemisphere"}},"title":"meteor_showersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/eclipses":{"post":{"operationId":"eclipses","summary":"Solar and lunar eclipses from now through 2030: date, type (total, annular, partial, penumbral) and where each is","description":"Solar and lunar eclipses from now through 2030: date, type (total, annular, partial, penumbral) and where each is\n    visible, with safety notes. Use for \"when is the next total solar eclipse\", \"any lunar eclipse this year\", \"where can\n    I see the 2027 eclipse\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start date (default today).","title":"From Date"},"to_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"End date (default 2030-12-31).","title":"To Date"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"'solar' or 'lunar'.","title":"Kind"}},"title":"eclipsesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/aurora":{"post":{"operationId":"aurora","summary":"Northern/southern lights chances for a place: the OVATION aurora probability at that spot right now, the nearest","description":"Northern/southern lights chances for a place: the OVATION aurora probability at that spot right now, the nearest\n    latitude with a real chance, the current Kp index and the 2-day Kp forecast, and whether it is dark there. Use for \"will\n    I see the northern lights tonight in Edinburgh\", \"how strong is the aurora forecast\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City, optionally with state/country: 'Denver', 'Cairo', 'Leeds, UK'. Or give latitude/longitude.","examples":["Denver","Cairo"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"description":"Latitude (−90..90).","title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"description":"Longitude (−180..180).","title":"Longitude"}},"title":"auroraArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/launches":{"post":{"operationId":"launches","summary":"Upcoming rocket launches worldwide: name, rocket, provider, mission and orbit, launch time (UTC) and how firm it is, pad","description":"Upcoming rocket launches worldwide: name, rocket, provider, mission and orbit, launch time (UTC) and how firm it is, pad\n    and location, status, weather odds and webcast link. Use for \"any launches this week\", \"when does the next Starship fly\",\n    \"what is launching from Vandenberg\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"days":{"default":7,"description":"Days ahead (1–60).","maximum":60,"minimum":1,"title":"Days","type":"integer"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: 'Falcon', 'Starship', 'ISRO', 'Artemis', 'Vandenberg'.","title":"Search"},"limit":{"default":10,"description":"Max launches (1–30).","maximum":30,"minimum":1,"title":"Limit","type":"integer"}},"title":"launchesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/asteroids":{"post":{"operationId":"asteroids","summary":"Asteroids passing close to Earth in the coming days (NASA/JPL close-approach data): name, closest-approach time,","description":"Asteroids passing close to Earth in the coming days (NASA/JPL close-approach data): name, closest-approach time,\n    distance in km and lunar distances, speed and estimated size. Use for \"any asteroids passing close this week\", \"how big is\n    the one passing tomorrow\". None of these are impacts.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"days":{"default":7,"description":"Days ahead (1–60).","maximum":60,"minimum":1,"title":"Days","type":"integer"},"max_lunar_distances":{"default":5,"description":"Only approaches within this many lunar distances (0.1–20).","maximum":20,"minimum":0.1,"title":"Max Lunar Distances","type":"number"},"limit":{"default":10,"description":"Max objects (1–30).","maximum":30,"minimum":1,"title":"Limit","type":"integer"}},"title":"asteroidsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/people_in_space":{"post":{"operationId":"people_in_space","summary":"How many people are in space right now and on which spacecraft, by name. Use for \"who is in space\", \"how many","description":"How many people are in space right now and on which spacecraft, by name. Use for \"who is in space\", \"how many\n    astronauts are on the ISS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"people_in_spaceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/picture_of_the_day":{"post":{"operationId":"picture_of_the_day","summary":"NASA's Astronomy Picture of the Day: title, the image or video link, the explanation and credit, for today or any date","description":"NASA's Astronomy Picture of the Day: title, the image or video link, the explanation and credit, for today or any date\n    since 1995. Use for \"show me today's APOD\", \"what was the astronomy picture on my birthday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"day":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date YYYY-MM-DD (default today).","title":"Day"}},"title":"picture_of_the_dayArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}