{"title":"Weather AGI Public API Contracts","version":"2.4.0","default_location":{"name":"Rochester, NY","lat":43.1566,"lon":-77.6088},"primary_source":"National Weather Service (api.weather.gov)","endpoints":[{"path":"/api/health","method":"GET","description":"Liveness + integrations_detail (includes postgres)"},{"path":"/api/public/snapshot","method":"GET","description":"Weekly package: current, periods, alerts, severe_context, agi_narrative, media, enrichments, upper_air"},{"path":"/api/public/media","method":"GET","description":"Radar + GOES + OpenStreetMap tile layers (IEM/RainViewer)"},{"path":"/api/public/rainviewer","method":"GET","description":"RainViewer weather-maps.json proxy for animated radar"},{"path":"/api/public/research","method":"GET","description":"No-JS DOC/Grok research Q&A"},{"path":"/api/public/chat","method":"POST","description":"Public DOC chat for automated tests"},{"path":"/api/doc/chat","method":"POST","description":"Full DOC neural chat (SPA)"},{"path":"/api/current","method":"GET","description":"NWS station observation"},{"path":"/api/forecast/everyday","method":"GET","description":"NWS 7-day + hourly + media"},{"path":"/api/alerts","method":"GET","description":"Point alerts"},{"path":"/status","method":"GET","description":"No-JS HTML with radar/satellite embeds"},{"path":"/api/public/weekly-regression","method":"GET","description":"IOP vs NWS; multi=true for suite; persists to Postgres"},{"path":"/api/public/weekly-regression/history","method":"GET","description":"Stored IOP runs (SQLGate-visible table)"},{"path":"/api/public/db-status","method":"GET","description":"Postgres status for operators (no secrets)"},{"path":"/api/public/upper-air","method":"GET","description":"Nearest RAOB context + SPC links"},{"path":"/api/public/docs","method":"GET","description":"This contract"}],"database":{"engine":"postgres","operator_gui_windows":"SQLGate for PostgreSQL","operator_gui_macos":"TablePlus / pgAdmin / DBeaver / psql","docs":"docs/DATABASE.md","note":"MySQL and SQL Server SQLGate editions are not used by DOC"},"brief_field_notes":{"today_high_f":"First daytime NWS period high (not weekly max)","seven_day_high_max_f":"Max daytime high across periods","observation_age_minutes":"Minutes since observation timestamp","media":"Public GOES + Mesonet radar URLs + open_maps OSM/IEM/RainViewer tiles","enrichments.firms":"FIRMS hotspots when key set","enrichments.climate_normals":"NCEI normals when token set","severe_context":"DOC independent model (not NWS); includes performance_vs_nws scorekeeping","doc_independent":"Full DOC package + NWS comparison baseline only","agi_narrative":"Grok summary citing NWS facts"},"weekly_test_recipe":["GET /api/health","GET /api/public/snapshot?lat=43.16&lon=-77.61&location_name=Rochester,%20NY","GET /api/public/media?lat=43.16&lon=-77.61","GET /api/public/research?q=Explain%20shower%20risk&lat=43.16&lon=-77.61","POST /api/public/chat","GET /status?lat=43.16&lon=-77.61"]}