{"openapi":"3.1.0","info":{"title":"Visual Crossing (BYOK) API","version":"0.1.0","description":"Visual Crossing (BYOK) lets an AI assistant read your own Visual Crossing data through the Visual Crossing API with a key you supply (API key). Read-only: 6 tools (get_daily_forecast, get_current_conditions, get_hourly_today, get_weather_alerts, get_weather_for_dates, get_recent_history). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-visualcrossing.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-visualcrossing/docs"},"termsOfService":"https://connectorbay.com/byok-visualcrossing/terms"},"servers":[{"url":"https://byok-visualcrossing.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-visualcrossing/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_daily_forecast":{"post":{"operationId":"get_daily_forecast","summary":"Get the daily forecast for the next 15 days at a place: high, low and mean temperature, feels-like, humidity, precipitat","description":"Get the daily forecast for the next 15 days at a place: high, low and mean temperature, feels-like, humidity, precipitation amount and chance, snow, wind, cloud cover, UV index, conditions, description, sunrise and sunset. Use for \"What is the 15-day forecast for London\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"unit_group":{"anyOf":[{"enum":["us","metric","uk","base"],"type":"string"},{"type":"null"}],"default":"metric","description":"Units: us (Fahrenheit, miles, inches), metric (Celsius, km, mm), uk (Celsius, miles, mm) or base (Kelvin, metric).","title":"Unit Group"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"enum":["days","days,current"],"type":"string"},{"type":"null"}],"default":"days","description":"Sections to return: days only, or days with the current conditions block.","title":"Include"}},"required":["location"],"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_current_conditions":{"post":{"operationId":"get_current_conditions","summary":"Get the current conditions at a place (temperature, feels-like, humidity, wind, pressure, visibility, conditions) withou","description":"Get the current conditions at a place (temperature, feels-like, humidity, wind, pressure, visibility, conditions) without the day-by-day forecast. Use for \"What are the current conditions in Chicago\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"unit_group":{"anyOf":[{"enum":["us","metric","uk","base"],"type":"string"},{"type":"null"}],"default":"metric","description":"Units: us (Fahrenheit, miles, inches), metric (Celsius, km, mm), uk (Celsius, miles, mm) or base (Kelvin, metric).","title":"Unit Group"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"const":"current","type":"string"},{"type":"null"}],"default":"current","description":"Sections to return; keep the default current.","title":"Include"}},"required":["location"],"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_hourly_today":{"post":{"operationId":"get_hourly_today","summary":"Get hour-by-hour weather for today at a place: temperature, humidity, dew point, wind, pressure, cloud cover and conditi","description":"Get hour-by-hour weather for today at a place: temperature, humidity, dew point, wind, pressure, cloud cover and conditions per hour. Use for \"What is the hourly forecast for today in Seattle\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"unit_group":{"anyOf":[{"enum":["us","metric","uk","base"],"type":"string"},{"type":"null"}],"default":"metric","description":"Units: us (Fahrenheit, miles, inches), metric (Celsius, km, mm), uk (Celsius, miles, mm) or base (Kelvin, metric).","title":"Unit Group"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"enum":["hours","hours,current"],"type":"string"},{"type":"null"}],"default":"hours","description":"Sections to return: hours only, or hours with the current conditions block.","title":"Include"}},"required":["location"],"title":"get_hourly_todayArguments","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 weather alerts and warnings for a place (returned only when the request covers the current date). Use for \"Ar","description":"Get active weather alerts and warnings for a place (returned only when the request covers the current date). Use for \"Are there any weather alerts for Miami right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"const":"alerts","type":"string"},{"type":"null"}],"default":"alerts","description":"Sections to return; keep the default alerts.","title":"Include"}},"required":["location"],"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_for_dates":{"post":{"operationId":"get_weather_for_dates","summary":"Get daily or hourly weather for a date range at a place, in the past (observed history) or the next 15 days (forecast). ","description":"Get daily or hourly weather for a date range at a place, in the past (observed history) or the next 15 days (forecast). Use for \"What was the weather in Paris from 2026-01-01 to 2026-01-07\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"date1":{"description":"Start date as yyyy-MM-dd.","maxLength":10,"title":"Date1","type":"string"},"date2":{"description":"End date as yyyy-MM-dd, inclusive.","maxLength":10,"title":"Date2","type":"string"},"unit_group":{"anyOf":[{"enum":["us","metric","uk","base"],"type":"string"},{"type":"null"}],"default":"metric","description":"Units: us (Fahrenheit, miles, inches), metric (Celsius, km, mm), uk (Celsius, miles, mm) or base (Kelvin, metric).","title":"Unit Group"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"enum":["days","hours"],"type":"string"},{"type":"null"}],"default":"days","description":"Detail level: days for daily values or hours for daily values with the hours inside.","title":"Include"}},"required":["location","date1","date2"],"title":"get_weather_for_datesArguments","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_recent_history":{"post":{"operationId":"get_recent_history","summary":"Get daily observed weather for yesterday or for the last 30 days at a place. Use for \"What was the weather like in Denve","description":"Get daily observed weather for yesterday or for the last 30 days at a place. Use for \"What was the weather like in Denver over the last 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"description":"Place as an address or partial address such as 'London,UK', as 'latitude,longitude' such as '38.9697,-77.385', or a US ZIP code.","maxLength":100,"title":"Location","type":"string"},"period":{"description":"Which period: yesterday or last30days.","enum":["yesterday","last30days"],"title":"Period","type":"string"},"unit_group":{"anyOf":[{"enum":["us","metric","uk","base"],"type":"string"},{"type":"null"}],"default":"metric","description":"Units: us (Fahrenheit, miles, inches), metric (Celsius, km, mm), uk (Celsius, miles, mm) or base (Kelvin, metric).","title":"Unit Group"},"lang":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Language code for text such as conditions and descriptions, for example en, de or fr.","title":"Lang"},"include":{"anyOf":[{"const":"days","type":"string"},{"type":"null"}],"default":"days","description":"Detail level; keep the default days.","title":"Include"}},"required":["location","period"],"title":"get_recent_historyArguments","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}}}}