{"openapi":"3.1.0","info":{"title":"Weather Underground PWS (BYOK) API","version":"0.1.0","description":"Weather Underground PWS (BYOK) lets an AI assistant read your own Weather Underground PWS data through the Weather Underground PWS API with a key you supply (Weather Underground PWS API key). Read-only: 6 tools (get_current_observation, get_daily_summaries_7_day, get_rapid_history_1_day, get_hourly_history_7_day, get_hourly_history_for_date, get_daily_history_for_date). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wunderground.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wunderground/docs"},"termsOfService":"https://connectorbay.com/byok-wunderground/terms"},"servers":[{"url":"https://byok-wunderground.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wunderground/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_observation":{"post":{"operationId":"get_current_observation","summary":"Get the latest observation (reported within the last 60 minutes) of a personal weather station: temperature, dew point, ","description":"Get the latest observation (reported within the last 60 minutes) of a personal weather station: temperature, dew point, heat index, wind chill, wind, gust, pressure, precipitation, humidity, UV and solar radiation. Station location is left out. Use for \"What is the temperature and wind at weather station KMAHANOV10 right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"}},"required":["station_id"],"title":"get_current_observationArguments","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_summaries_7_day":{"post":{"operationId":"get_daily_summaries_7_day","summary":"Get one daily summary for each of the last 7 days of a station: highs, lows and averages of temperature, dew point, wind","description":"Get one daily summary for each of the last 7 days of a station: highs, lows and averages of temperature, dew point, wind, gust, pressure, humidity plus total precipitation. Use for \"What were the daily highs and lows at station KMAHANOV10 over the last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"}},"required":["station_id"],"title":"get_daily_summaries_7_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}},"/v1/tools/get_rapid_history_1_day":{"post":{"operationId":"get_rapid_history_1_day","summary":"Get the last day of observations of a station as frequently as every 5 minutes (depends on how often the station reports","description":"Get the last day of observations of a station as frequently as every 5 minutes (depends on how often the station reports), with highs, lows and averages per record. Use for \"Show the 5-minute temperature history of station KMAHANOV10 for the last day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"}},"required":["station_id"],"title":"get_rapid_history_1_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}},"/v1/tools/get_hourly_history_7_day":{"post":{"operationId":"get_hourly_history_7_day","summary":"Get hourly records of a station for the last 7 days with highs, lows and averages of temperature, wind, pressure, humidi","description":"Get hourly records of a station for the last 7 days with highs, lows and averages of temperature, wind, pressure, humidity and precipitation. Use for \"Give me hourly temperature and rain for station KMAHANOV10 over the past week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"}},"required":["station_id"],"title":"get_hourly_history_7_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}},"/v1/tools/get_hourly_history_for_date":{"post":{"operationId":"get_hourly_history_for_date","summary":"Get the hourly historical records of a station for one past date (YYYYMMDD), or for a range of up to 31 days with start_","description":"Get the hourly historical records of a station for one past date (YYYYMMDD), or for a range of up to 31 days with start_date and end_date. For the current day use the recent history tools. Use for \"What were the hourly readings at station KCAOAKLA44 on 1 October 2018\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"date":{"description":"Date as YYYYMMDD, for example 20181001.","maxLength":8,"title":"Date","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"},"start_date":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Start of a range as YYYYMMDD; use together with end_date (range at most 31 days).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"End of a range as YYYYMMDD; use together with start_date.","title":"End Date"}},"required":["station_id","date"],"title":"get_hourly_history_for_dateArguments","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_history_for_date":{"post":{"operationId":"get_daily_history_for_date","summary":"Get the daily summary of a station for one past date (YYYYMMDD), or for a range of up to 31 days with start_date and end","description":"Get the daily summary of a station for one past date (YYYYMMDD), or for a range of up to 31 days with start_date and end_date. Use for \"What was the daily high and low at station KCAOAKLA44 on 1 October 2018\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"station_id":{"description":"Weather Underground personal weather station id, for example KMAHANOV10.","maxLength":30,"title":"Station Id","type":"string"},"date":{"description":"Date as YYYYMMDD, for example 20181001.","maxLength":8,"title":"Date","type":"string"},"units":{"anyOf":[{"enum":["e","m","h"],"type":"string"},{"type":"null"}],"default":"e","description":"Units: e (English, default), m (metric) or h (UK hybrid). The unit-dependent values come back under imperial, metric or uk_hybrid.","title":"Units"},"format":{"anyOf":[{"const":"json","type":"string"},{"type":"null"}],"default":"json","description":"Response format; only json is supported here.","title":"Format"},"numeric_precision":{"anyOf":[{"const":"decimal","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'decimal' to get decimals instead of rounded integers.","title":"Numeric Precision"},"start_date":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Start of a range as YYYYMMDD; use together with end_date (range at most 31 days).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"End of a range as YYYYMMDD; use together with start_date.","title":"End Date"}},"required":["station_id","date"],"title":"get_daily_history_for_dateArguments","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}}}}