{"openapi":"3.1.0","info":{"title":"Pirate Weather (BYOK) API","version":"0.1.0","description":"Pirate Weather (BYOK) lets an AI assistant read your own Pirate Weather data through the Pirate Weather API with a key you supply (Pirate Weather API key). Read-only: 6 tools (get_forecast, get_current_conditions, get_hourly_forecast, get_daily_forecast, get_minutely_forecast, get_weather_alerts). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pirate-weather.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pirate-weather/docs"},"termsOfService":"https://connectorbay.com/byok-pirate-weather/terms"},"servers":[{"url":"https://byok-pirate-weather.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pirate-weather/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_forecast":{"post":{"operationId":"get_forecast","summary":"Get an overview forecast for a point: current conditions, the 7-day daily forecast and any alerts (use the hourly and mi","description":"Get an overview forecast for a point: current conditions, the 7-day daily forecast and any alerts (use the hourly and minutely tools for finer detail). Use for \"What is the weather forecast for San Francisco\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"units":{"anyOf":[{"enum":["us","si","ca","uk"],"type":"string"},{"type":"null"}],"default":"us","description":"Units: us (Fahrenheit, mph), si (Celsius, m/s), ca (Celsius, km/h) or uk (Celsius, mph).","title":"Units"}},"required":["latitude","longitude"],"title":"get_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 point: temperature, feels-like, humidity, wind, pressure, cloud cover, UV index and prec","description":"Get the current conditions at a point: temperature, feels-like, humidity, wind, pressure, cloud cover, UV index and precipitation. Use for \"What is the temperature right now at latitude 51.5072, longitude -0.1276\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"units":{"anyOf":[{"enum":["us","si","ca","uk"],"type":"string"},{"type":"null"}],"default":"us","description":"Units: us (Fahrenheit, mph), si (Celsius, m/s), ca (Celsius, km/h) or uk (Celsius, mph).","title":"Units"},"exclude":{"anyOf":[{"const":"minutely,hourly,daily,alerts","type":"string"},{"type":"null"}],"default":"minutely,hourly,daily,alerts","description":"Blocks left out of the answer (only current conditions are returned); keep the default.","title":"Exclude"}},"required":["latitude","longitude"],"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_forecast":{"post":{"operationId":"get_hourly_forecast","summary":"Get the hourly forecast for a point: summary plus 48 hourly entries (168 with extend=hourly) of temperature, precipitati","description":"Get the hourly forecast for a point: summary plus 48 hourly entries (168 with extend=hourly) of temperature, precipitation, wind and cloud cover. Use for \"Will it rain in Seattle over the next 48 hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"units":{"anyOf":[{"enum":["us","si","ca","uk"],"type":"string"},{"type":"null"}],"default":"us","description":"Units: us (Fahrenheit, mph), si (Celsius, m/s), ca (Celsius, km/h) or uk (Celsius, mph).","title":"Units"},"extend":{"anyOf":[{"const":"hourly","type":"string"},{"type":"null"}],"default":null,"description":"Set to hourly to get 168 hourly entries instead of 48.","title":"Extend"},"exclude":{"anyOf":[{"const":"currently,minutely,daily,alerts","type":"string"},{"type":"null"}],"default":"currently,minutely,daily,alerts","description":"Blocks left out of the answer (only the hourly block is returned); keep the default.","title":"Exclude"}},"required":["latitude","longitude"],"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 a point: summary plus 7 daily entries with high and low temperature, sunrise and sunset, prec","description":"Get the daily forecast for a point: summary plus 7 daily entries with high and low temperature, sunrise and sunset, precipitation chance and moon phase. Use for \"What are the highs and lows in Mumbai this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"units":{"anyOf":[{"enum":["us","si","ca","uk"],"type":"string"},{"type":"null"}],"default":"us","description":"Units: us (Fahrenheit, mph), si (Celsius, m/s), ca (Celsius, km/h) or uk (Celsius, mph).","title":"Units"},"exclude":{"anyOf":[{"const":"currently,minutely,hourly,alerts","type":"string"},{"type":"null"}],"default":"currently,minutely,hourly,alerts","description":"Blocks left out of the answer (only the daily block is returned); keep the default.","title":"Exclude"}},"required":["latitude","longitude"],"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_minutely_forecast":{"post":{"operationId":"get_minutely_forecast","summary":"Get the next 60 minutes of precipitation intensity and probability at a point. Use for \"Is it about to rain at latitude ","description":"Get the next 60 minutes of precipitation intensity and probability at a point. Use for \"Is it about to rain at latitude 40.7128, longitude -74.0060\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"units":{"anyOf":[{"enum":["us","si","ca","uk"],"type":"string"},{"type":"null"}],"default":"us","description":"Units: us (Fahrenheit, mph), si (Celsius, m/s), ca (Celsius, km/h) or uk (Celsius, mph).","title":"Units"},"exclude":{"anyOf":[{"const":"currently,hourly,daily,alerts","type":"string"},{"type":"null"}],"default":"currently,hourly,daily,alerts","description":"Blocks left out of the answer (only the minutely block is returned); keep the default.","title":"Exclude"}},"required":["latitude","longitude"],"title":"get_minutely_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 weather alerts for a point (title, regions, severity, start, expiry, description and link). Use for \"Are ther","description":"Get active weather alerts for a point (title, regions, severity, start, expiry, description and link). Use for \"Are there weather alerts for latitude 29.7604, longitude -95.3698\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Latitude in decimal degrees, from -90 to 90, for example 37.8267.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, from -180 to 180, for example -122.4233.","maxLength":12,"title":"Longitude","type":"string"},"exclude":{"anyOf":[{"const":"currently,minutely,hourly,daily","type":"string"},{"type":"null"}],"default":"currently,minutely,hourly,daily","description":"Blocks left out of the answer (only alerts are returned); keep the default.","title":"Exclude"}},"required":["latitude","longitude"],"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}}}}