{"name": "API Pulse", "say": "API Pulse checks whether the 6 free public data sources Ziggi relies on are answering right now.", "base": "https://api-pulse.lab.ziggiai.com", "endpoints": [{"method": "GET", "path": "/api/run", "desc": "Check all 6 sources now (under 15 s). Returns say, up, total and sources [{name, ok, status, ms}]."}, {"method": "GET", "path": "/api/history", "desc": "The last 48 runs, newest first."}, {"method": "GET", "path": "/api/slides", "desc": "A deck: hero (up count), stats (ms per source), table (history)."}, {"method": "GET", "path": "/api/selftest", "desc": "Runs /api/run; ok is true when at least 4 of 6 answered. {ok, blocked, say}."}, {"method": "GET", "path": "/api.json", "desc": "This list."}, {"method": "GET", "path": "/", "desc": "Web page showing the latest run."}], "sources": [{"name": "Open-Meteo", "url": "https://api.open-meteo.com/v1/forecast?latitude=37.55&longitude=-122.27&current=temperature_2m"}, {"name": "ESPN", "url": "https://site.api.espn.com/apis/site/v2/sports/basketball/nba/scoreboard"}, {"name": "Wikipedia", "url": "https://en.wikipedia.org/api/rest_v1/page/summary/Raspberry_Pi"}, {"name": "NWS", "url": "https://api.weather.gov/points/37.5585,-122.2711"}, {"name": "TheMealDB", "url": "https://www.themealdb.com/api/json/v1/1/search.php?s=chicken"}, {"name": "Frankfurter", "url": "https://api.frankfurter.app/latest?from=USD&to=EUR"}]}