{"openapi":"3.1.0","info":{"title":"Open Weather One Call (BYOK) API","version":"0.1.0","description":"Open Weather One Call (BYOK) lets an AI assistant read your own Open Weather One Call data through the Open Weather One Call API with a key you supply (API key). Read-only: 8 tools (get_current_conditions, get_minute_forecast, get_hourly_forecast, get_daily_forecast, get_weather_alerts, get_weather_at_time, get_daily_summary, get_weather_overview). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-openweathermap-onecall.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openweathermap-onecall/docs"},"termsOfService":"https://connectorbay.com/byok-openweathermap-onecall/terms"},"servers":[{"url":"https://byok-openweathermap-onecall.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openweathermap-onecall/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_current_conditions":{"post":{"operationId":"get_current_conditions","summary":"Get the current weather at a latitude and longitude: temperature, feels-like, pressure, humidity, dew point, clouds, UV ","description":"Get the current weather at a latitude and longitude: temperature, feels-like, pressure, humidity, dew point, clouds, UV index, visibility, wind, rain and snow. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"What is the weather right now at latitude 33.44, longitude -94.04\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"},"exclude_parts":{"anyOf":[{"const":"minutely,hourly,daily,alerts","type":"string"},{"type":"null"}],"default":"minutely,hourly,daily,alerts","description":"Fixed: keeps only the current block. Leave at the default.","title":"Exclude Parts"}},"required":["lat","lon"],"title":"get_current_conditionsArguments","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/get_minute_forecast":{"post":{"operationId":"get_minute_forecast","summary":"Get the minute-by-minute precipitation forecast (mm/h) for the next hour at a latitude and longitude. Needs the One Call","description":"Get the minute-by-minute precipitation forecast (mm/h) for the next hour at a latitude and longitude. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"Will it rain in the next hour at latitude 33.44, longitude -94.04\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"exclude_parts":{"anyOf":[{"const":"current,hourly,daily,alerts","type":"string"},{"type":"null"}],"default":"current,hourly,daily,alerts","description":"Fixed: keeps only the minutely block. Leave at the default.","title":"Exclude Parts"}},"required":["lat","lon"],"title":"get_minute_forecastArguments","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/get_hourly_forecast":{"post":{"operationId":"get_hourly_forecast","summary":"Get the hourly forecast for the next 48 hours at a latitude and longitude: temperature, humidity, wind, clouds, UV and p","description":"Get the hourly forecast for the next 48 hours at a latitude and longitude: temperature, humidity, wind, clouds, UV and probability of precipitation. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"What is the hourly forecast for the next two days at latitude 33.44, longitude -94.04\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"},"exclude_parts":{"anyOf":[{"const":"current,minutely,daily,alerts","type":"string"},{"type":"null"}],"default":"current,minutely,daily,alerts","description":"Fixed: keeps only the hourly block. Leave at the default.","title":"Exclude Parts"}},"required":["lat","lon"],"title":"get_hourly_forecastArguments","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/get_daily_forecast":{"post":{"operationId":"get_daily_forecast","summary":"Get the daily forecast for the next 8 days at a latitude and longitude: temperature range, sunrise, sunset, moon phase, ","description":"Get the daily forecast for the next 8 days at a latitude and longitude: temperature range, sunrise, sunset, moon phase, wind, rain, snow and a text summary. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"What is the 8 day forecast at latitude 33.44, longitude -94.04\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"},"exclude_parts":{"anyOf":[{"const":"current,minutely,hourly,alerts","type":"string"},{"type":"null"}],"default":"current,minutely,hourly,alerts","description":"Fixed: keeps only the daily block. Leave at the default.","title":"Exclude Parts"}},"required":["lat","lon"],"title":"get_daily_forecastArguments","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/get_weather_alerts":{"post":{"operationId":"get_weather_alerts","summary":"Get active government weather alerts for a latitude and longitude from national warning systems: sender, event, start, e","description":"Get active government weather alerts for a latitude and longitude from national warning systems: sender, event, start, end, description and tags. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"Are there any government weather alerts at latitude 33.44, longitude -94.04\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"},"exclude_parts":{"anyOf":[{"const":"current,minutely,hourly,daily","type":"string"},{"type":"null"}],"default":"current,minutely,hourly,daily","description":"Fixed: keeps only the alerts block. Leave at the default.","title":"Exclude Parts"}},"required":["lat","lon"],"title":"get_weather_alertsArguments","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/get_weather_at_time":{"post":{"operationId":"get_weather_at_time","summary":"Get the weather for one timestamp at a latitude and longitude, from 1 January 1979 up to 4 days ahead. Needs the One Cal","description":"Get the weather for one timestamp at a latitude and longitude, from 1 January 1979 up to 4 days ahead. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"What was the weather at latitude 39.10, longitude -94.58 at Unix time 1643803200\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"dt":{"description":"Unix timestamp in seconds (UTC), from 1979-01-01 to 4 days ahead.","maximum":4102444800,"minimum":0,"title":"Dt","type":"integer"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"}},"required":["lat","lon","dt"],"title":"get_weather_at_timeArguments","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/get_daily_summary":{"post":{"operationId":"get_daily_summary","summary":"Get the aggregated weather of one calendar day at a latitude and longitude: min and max temperature, morning to night te","description":"Get the aggregated weather of one calendar day at a latitude and longitude: min and max temperature, morning to night temperatures, humidity, pressure, cloud cover and total precipitation (1979 up to 1.5 years ahead). Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"What was the weather summary for 2023-03-30 at latitude 60.45, longitude -38.67\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"date":{"description":"Day to summarise as YYYY-MM-DD.","maxLength":10,"title":"Date","type":"string"},"tz":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Time zone offset such as +03:00 when the automatic one is wrong.","title":"Tz"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"},"lang":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for weather descriptions and alert text, for example en, de, fr, es, it or pl.","title":"Lang"}},"required":["lat","lon","date"],"title":"get_daily_summaryArguments","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/get_weather_overview":{"post":{"operationId":"get_weather_overview","summary":"Get a short human-readable weather summary for today or tomorrow at a latitude and longitude, generated by OpenWeather. ","description":"Get a short human-readable weather summary for today or tomorrow at a latitude and longitude, generated by OpenWeather. Needs the One Call API subscription: 1,000 calls per day are free, calls beyond that are billed per call if the account allows it. Use for \"Give me a plain-language weather overview for latitude 51.51, longitude -0.12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lat":{"description":"Latitude in decimal degrees, -90 to 90.","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude in decimal degrees, -180 to 180.","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Day to summarise as YYYY-MM-DD: today or tomorrow (default today).","title":"Date"},"units":{"anyOf":[{"enum":["standard","metric","imperial"],"type":"string"},{"type":"null"}],"default":"metric","description":"Unit system: standard (Kelvin, m/s), metric (Celsius, m/s) or imperial (Fahrenheit, mph).","title":"Units"}},"required":["lat","lon"],"title":"get_weather_overviewArguments","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}}}}