Created
July 6, 2025 12:34
-
-
Save joshtwist/7cdad417351318d50509a63f51a96b61 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"openapi": "3.1.0", | |
"info": { | |
"version": "1.0.0", | |
"title": "SupaWeather API", | |
"description": "The SupaWeather API provides comprehensive weather data and forecasts for locations worldwide. Get real-time weather conditions, extended forecasts, and geocoding services.", | |
"contact": { | |
"name": "SupaWeather API Support", | |
"email": "[email protected]" | |
} | |
}, | |
"servers": [ | |
{ | |
"url": "https://supaweather-backend-main-c9815e5.akamai-summer-2025-keynote-demo-poc.zuplo.work", | |
"description": "Production server" | |
} | |
], | |
"paths": { | |
"/weather/current": { | |
"get": { | |
"summary": "Get Current Weather", | |
"description": "Returns current weather data for a specified coordinate", | |
"operationId": "get_current_weather", | |
"tags": ["Weather"], | |
"parameters": [ | |
{ | |
"name": "lat", | |
"in": "query", | |
"description": "Latitude coordinate", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"example": 51.42212 | |
} | |
}, | |
{ | |
"name": "lon", | |
"in": "query", | |
"description": "Longitude coordinate", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"example": -0.20805 | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Successful response with current weather data", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/WeatherData" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/weather/stations": { | |
"get": { | |
"summary": "Get Weather Stations", | |
"description": "Returns weather station data (not yet implemented)", | |
"operationId": "get_weather_stations", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/forecast": { | |
"get": { | |
"summary": "Get 16-Day Weather Forecast", | |
"description": "Returns weather forecast data for the next 16 days for specified coordinates", | |
"operationId": "get_weather_forecast", | |
"tags": ["Weather"], | |
"parameters": [ | |
{ | |
"name": "lat", | |
"in": "query", | |
"description": "Latitude coordinate", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"example": 51.42212 | |
} | |
}, | |
{ | |
"name": "lon", | |
"in": "query", | |
"description": "Longitude coordinate", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"example": -0.20805 | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Successful response with 16-day forecast data", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/Forecast" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/weather/forecast/marine": { | |
"get": { | |
"summary": "Get Marine Weather Forecast", | |
"description": "Gets specialized weather forecast for marine and coastal areas (not yet implemented)", | |
"operationId": "get_weather_forecast_marine", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/historical": { | |
"get": { | |
"summary": "Access Historical Weather Data", | |
"description": "Access historical weather data for any location dating back to 1979 (not yet implemented)", | |
"operationId": "get_weather_historical", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/historical/summary": { | |
"get": { | |
"summary": "Get Statistical Climate Summaries", | |
"description": "Get statistical climate summaries including monthly averages, extremes, and climate normals (not yet implemented)", | |
"operationId": "get_weather_historical_summary", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/alerts": { | |
"get": { | |
"summary": "Retrieve Active Weather Alerts", | |
"description": "Retrieve active weather alerts and warnings for a specific region (not yet implemented)", | |
"operationId": "get_weather_alerts", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/alerts/subscribe": { | |
"get": { | |
"summary": "Subscribe to Weather Alerts", | |
"description": "Create a subscription to receive weather alerts for specific locations (not yet implemented)", | |
"operationId": "subscribe_weather_alerts", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/radar": { | |
"get": { | |
"summary": "Access Weather Radar Imagery", | |
"description": "Access weather radar imagery and precipitation maps (not yet implemented)", | |
"operationId": "get_weather_radar", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/weather/maps/satellite": { | |
"get": { | |
"summary": "Access Satellite Images", | |
"description": "Access real-time satellite images showing cloud cover and atmospheric conditions (not yet implemented)", | |
"operationId": "get_weather_maps_satellite", | |
"tags": ["Weather"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
}, | |
"/geocoding/search": { | |
"get": { | |
"summary": "Convert Location Names to Coordinates", | |
"description": "Convert city names to geographic coordinates (latitude and longitude)", | |
"operationId": "search_geocoding", | |
"tags": ["Geocoding"], | |
"parameters": [ | |
{ | |
"name": "city", | |
"in": "query", | |
"description": "City name to get coordinates for", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"example": "Wimbledon" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Successful response with location coordinates", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/GeocodingResult" | |
}, | |
"example": { | |
"name": "Wimbledon", | |
"lat": 51.42212, | |
"lon": -0.20805, | |
"country": "United Kingdom" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/geocoding/reverse": { | |
"get": { | |
"summary": "Convert Coordinates to Location Names", | |
"description": "Convert geographic coordinates to location names (not yet implemented)", | |
"operationId": "reverse_geocoding", | |
"tags": ["Geocoding"], | |
"responses": { | |
"200": { | |
"description": "Returns 'not yet implemented'" | |
} | |
} | |
} | |
} | |
}, | |
"components": { | |
"schemas": { | |
"WeatherData": { | |
"type": "object", | |
"description": "Complete weather data for a specific time and location", | |
"properties": { | |
"cloudCeiling": { | |
"type": "number", | |
"description": "Cloud ceiling height in feet", | |
"example": 800 | |
}, | |
"cloudCoverPhrase": { | |
"type": "string", | |
"description": "Descriptive phrase for cloud cover", | |
"example": "Partly Cloudy" | |
}, | |
"dayOrNight": { | |
"type": "string", | |
"description": "Indicates day (D) or night (N)", | |
"enum": ["D", "N"], | |
"example": "D" | |
}, | |
"iconCode": { | |
"type": "number", | |
"description": "Weather icon code", | |
"example": 26 | |
}, | |
"iconCodeExtend": { | |
"type": "number", | |
"description": "Extended weather icon code", | |
"example": 2600 | |
}, | |
"precip1Hour": { | |
"type": "number", | |
"description": "Precipitation in the last hour (inches)", | |
"example": 0 | |
}, | |
"precip6Hour": { | |
"type": "number", | |
"description": "Precipitation in the last 6 hours (inches)", | |
"example": 0 | |
}, | |
"precip24Hour": { | |
"type": "number", | |
"description": "Precipitation in the last 24 hours (inches)", | |
"example": 0.05 | |
}, | |
"pressureAltimeter": { | |
"type": "number", | |
"description": "Atmospheric pressure (inHg)", | |
"example": 30.14 | |
}, | |
"pressureChange": { | |
"type": "number", | |
"description": "Pressure change", | |
"example": 0.05 | |
}, | |
"pressureMeanSeaLevel": { | |
"type": "number", | |
"description": "Mean sea level pressure (mb)", | |
"example": 1018.6 | |
}, | |
"pressureTendencyCode": { | |
"type": "number", | |
"description": "Pressure tendency code", | |
"example": 1 | |
}, | |
"pressureTendencyTrend": { | |
"type": "string", | |
"description": "Pressure tendency description", | |
"example": "Rising" | |
}, | |
"relativeHumidity": { | |
"type": "number", | |
"description": "Relative humidity percentage", | |
"example": 95 | |
}, | |
"snow1Hour": { | |
"type": "number", | |
"description": "Snowfall in the last hour (inches)", | |
"example": 0 | |
}, | |
"snow6Hour": { | |
"type": "number", | |
"description": "Snowfall in the last 6 hours (inches)", | |
"example": 0 | |
}, | |
"snow24Hour": { | |
"type": "number", | |
"description": "Snowfall in the last 24 hours (inches)", | |
"example": 0 | |
}, | |
"temperature": { | |
"type": "number", | |
"description": "Current temperature (Fahrenheit)", | |
"example": 38 | |
}, | |
"temperatureChange24Hour": { | |
"type": "number", | |
"description": "Temperature change in last 24 hours", | |
"example": -2 | |
}, | |
"temperatureDewPoint": { | |
"type": "number", | |
"description": "Dew point temperature (Fahrenheit)", | |
"example": 37 | |
}, | |
"temperatureFeelsLike": { | |
"type": "number", | |
"description": "Feels like temperature (Fahrenheit)", | |
"example": 38 | |
}, | |
"temperatureHeatIndex": { | |
"type": "number", | |
"description": "Heat index temperature (Fahrenheit)", | |
"example": 38 | |
}, | |
"temperatureMax24Hour": { | |
"type": "number", | |
"description": "Maximum temperature in last 24 hours (Fahrenheit)", | |
"example": 42 | |
}, | |
"temperatureMaxSince7Am": { | |
"type": "number", | |
"description": "Maximum temperature since 7 AM (Fahrenheit)", | |
"example": 38 | |
}, | |
"temperatureMin24Hour": { | |
"type": "number", | |
"description": "Minimum temperature in last 24 hours (Fahrenheit)", | |
"example": 36 | |
}, | |
"temperatureWindChill": { | |
"type": "number", | |
"description": "Wind chill temperature (Fahrenheit)", | |
"example": 38 | |
}, | |
"uvDescription": { | |
"type": "string", | |
"description": "UV index description", | |
"example": "Low" | |
}, | |
"uvIndex": { | |
"type": "number", | |
"description": "UV index value", | |
"example": 1 | |
}, | |
"visibility": { | |
"type": "number", | |
"description": "Visibility in miles", | |
"example": 10 | |
}, | |
"windDirection": { | |
"type": "number", | |
"description": "Wind direction in degrees", | |
"example": 110 | |
}, | |
"windDirectionCardinal": { | |
"type": "string", | |
"description": "Wind direction as cardinal direction", | |
"example": "ESE" | |
}, | |
"windGust": { | |
"type": ["number", "null"], | |
"description": "Wind gust speed (mph)", | |
"example": null | |
}, | |
"windSpeed": { | |
"type": "number", | |
"description": "Wind speed (mph)", | |
"example": 2 | |
}, | |
"PhraseLong": { | |
"type": "string", | |
"description": "Long weather description", | |
"example": "Partly Cloudy" | |
}, | |
"PhraseMedium": { | |
"type": "string", | |
"description": "Medium weather description", | |
"example": "Partly Cloudy" | |
}, | |
"PhraseShort": { | |
"type": "string", | |
"description": "Short weather description", | |
"example": "P Cloudy" | |
} | |
} | |
}, | |
"Forecast": { | |
"type": "object", | |
"description": "Weather forecast for 16 days", | |
"properties": { | |
"0": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 0 (today) weather data" | |
}, | |
"1": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 1 weather data" | |
}, | |
"2": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 2 weather data" | |
}, | |
"3": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 3 weather data" | |
}, | |
"4": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 4 weather data" | |
}, | |
"5": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 5 weather data" | |
}, | |
"6": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 6 weather data" | |
}, | |
"7": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 7 weather data" | |
}, | |
"8": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 8 weather data" | |
}, | |
"9": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 9 weather data" | |
}, | |
"10": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 10 weather data" | |
}, | |
"11": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 11 weather data" | |
}, | |
"12": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 12 weather data" | |
}, | |
"13": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 13 weather data" | |
}, | |
"14": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 14 weather data" | |
}, | |
"15": { | |
"$ref": "#/components/schemas/WeatherData", | |
"description": "Day 15 weather data" | |
} | |
}, | |
"required": [ | |
"0", | |
"1", | |
"2", | |
"3", | |
"4", | |
"5", | |
"6", | |
"7", | |
"8", | |
"9", | |
"10", | |
"11", | |
"12", | |
"13", | |
"14", | |
"15" | |
] | |
}, | |
"GeocodingResult": { | |
"type": "object", | |
"description": "Geocoding result with location coordinates", | |
"properties": { | |
"name": { | |
"type": "string", | |
"description": "Location name", | |
"example": "Wimbledon" | |
}, | |
"lat": { | |
"type": "number", | |
"description": "Latitude coordinate", | |
"example": 51.42212 | |
}, | |
"lon": { | |
"type": "number", | |
"description": "Longitude coordinate", | |
"example": -0.20805 | |
}, | |
"country": { | |
"type": "string", | |
"description": "Country name", | |
"example": "United Kingdom" | |
} | |
}, | |
"required": ["name", "lat", "lon", "country"] | |
} | |
} | |
}, | |
"tags": [ | |
{ | |
"name": "Weather", | |
"description": "Weather data endpoints" | |
}, | |
{ | |
"name": "Geocoding", | |
"description": "Location geocoding services" | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment