Space Weather & Atmosphere API
The Weather API aggregates data from NOAA’s Space Weather Prediction Center (SWPC) for solar and geomagnetic conditions, and from Open-Meteo for local atmospheric forecasts. All data is cached in the database and refreshed on a configurable schedule.
Space Weather
Section titled “Space Weather”Solar Data
Section titled “Solar Data”Last 30 days of solar activity data plus the current 10.7 cm solar flux.
GET /api/weather/solarResponse
Section titled “Response”{ "days": [ { "date": "2026-02-14", "radio_flux_10cm": 158.0, "sunspot_number": 120, "sunspot_area": 450, "xray_flares": { "c": 3, "m": 1, "x": 0, "s": 0 }, "optical_flares": { "c": 2, "m": 0, "x": 0, "s": 1 } } ], "current_flux": 158.0, "flux_timestamp": "2026-02-14T18:00:00Z"}Geomagnetic Data
Section titled “Geomagnetic Data”Last 30 days of planetary A and K index data, plus recent 3-hourly K-index entries.
GET /api/weather/geomagneticResponse
Section titled “Response”{ "days": [ { "date": "2026-02-14", "planetary_a": 8, "planetary_k": [2, 2, 3, 2, 1, 2, 3, 2] } ], "recent_kindex": [ { "time_tag": "2026-02-14T21:00:00Z", "kp": 2.33, "a_running": 8.0 } ]}WWV Propagation Bulletin
Section titled “WWV Propagation Bulletin”Parsed WWV/WWVH radio propagation bulletin with HF band condition assessments.
GET /api/weather/wwvResponse
Section titled “Response”{ "issued": "2026-02-14T18:00:00Z", "solar_flux": 158, "a_index": 8, "k_index": 2, "conditions_summary": "No space weather storms observed", "band_conditions": [ { "band": "80m-40m", "day": "Good", "night": "Good" }, { "band": "30m-20m", "day": "Good", "night": "Fair" }, { "band": "17m-15m", "day": "Fair", "night": "Poor" }, { "band": "12m-10m", "day": "Poor", "night": "Poor" } ], "forecast": "Solar activity is expected to be moderate..."}Aurora Forecast
Section titled “Aurora Forecast”OVATION aurora prediction model data, provided as a grid of coordinates with aurora probability values.
GET /api/weather/auroraResponse
Section titled “Response”{ "observation_time": "2026-02-14T18:30:00Z", "forecast_time": "2026-02-14T19:00:00Z", "coordinates": [ { "lon": -180.0, "lat": 65.0, "aurora": 42 }, { "lon": -179.0, "lat": 65.0, "aurora": 38 } ]}The aurora field is a probability value (0-100).
Weather Summary
Section titled “Weather Summary”Compact dashboard summary combining all current space weather conditions.
GET /api/weather/summaryResponse
Section titled “Response”{ "solar_flux": 158.0, "sunspot_number": 120, "a_index": 8, "k_index": 2.33, "k_level": "quiet", "band_conditions": [ { "band": "80m-40m", "day": "Good", "night": "Good" } ], "scales": { "radio_blackout": { "scale": 0, "text": "None" }, "solar_radiation": { "scale": 0, "text": "None" }, "geomagnetic_storm": { "scale": 0, "text": "None" } }, "last_updated": "2026-02-14T18:00:00Z"}K-Level Assessment
Section titled “K-Level Assessment”| K-index | Level | Impact |
|---|---|---|
| < 3 | quiet | Normal conditions |
| 3-4 | unsettled | Minor disturbances |
| >= 5 | storm | Geomagnetic storm active |
NOAA Scales
Section titled “NOAA Scales”| Scale | Severity |
|---|---|
| 0 | None |
| 1 | Minor |
| 2 | Moderate |
| 3 | Strong |
| 4 | Severe |
| 5 | Extreme |
Refresh Weather Data
Section titled “Refresh Weather Data”Force an immediate weather data refresh from all upstream sources.
POST /api/weather/refresh{ "status": "refreshing", "message": "Weather refresh started in background"}Atmosphere (Local Conditions)
Section titled “Atmosphere (Local Conditions)”Local atmospheric conditions at the observer’s location, sourced from Open-Meteo. Used to assess observing quality (cloud cover, visibility, wind).
Hourly Forecast
Section titled “Hourly Forecast”GET /api/atmosphere/forecastResponse
Section titled “Response”{ "hourly": [ { "time": "2026-02-14T22:00:00Z", "temp": -2.5, "humidity": 45.0, "cloud_cover": 12.0, "cloud_cover_low": 5.0, "cloud_cover_mid": 3.0, "cloud_cover_high": 8.0, "visibility": 32000.0, "wind_speed": 8.5, "wind_dir": 225.0, "precipitation": 0.0, "weather_code": 0, "surface_pressure": 1013.2 } ], "conditions": { "score": 85, "label": "Excellent", "cloud_pct": 12.0, "visibility_km": 32.0, "wind_speed": 8.5, "precipitation": 0.0, "temp": -2.5, "humidity": 45.0 }, "observer_lat": 39.7392, "observer_lon": -104.9903}Observing Conditions Score
Section titled “Observing Conditions Score”The conditions.score field (0-100) aggregates multiple factors into a single observing quality assessment:
| Score | Label | Meaning |
|---|---|---|
| 80-100 | Excellent | Clear skies, good visibility, low wind |
| 60-79 | Good | Minor clouds or haze |
| 40-59 | Fair | Partial cloud cover |
| 20-39 | Poor | Significant cloud cover or weather |
| 0-19 | Bad | Overcast or active precipitation |
Current Conditions Only
Section titled “Current Conditions Only”A lighter endpoint that returns only the current observing conditions without the full hourly forecast.
GET /api/atmosphere/conditionsResponse
Section titled “Response”{ "conditions": { "score": 85, "label": "Excellent", "cloud_pct": 12.0, "visibility_km": 32.0, "wind_speed": 8.5, "precipitation": 0.0, "temp": -2.5, "humidity": 45.0 }, "observer_lat": 39.7392, "observer_lon": -104.9903}Refresh Atmosphere Data
Section titled “Refresh Atmosphere Data”POST /api/atmosphere/refresh{ "status": "refreshing", "message": "Atmosphere refresh started in background"}