{"manifest_version":1,"generated_at":"2026-09-30T17:10:30.917822+00:00","generator":"worldtwin-aggregator/1.0.0","envelope_version":1,"counts":{"total":93,"live":16,"stale":0,"dead":0,"retired":77},"layers":[{"id":"acled","name":"ACLED Conflict Events","category":"war","kind":"points","state":"retired","state_detail":"Tombstoned: ACLED EULA §3.1 forbids dashboard redistribution — protests/riots are a declared gap.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"ACLED — Armed Conflict Location & Event Data","url":"https://acleddata.com/"},"license":{"name":"ACLED EULA — map visualization not permitted (clause 3.1)","url":null},"representations":[{"rel":"full","url":"acled.json","bytes":384,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"air_quality","name":"Air Quality (major cities)","category":"health","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T16:55:18.972678+00:00","expires_at":"2026-09-30T17:25:18.972678+00:00","refresh_s":1800,"max_staleness_s":21600,"max_bytes":2000000,"last_success_at":"2026-09-30T16:55:18.982095+00:00","count":45,"source":{"name":"Open-Meteo CAMS","url":"https://air-quality-api.open-meteo.com/v1/air-quality"},"license":{"name":"Open-Meteo free tier (non-commercial); data CC BY 4.0","url":null},"representations":[{"rel":"full","url":"air_quality.json","bytes":7284,"bytes_gz":2291,"count":45,"lossy":false}]},{"id":"berkeley_earth","name":"Berkeley Earth — Temperature Anomaly","category":"weather","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: NC-licensed annual summary frozen at 2024 while reporting ok; replacement is NASA GISTEMP v4 (public domain).","fetched_at":null,"expires_at":null,"refresh_s":2419200,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Berkeley Earth Surface Temperatures","url":"https://berkeleyearth.org/data/"},"license":{"name":"CC BY-NC 4.0","url":null},"representations":[{"rel":"full","url":"berkeley_earth.json","bytes":382,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"brecke_wars","name":"Major Wars (1400→present)","category":"meta","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: the honesty exemplar; returns at stage 9 with '~80' corrected to 63 and as-of dates on hardcoded ongoing wars.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Curated from Brecke 2002 + COW + UCDP","url":"https://brecke.inta.gatech.edu/research/conflict/"},"license":{"name":"Free academic use","url":null},"representations":[{"rel":"full","url":"brecke_wars.json","bytes":376,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"cables","name":"Submarine Internet Cables","category":"infra","kind":"raw","state":"ok","state_detail":null,"fetched_at":"2026-09-30T09:55:44.758459+00:00","expires_at":"2026-10-01T09:55:44.758459+00:00","refresh_s":86400,"max_staleness_s":3888000,"max_bytes":2000000,"last_success_at":"2026-09-30T09:55:44.919810+00:00","count":730,"source":{"name":"TeleGeography","url":"https://www.submarinecablemap.com/api/v3/cable/cable-geo.json"},"license":{"name":"CC BY-NC-SA 3.0","url":null},"representations":[{"rel":"full","url":"cables.json","bytes":432444,"bytes_gz":126197,"count":730,"lossy":false}]},{"id":"cepii_baci","name":"CEPII BACI Bilateral Trade Matrix (1995-2024)","category":"resources","kind":"raw","state":"retired","state_detail":"Tombstoned: never returned a row, and a 5.9 GB single-year expansion caused the six-day July outage; IMF IMTS replaces it.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"CEPII BACI v202601 (UN Comtrade reconciled)","url":"https://www.cepii.fr/CEPII/en/bdd_modele/bdd_modele_item.asp?id=37"},"license":{"name":"Etalab 2.0 (open)","url":null},"representations":[{"rel":"full","url":"cepii_baci.json","bytes":393,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"climatetrace_assets","name":"Global Facility Emissions (ClimateTRACE)","category":"resources","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: hardcoded year=2024 and republished a third-party Mapbox token in thumbnails; returns cleaned and stratified.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"ClimateTRACE v6","url":"https://api.climatetrace.org/v6/assets"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"climatetrace_assets.json","bytes":371,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"clio_life_expectancy","name":"Life expectancy 1770→2023 (Clio-Infra + UN WPP)","category":"meta","kind":"countries","state":"retired","state_detail":"Retired 2026-09-24: clean source outside the locked v1 set; returns at stage 9.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"OWID composite (Clio-Infra + Riley + UN WPP)","url":"https://ourworldindata.org/grapher/life-expectancy"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"clio_life_expectancy.json","bytes":358,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"cloudflare_radar","name":"Cloudflare Radar — Internet Health","category":"infra","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:06:39.927941+00:00","expires_at":"2026-09-30T23:06:39.927941+00:00","refresh_s":21600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:06:39.935485+00:00","count":12,"source":{"name":"Cloudflare Radar","url":"https://radar.cloudflare.com/"},"license":{"name":"CC BY-NC 4.0","url":null},"representations":[{"rel":"full","url":"cloudflare_radar.json","bytes":5208,"bytes_gz":1055,"count":12,"lossy":false}]},{"id":"commodity_prices","name":"Commodity Prices (live ticker)","category":"economy","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: every series duplicates FRED or economy; gold served a monthly CSV polled hourly.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"datahub.io oil + CoinGecko global + Frankfurter forex","url":"https://github.com/datasets/oil-prices"},"license":{"name":"CC-BY-SA","url":null},"representations":[{"rel":"full","url":"commodity_prices.json","bytes":362,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"conflict_events","name":"Violent Events (GDELT real-time)","category":"war","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: 'severity' was media mention count wearing a casualty name; returns at stage 10 as media_attention.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"GDELT Events 2.0 (EventRootCode 18/19/20)","url":"http://data.gdeltproject.org/gdeltv2/"},"license":{"name":"GDELT Terms (free, citation required)","url":null},"representations":[{"rel":"full","url":"conflict_events.json","bytes":397,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"conflicts","name":"Conflict News (GDELT)","category":"war","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: all 150 points sat at lat 0/lon 0, unmappable; duplicated news, and the DOC API 429s two of three calls.","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"GDELT Project","url":"https://api.gdeltproject.org/api/v2/doc/doc"},"license":{"name":"GDELT Terms (free, citation required)","url":null},"representations":[{"rel":"full","url":"conflicts.json","bytes":357,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"country_culture","name":"Country culture (religion + ethnicity)","category":"meta","kind":"regions","state":"retired","state_detail":"Retired 2026-09-24: covered 127 of ~195 countries without saying so and sent a fake UA; returns with the missing third marked unknown.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Wikidata SPARQL + CIA World Factbook","url":"https://www.wikidata.org/wiki/Property:P140"},"license":{"name":"CC0 (Wikidata) + Public domain (CIA)","url":null},"representations":[{"rel":"full","url":"country_culture.json","bytes":414,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"country_deep_dive","name":"Country Resource Deep Dive","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: hardcoded 63 of ~180 countries with no coverage note; returns at stage 9 with the full Aqueduct table.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Aggregated: OWID + FEWS NET + WRI Aqueduct + ClimateTRACE","url":"internal"},"license":{"name":"Aggregated — see individual sources","url":null},"representations":[{"rel":"full","url":"country_deep_dive.json","bytes":415,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"country_intel","name":"Country Intelligence Profiles","category":"meta","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: promoted later at stage 9 — its _sanity_warnings self-reporting is the charter working as designed.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"WorldTwin cross-source analysis","url":"internal"},"license":{"name":"Derived from open data sources","url":null},"representations":[{"rel":"full","url":"country_intel.json","bytes":375,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"country_polygons","name":"Country Polygons (Natural Earth 50m)","category":"meta","kind":"raw","state":"ok","state_detail":null,"fetched_at":"2026-09-26T12:32:57.504607+00:00","expires_at":"2026-10-03T12:32:57.504607+00:00","refresh_s":604800,"max_staleness_s":null,"max_bytes":3000000,"last_success_at":"2026-09-26T12:32:57.504607+00:00","count":242,"source":{"name":"Natural Earth 1:50m Cultural","url":"https://www.naturalearthdata.com/"},"license":{"name":"CC0 (public domain)","url":null},"representations":[{"rel":"full","url":"country_polygons.json","bytes":2374359,"bytes_gz":848231,"count":242,"lossy":false}]},{"id":"country_relations","name":"Country Relations — blocs + alliances + enmities","category":"meta","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: mixed inferred GDELT ratios with asserted bloc edges indistinguishably; returns with the two labelled apart.","fetched_at":null,"expires_at":null,"refresh_s":21600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Curated blocs + GDELT QuadClass","url":"internal"},"license":{"name":"Public data + GDELT Terms (citation required)","url":null},"representations":[{"rel":"full","url":"country_relations.json","bytes":422,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"country_resources","name":"Country Resource Fact Sheets","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: the Comtrade licence claim is the least-verified in the set; returns once the terms are verified.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"UN Comtrade + WRI Global Power Plant DB","url":"https://comtradeapi.un.org/public/v1/preview/C/A/HS"},"license":{"name":"UN Open Data + CC BY 4.0","url":null},"representations":[{"rel":"full","url":"country_resources.json","bytes":381,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"cow_alliances","name":"Historical Alliances 1815→present","category":"meta","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: a hardcoded dict labelled as COW data, with a hardcoded end-year of 2026; returns relabelled as curated.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Curated from COW + historical consensus","url":"https://correlatesofwar.org/data-sets/formal-alliances/"},"license":{"name":"Free academic use","url":null},"representations":[{"rel":"full","url":"cow_alliances.json","bytes":379,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"crises","name":"Humanitarian Crises","category":"war","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: rendered CKAN catalogue metadata as crises at 274 MB/day; INFORM Severity replaces it at stage 10.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"HDX / NASA EONET (derived)","url":"https://data.humdata.org/api/3/action/package_search"},"license":{"name":"HDX open license","url":null},"representations":[{"rel":"full","url":"crises.json","bytes":338,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"dartmouth_floods","name":"Dartmouth Flood Observatory — Recent Events","category":"nature","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: FloodArchive.txt was removed upstream (404, not an outage); GDACS covers the flood gap.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Dartmouth Flood Observatory","url":"https://floodobservatory.colorado.edu/"},"license":{"name":"Free with attribution","url":null},"representations":[{"rel":"full","url":"dartmouth_floods.json","bytes":372,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"disasters","name":"Natural Disasters (EONET)","category":"nature","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: hardcoded limit served 5,000 of 19,221 events; returns at stage 9 with the cap removed and hourly cadence.","fetched_at":null,"expires_at":null,"refresh_s":600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA EONET","url":"https://eonet.gsfc.nasa.gov/api/v3/events"},"license":{"name":"NASA open data","url":null},"representations":[{"rel":"full","url":"disasters.json","bytes":340,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"economy","name":"Economy (Forex + Crypto)","category":"economy","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: polled once-a-day ECB reference rates 288 times daily; returns split into crypto (300 s) and forex (6 h).","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Frankfurter + CoinGecko","url":"https://api.frankfurter.dev/v1/latest"},"license":{"name":"Free (public)","url":null},"representations":[{"rel":"full","url":"economy.json","bytes":346,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"eia_930_grid","name":"EIA-930 — US Balancing Authority Data","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: 59 of 74 respondents plotted at 0,0 for lack of coordinates; returns with baked balancing-authority coords.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"US EIA Hourly Electric Grid Monitor","url":"https://api.eia.gov/v2/electricity/rto/"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"eia_930_grid.json","bytes":385,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"eia_international","name":"EIA International — Energy by Country","category":"resources","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: ~70% duplicative with owid_energy, and its crude-oil consumption series was silently dead.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"US EIA International Energy","url":"https://api.eia.gov/v2/international/"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"eia_international.json","bytes":365,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"eia_petroleum","name":"EIA Petroleum — Weekly US Stocks","category":"economy","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: FRED already carries the same weekly US petroleum series.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"US EIA Weekly Petroleum Status","url":"https://api.eia.gov/v2/petroleum/"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"eia_petroleum.json","bytes":324,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"emdat_disasters","name":"EM-DAT Disaster History (1900-present)","category":"nature","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: type-column mis-parse filled 'types' with 238 country names and nulled deaths; returns at stage 9 with named columns.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"EM-DAT (CRED) via OWID grapher mirror","url":"https://www.emdat.be/"},"license":{"name":"CC-BY-NC (non-commercial)","url":null},"representations":[{"rel":"full","url":"emdat_disasters.json","bytes":405,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"entsoe_grid","name":"ENTSO-E European Grid Monitor","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: wrong bidding-zone codes left 6 of 19 prices at zero and the licence is ToU, not CC; returns fixed.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"ENTSO-E Transparency Platform","url":"https://transparency.entsoe.eu/"},"license":{"name":"Free with attribution","url":null},"representations":[{"rel":"full","url":"entsoe_grid.json","bytes":365,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"fao_food_prices","name":"FAO Food Price Index","category":"economy","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: the month-stamped URL 404s and falls through to a frozen 2018 file at HTTP 200; returns with filename scraping.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"FAO","url":"https://www.fao.org/worldfoodsituation/foodpricesindex/en/"},"license":{"name":"Free with attribution","url":null},"representations":[{"rel":"full","url":"fao_food_prices.json","bytes":344,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"fires","name":"Active Fires (past 24h)","category":"nature","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:04:43.571983+00:00","expires_at":"2026-09-30T18:04:43.571983+00:00","refresh_s":3600,"max_staleness_s":null,"max_bytes":6000000,"last_success_at":"2026-09-30T17:04:45.455950+00:00","count":56013,"source":{"name":"NASA FIRMS (VIIRS SNPP)","url":"https://firms.modaps.eosdis.nasa.gov/api/area/"},"license":{"name":"NASA open data","url":null},"representations":[{"rel":"full","url":"fires.json","bytes":10178388,"bytes_gz":985859,"count":56013,"lossy":false},{"rel":"render","url":"fires.render.json","bytes":293205,"bytes_gz":61903,"mode":"bins","cell_deg":0.1,"shown":15021,"lossy":true,"selection":"0.1 degree density bins, area-weighted (count / cos lat); 15,021 cells of 56,013 points"}]},{"id":"flights","name":"Live Aircraft (ADS-B)","category":"transit","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:10:30.774175+00:00","expires_at":"2026-09-30T17:11:30.774175+00:00","refresh_s":60,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:10:30.774175+00:00","count":3734,"source":{"name":"adsb.lol + OpenSky Network","url":"https://api.adsb.lol/"},"license":{"name":"ODbL","url":null},"representations":[{"rel":"full","url":"flights.json","bytes":1186851,"bytes_gz":224614,"count":3734,"lossy":false},{"rel":"render","url":"flights.render.json","bytes":55864,"bytes_gz":10011,"mode":"bins","cell_deg":0.1,"shown":2881,"lossy":true,"selection":"0.1 degree density bins, area-weighted (count / cos lat); 2,881 cells of 3,734 points"}]},{"id":"fred","name":"FRED Global Macro (50 series)","category":"economy","kind":"raw","state":"ok","state_detail":null,"fetched_at":"2026-09-30T12:55:39.669341+00:00","expires_at":"2026-09-30T18:55:39.669341+00:00","refresh_s":21600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T12:55:39.731973+00:00","count":45,"source":{"name":"Federal Reserve Bank of St. Louis (FRED)","url":"https://fred.stlouisfed.org/docs/api/fred/"},"license":{"name":"Public (US Government)","url":null},"representations":[{"rel":"full","url":"fred.json","bytes":174169,"bytes_gz":33476,"count":45,"lossy":false}]},{"id":"gaming","name":"Gaming (Steam + Twitch)","category":"gaming","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: mapped a stream's language to a city — fabricated geography.","fetched_at":null,"expires_at":null,"refresh_s":600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Steam Web API + Twitch Helix (optional)","url":"https://api.steampowered.com/"},"license":{"name":"Free","url":null},"representations":[{"rel":"full","url":"gaming.json","bytes":307,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"gdacs_events","name":"GDACS Disaster Alerts","category":"war","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:09:16.548390+00:00","expires_at":"2026-09-30T17:24:16.548390+00:00","refresh_s":900,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:09:16.557517+00:00","count":39,"source":{"name":"GDACS (Global Disaster Alert and Coordination System, JRC)","url":"https://www.gdacs.org/gdacsapi/api/events/geteventlist/MAP"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"gdacs_events.json","bytes":20938,"bytes_gz":3055,"count":39,"lossy":false}]},{"id":"gdelt_gkg_themes","name":"GDELT GKG Themes (last hour)","category":"social","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: the default csv field limit crashed ~8% of fetches; returns with the limit raised and a 30-min cadence.","fetched_at":null,"expires_at":null,"refresh_s":900,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"GDELT Global Knowledge Graph 2.1","url":"http://data.gdeltproject.org/gdeltv2/"},"license":{"name":"GDELT Terms (free, citation required)","url":null},"representations":[{"rel":"full","url":"gdelt_gkg_themes.json","bytes":392,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"gemini_narrative","name":"WorldTwin Analyst — AI narrative","category":"meta","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: no generated content is served anywhere — LLM narrative is off the product per the charter.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Gemini 2.5 Pro (Claude via OpenRouter optional)","url":"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro"},"license":{"name":"Inferred from source events","url":null},"representations":[{"rel":"full","url":"gemini_narrative.json","bytes":388,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"geoboundaries_adm1","name":"Administrative Boundaries — ADM1 (geoBoundaries)","category":"meta","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: Canada alone is 26 MB raw for 13 provinces; returns at stage 9 split per country and simplified ~5%.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"geoBoundaries (William & Mary geoLab)","url":"https://www.geoboundaries.org/api/current/gbOpen/"},"license":{"name":"CC-BY 4.0 / ODbL","url":null},"representations":[{"rel":"full","url":"geoboundaries_adm1.json","bytes":392,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"gfw_events","name":"Global Fishing Watch — AIS Gap Events","category":"transit","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: nested gap fields read as 0 hours and count 30,000 was truncation, not a total; returns at stage 10, credited to GFW.","fetched_at":null,"expires_at":null,"refresh_s":10800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Global Fishing Watch v3","url":"https://gateway.api.globalfishingwatch.org/v3/"},"license":{"name":"CC BY-SA 4.0","url":null},"representations":[{"rel":"full","url":"gfw_events.json","bytes":378,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"global_events","name":"Global Events Feed","category":"meta","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: drew synthetic GKG coordinates; the PortWatch half returns at un-retire without them.","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Aggregated (GDACS + USGS + NHC + UCDP + GDELT + prices)","url":"internal"},"license":{"name":"Aggregated — see individual sources","url":null},"representations":[{"rel":"full","url":"global_events.json","bytes":382,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"historical_borders","name":"Historical Borders (123,000 BC → 2010)","category":"meta","kind":"polygons","state":"retired","state_detail":"Retired 2026-09-24: fetched a 25.65 MB gz monolith to paint one year; returns at stage 9 split into 53 per-snapshot files.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"aourednik/historical-basemaps","url":"https://github.com/aourednik/historical-basemaps"},"license":{"name":"CC-BY-SA 4.0","url":null},"representations":[{"rel":"full","url":"historical_borders.json","bytes":377,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"historical_disasters","name":"Historical Disasters (2150 BC → today)","category":"nature","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: healthy public-domain catalogue held out of the locked v1 set; core again at stage 9 once the scrubber ships.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NOAA NCEI + Smithsonian GVP","url":"https://www.ngdc.noaa.gov/hazard/"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"historical_disasters.json","bytes":388,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"humidity_field","name":"Humidity — Global Grid","category":"weather","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: 99% redundant — same 135 coords, and relative_humidity_2m already rides in temperature_field.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Open-Meteo (ECMWF/GFS blend)","url":"https://open-meteo.com/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"humidity_field.json","bytes":347,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"hyde_population","name":"Population (10,000 BC → today)","category":"economy","kind":"countries","state":"retired","state_detail":"Retired 2026-09-24: clean source outside the locked v1 set; returns at stage 9 as a choropleth mode.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"HYDE 3.3 + UN WPP via Our World in Data","url":"https://ourworldindata.org/grapher/population"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"hyde_population.json","bytes":355,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"idmc_displacement","name":"Internal Displacement (IDMC)","category":"war","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: returns at stage 10 on the HDX IDU per-country CSVs, which carry real coordinates and precision flags.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"IDMC via HDX (Google Sheets export)","url":"https://www.internal-displacement.org/"},"license":{"name":"CC BY-IGO","url":null},"representations":[{"rel":"full","url":"idmc_displacement.json","bytes":364,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"imf_data","name":"IMF DataMapper — Core Indicators","category":"economy","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: www.imf.org 403s Oracle IPs; returns at stage 9 rewritten against api.imf.org SDMX (verified 200 from this box).","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"IMF DataMapper API","url":"https://www.imf.org/external/datamapper/api/v1/"},"license":{"name":"Free with attribution","url":null},"representations":[{"rel":"full","url":"imf_data.json","bytes":367,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"iss","name":"International Space Station","category":"space","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: polled a hobby endpoint every 10 s for one dot and listed Expedition 71 crew from mid-2024 as current.","fetched_at":null,"expires_at":null,"refresh_s":10,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"WhereTheISS.at + Open Notify","url":"https://wheretheiss.at/w/developer"},"license":{"name":"Free for public use","url":null},"representations":[{"rel":"full","url":"iss.json","bytes":354,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"maddison_history","name":"Maddison GDP & Population (1 AD → 2018)","category":"economy","kind":"countries","state":"retired","state_detail":"Retired 2026-09-24: reads a repo archived 2025-04-14 pinned to MPD 2020 — it can never update; returns on the OWID grapher CSV.","fetched_at":null,"expires_at":null,"refresh_s":1209600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Bolt & van Zanden 2020 / Maddison Project (via OWID mirror)","url":"https://www.rug.nl/ggdc/historicaldevelopment/maddison/releases/maddison-project-database-2020"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"maddison_history.json","bytes":414,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nasa_donki","name":"NASA DONKI — Space Weather Events","category":"space","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: not a map layer — every event was plotted at 0,0; returns on the keyless kauai DONKI endpoints.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA DONKI","url":"https://api.nasa.gov/DONKI/"},"license":{"name":"Public Domain (NASA)","url":null},"representations":[{"rel":"full","url":"nasa_donki.json","bytes":347,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nasa_epic_earth","name":"NASA EPIC — L1 Earth Images","category":"space","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: the model plugin, out only because the v1 set is locked; its mark_error idiom is the pattern to copy at un-retire.","fetched_at":null,"expires_at":null,"refresh_s":10800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA EPIC (DSCOVR)","url":"https://epic.gsfc.nasa.gov/api/natural"},"license":{"name":"Public Domain (NASA)","url":null},"representations":[{"rel":"full","url":"nasa_epic_earth.json","bytes":368,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nasa_mars_photos","name":"Mars Rover — Latest Photos","category":"space","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: off-charter — v2 has no planet selector, so Mars photos were already unreachable.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA Mars Raw Images","url":"https://mars.nasa.gov/mars2020/multimedia/raw-images/"},"license":{"name":"Public Domain (NASA)","url":null},"representations":[{"rel":"full","url":"nasa_mars_photos.json","bytes":339,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nasa_neows","name":"NASA NeoWs — Asteroid Close Approaches","category":"space","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: re-downloaded the same 4,000 NEOs daily through a 200-page walk; returns on the JPL SBDB close-approach API.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA Near Earth Object Web Service","url":"https://api.nasa.gov/neo/rest/v1/feed"},"license":{"name":"Public Domain (NASA)","url":null},"representations":[{"rel":"full","url":"nasa_neows.json","bytes":384,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nasa_power","name":"NASA POWER — Hourly Weather Grid (1981→present)","category":"weather","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: shipped a 25 MB cache including an all-null hourly field; returns with a now-4d window and the dead field dropped.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NASA POWER (MERRA-2 reanalysis + CERES)","url":"https://power.larc.nasa.gov/"},"license":{"name":"Public Domain (US Government)","url":null},"representations":[{"rel":"full","url":"nasa_power.json","bytes":417,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"news","name":"Breaking News (GDELT)","category":"social","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: 0 of 250 articles carry coordinates yet the layer claimed kind=points; returns as kind=raw at 900 s.","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"GDELT Project","url":"https://api.gdeltproject.org/api/v2/doc/doc"},"license":{"name":"GDELT Terms (free, citation required)","url":null},"representations":[{"rel":"full","url":"news.json","bytes":351,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"nhc_cyclones","name":"Active Tropical Cyclones (NHC)","category":"nature","kind":"points","state":"retired","state_detail":"Deferred candidate 2026-09-24: v1 set is locked; first in line at un-retire with the movementDir fix and JTWC RSS.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"NOAA National Hurricane Center","url":"https://www.nhc.noaa.gov/CurrentStorms.json"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"nhc_cyclones.json","bytes":358,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"noaa_co2","name":"Atmospheric CO₂ (Keeling Curve)","category":"nature","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T16:30:43.459898+00:00","expires_at":"2026-09-30T17:30:43.459898+00:00","refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T16:30:43.485292+00:00","count":1858,"source":{"name":"NOAA Global Monitoring Laboratory","url":"https://gml.noaa.gov/ccgg/trends/"},"license":{"name":"Public domain (US Government)","url":null},"representations":[{"rel":"full","url":"noaa_co2.json","bytes":52036,"bytes_gz":17007,"count":1858,"lossy":false}]},{"id":"noaa_sst","name":"Sea Surface Temperature (ECMWF via Open-Meteo)","category":"weather","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: the id is a provenance lie — data is ECMWF via Open-Meteo, not NOAA; replacement is NOAA Coral Reef Watch 5 km (PD).","fetched_at":null,"expires_at":null,"refresh_s":43200,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"ECMWF wave/ocean models via Open-Meteo Marine API","url":"https://open-meteo.com/en/docs/marine-weather-api"},"license":{"name":"Open-Meteo free tier (non-commercial); data CC BY 4.0","url":null},"representations":[{"rel":"full","url":"noaa_sst.json","bytes":451,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"oecd_cli","name":"OECD Composite Leading Indicators","category":"economy","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: served USA 1976-1990 non-monotonic data as a recession signal with ok=true; FRED carries the CLI series.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"OECD SDMX","url":"https://sdmx.oecd.org/public/rest/"},"license":{"name":"Free with attribution","url":null},"representations":[{"rel":"full","url":"oecd_cli.json","bytes":349,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"open_meteo_forecast","name":"Open-Meteo Forecast Grid (next 72h)","category":"weather","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: non-commercial Open-Meteo tier; correctly throttled but outside the locked v1 set.","fetched_at":null,"expires_at":null,"refresh_s":21600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Open-Meteo (ECMWF + DWD + NOAA blend)","url":"https://open-meteo.com/"},"license":{"name":"CC-BY 4.0 NonCommercial","url":null},"representations":[{"rel":"full","url":"open_meteo_forecast.json","bytes":370,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"openaq_stations","name":"OpenAQ — Air Quality Stations","category":"health","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: fetched station metadata, zero readings, under a description claiming measurements; returns renamed as the network.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"OpenAQ v3","url":"https://api.openaq.org/v3/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"openaq_stations.json","bytes":355,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"owid_energy","name":"Energy Indicators by Country (OWID)","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: a 538 KB gz monolith; returns at stage 9 split into latest-year and history files.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Our World in Data Energy","url":"https://github.com/owid/energy-data"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"owid_energy.json","bytes":337,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"paleo_temperature","name":"Global Temperature Anomaly (11,300 BP → today)","category":"weather","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: 40 of 214 points are hand-typed literals, one labelled 'Approximation'; returns at stage 9 with real NCEI series.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Marcott 2013 + PAGES2k + HadCRUT5","url":"https://www.metoffice.gov.uk/hadobs/hadcrut5/"},"license":{"name":"Mixed: HadCRUT5 is UK OGL v3; Marcott/PAGES2k values are hand-entered approximations","url":null},"representations":[{"rel":"full","url":"paleo_temperature.json","bytes":469,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"pollen","name":"Pollen (Europe — CAMS)","category":"health","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T16:58:32.786058+00:00","expires_at":"2026-09-30T17:58:32.786058+00:00","refresh_s":3600,"max_staleness_s":21600,"max_bytes":2000000,"last_success_at":"2026-09-30T16:58:32.793173+00:00","count":10,"source":{"name":"Open-Meteo CAMS (European domain)","url":"https://air-quality-api.open-meteo.com/v1/air-quality"},"license":{"name":"Open-Meteo free tier (non-commercial); data CC BY 4.0","url":null},"representations":[{"rel":"full","url":"pollen.json","bytes":3511,"bytes_gz":null,"count":10,"lossy":false}]},{"id":"population","name":"Countries & Population","category":"meta","kind":"regions","state":"retired","state_detail":"Dropped 2026-09-24: restcountries v3.1 dead 70 days with no staleness surfaced; replaced by vendored mledoze + World Bank SP.POP.TOTL.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"REST Countries","url":"https://restcountries.com/v3.1/all"},"license":{"name":"Public","url":null},"representations":[{"rel":"full","url":"population.json","bytes":341,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"portwatch_chokepoints","name":"PortWatch Chokepoints (IMF/AIS)","category":"resources","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T10:03:53.522461+00:00","expires_at":"2026-10-01T10:03:53.522461+00:00","refresh_s":86400,"max_staleness_s":604800,"max_bytes":2000000,"last_success_at":"2026-09-30T10:03:53.554087+00:00","count":28,"source":{"name":"IMF PortWatch (derived from AIS)","url":"https://portwatch.imf.org/"},"license":{"name":"IMF ToU","url":null},"representations":[{"rel":"full","url":"portwatch_chokepoints.json","bytes":139910,"bytes_gz":15834,"count":28,"lossy":false}]},{"id":"portwatch_ports","name":"Live Port Traffic (PortWatch/IMF)","category":"resources","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: all 800 ports carry Web Mercator metres in lat/lon and all traffic reads zero; four one-line fixes at un-retire.","fetched_at":null,"expires_at":null,"refresh_s":43200,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"IMF PortWatch","url":"https://portwatch.imf.org/"},"license":{"name":"IMF ToU","url":null},"representations":[{"rel":"full","url":"portwatch_ports.json","bytes":359,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"pressure_field","name":"Surface Pressure — Global Grid","category":"weather","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: 100% redundant — byte-identical coords; surface_pressure and cloud_cover already ride in temperature_field.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Open-Meteo (ECMWF/GFS blend)","url":"https://open-meteo.com/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"pressure_field.json","bytes":369,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"pulse_mode","name":"Pulse Mode — directional change radar","category":"meta","kind":"raw","state":"retired","state_detail":"Tombstoned: a WorldTwin-authored composite with invented weights; any revival adopts INFORM Risk by name and version, dimensions split.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Aggregated across cached sources","url":"internal"},"license":{"name":"Aggregated","url":null},"representations":[{"rel":"full","url":"pulse_mode.json","bytes":377,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"quakes","name":"Earthquakes — live + historical M5+ archive","category":"nature","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:09:13.462007+00:00","expires_at":"2026-09-30T17:14:13.462007+00:00","refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:09:13.471191+00:00","count":32,"source":{"name":"USGS Earthquake Hazards Program","url":"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson"},"license":{"name":"Public domain (US Government)","url":null},"representations":[{"rel":"full","url":"quakes.json","bytes":8405,"bytes_gz":2216,"count":32,"lossy":false}]},{"id":"radio","name":"Radio Stations","category":"social","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: ordered by clickcount — a popularity chart, not a census.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Radio Browser (community)","url":"https://www.radio-browser.info/"},"license":{"name":"CC0","url":null},"representations":[{"rel":"full","url":"radio.json","bytes":282,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"rainviewer","name":"Weather Radar Tiles","category":"nature","kind":"tiles","state":"retired","state_detail":"Retired 2026-09-24: licence is personal/educational only, and tiles blank above zoom 6 exactly where a storm is.","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"RainViewer","url":"https://api.rainviewer.com/public/weather-maps.json"},"license":{"name":"personal/educational only","url":null},"representations":[{"rel":"full","url":"rainviewer.json","bytes":331,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"relations","name":"News Activity (GDELT)","category":"war","kind":"raw","state":"retired","state_detail":"Dropped 2026-09-24: fetched the same GDELT export zips as conflict_events — 2,300 req/day and 105 MB/day of duplication.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"GDELT Events 2.0 (QuadClass-based)","url":"http://data.gdeltproject.org/gdeltv2/"},"license":{"name":"GDELT Terms (free, citation required)","url":null},"representations":[{"rel":"full","url":"relations.json","bytes":373,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"reliefweb","name":"Humanitarian Crises (HDX-derived)","category":"war","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: API v1 is HTTP 410; the layer drew 964 catalogue rows as country dots at 756 MB/day. ReliefWeb v2 replaces it.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"HDX CKAN (ReliefWeb v2 requires approved appname)","url":"https://data.humdata.org/api/3/action/package_search"},"license":{"name":"Varies — see HDX dataset","url":null},"representations":[{"rel":"full","url":"reliefweb.json","bytes":400,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"satellites","name":"Active Satellites","category":"space","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: CelesTrak firewalled this IP after we pulled the full Starlink group to discard 97%; delisting comes first.","fetched_at":null,"expires_at":null,"refresh_s":7200,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"CelesTrak","url":"https://celestrak.org/NORAD/elements/gp.php"},"license":{"name":"CelesTrak Terms (non-commercial use)","url":null},"representations":[{"rel":"full","url":"satellites.json","bytes":351,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"ships","name":"Live Vessels (AIS)","category":"transit","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: world-bbox websocket pulled 4.7 GB/day; returns at un-retire with chokepoint boxes.","fetched_at":null,"expires_at":null,"refresh_s":30,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"AISStream.io","url":"https://aisstream.io/documentation"},"license":{"name":"Free non-commercial","url":null},"representations":[{"rel":"full","url":"ships.json","bytes":314,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"spacetrack_gp","name":"Space-Track — Full Satellite Catalogue","category":"space","kind":"raw","state":"retired","state_detail":"Removed 2026-09-24: Space-Track account suspended and redistribution breaches the user agreement; the cache hard-404s.","fetched_at":null,"expires_at":null,"refresh_s":600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":null,"source":{"name":"Space-Track.org (US Space Force)","url":"https://www.space-track.org/"},"license":{"name":"Space-Track Terms (free non-commercial)","url":null},"representations":[]},{"id":"sports","name":"Live Sports","category":"sports","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: no licence — ESPN's unofficial API rides on upstream rights contracts we cannot carry.","fetched_at":null,"expires_at":null,"refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"ESPN (unofficial public endpoints)","url":"https://site.api.espn.com/apis/site/v2/sports/"},"license":{"name":"Public (unofficial)","url":null},"representations":[{"rel":"full","url":"sports.json","bytes":334,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"swpc_aurora","name":"Aurora Oval + Space Weather (NOAA SWPC)","category":"space","kind":"raw","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:06:33.174706+00:00","expires_at":"2026-09-30T17:11:33.174706+00:00","refresh_s":300,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:06:33.292869+00:00","count":16693,"source":{"name":"NOAA Space Weather Prediction Center","url":"https://services.swpc.noaa.gov/json/ovation_aurora_latest.json"},"license":{"name":"Public Domain (US Gov)","url":null},"representations":[{"rel":"full","url":"swpc_aurora.json","bytes":194966,"bytes_gz":42474,"count":16693,"lossy":false}]},{"id":"temperature_field","name":"Surface Temperature — Global Grid","category":"weather","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: Open-Meteo free tier is non-commercial; on un-retire absorbs wind and dew point at 3600 s.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Open-Meteo (ECMWF/GFS blend)","url":"https://open-meteo.com/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"temperature_field.json","bytes":356,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"trade_annual","name":"Global Trade Flows — Annual (Comtrade)","category":"resources","kind":"flows","state":"retired","state_detail":"Retired 2026-09-24: ran keyless with COMTRADE_KEY present and unused, capped at 50 records; returns annual with the key.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"UN Comtrade (annual, HS 4-digit)","url":"https://comtradeapi.un.org/public/v1/preview/C/A/HS"},"license":{"name":"UN Open Data Licence","url":null},"representations":[{"rel":"full","url":"trade_annual.json","bytes":382,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"trade_monthly","name":"Monthly Trade Flows (Comtrade)","category":"resources","kind":"flows","state":"retired","state_detail":"Dropped 2026-09-24: 864 requests/day for 174 flows that lag 4-7 months upstream.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"UN Comtrade (monthly, HS 4-digit)","url":"https://comtradeapi.un.org/public/v1/preview/C/M/HS"},"license":{"name":"UN Open Data Licence","url":null},"representations":[{"rel":"full","url":"trade_monthly.json","bytes":334,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"trends","name":"Wikipedia Trends","category":"social","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: polled an immutable previous-day file 24 times a day; returns labelled 'English Wikipedia' at 6 h.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Wikimedia Pageviews API","url":"https://wikimedia.org/api/rest_v1/metrics/pageviews/top/"},"license":{"name":"CC BY-SA","url":null},"representations":[{"rel":"full","url":"trends.json","bytes":324,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"ucdp","name":"UCDP Conflict Events","category":"war","kind":"points","state":"retired","state_detail":"Deferred candidate 2026-09-24: v1 set is locked; returns on GED Candidate 26.01.26.06 with the 180-day StartDate bug removed.","fetched_at":null,"expires_at":null,"refresh_s":86400,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Uppsala Conflict Data Program","url":"https://ucdp.uu.se/apidocs/"},"license":{"name":"UCDP open data (attribution required)","url":null},"representations":[{"rel":"full","url":"ucdp.json","bytes":368,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"ucdp_ged","name":"UCDP Georeferenced Events","category":"war","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: rendered 3,000 events from Nov-Dec 2024 under a present-tense name; returns at stage 9 on ged261.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Uppsala Conflict Data Program (UCDP)","url":"https://ucdp.uu.se/downloads/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"ucdp_ged.json","bytes":348,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"usgs_volcano_hans","name":"USGS Elevated Volcanoes (HANS)","category":"nature","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T17:00:22.904518+00:00","expires_at":"2026-09-30T18:00:22.904518+00:00","refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-30T17:00:22.911477+00:00","count":4,"source":{"name":"USGS Volcano Hazards Program HANS","url":"https://volcanoes.usgs.gov/hans2/"},"license":{"name":"US Public Domain","url":null},"representations":[{"rel":"full","url":"usgs_volcano_hans.json","bytes":1317,"bytes_gz":null,"count":4,"lossy":false}]},{"id":"vdem_democracy","name":"Electoral Democracy Index (V-Dem 1789→2025)","category":"meta","kind":"countries","state":"retired","state_detail":"Retired 2026-09-24: metadata asserts 'V-Dem v14' while OWID serves whatever is current; returns reading the version from the data.","fetched_at":null,"expires_at":null,"refresh_s":2592000,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"V-Dem v14 (via OWID)","url":"https://www.v-dem.net/"},"license":{"name":"CC-BY 4.0","url":null},"representations":[{"rel":"full","url":"vdem_democracy.json","bytes":375,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"volcanoes","name":"World Volcanoes","category":"nature","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-22T12:30:42.950430+00:00","expires_at":"2026-09-23T12:30:42.950430+00:00","refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":"2026-09-22T12:30:42.950430+00:00","count":1214,"source":{"name":"Smithsonian GVP","url":"https://webservices.volcano.si.edu/geoserver/GVP-VOTW/wfs"},"license":{"name":"Smithsonian (public)","url":null},"representations":[{"rel":"full","url":"volcanoes.json","bytes":291339,"bytes_gz":33969,"count":1214,"lossy":false}]},{"id":"webcams","name":"Live Webcams","category":"infra","kind":"points","state":"retired","state_detail":"Removed 2026-09-24: Windy API terms breach — unpublished; the cache hard-404s.","fetched_at":null,"expires_at":null,"refresh_s":1800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":null,"source":{"name":"Windy Webcams","url":"https://api.windy.com/webcams/api/v3/webcams"},"license":{"name":"Windy API Terms","url":null},"representations":[]},{"id":"who_don","name":"WHO Disease Outbreak News","category":"health","kind":"points","state":"ok","state_detail":null,"fetched_at":"2026-09-30T16:06:11.299358+00:00","expires_at":"2026-09-30T22:06:11.299358+00:00","refresh_s":21600,"max_staleness_s":2592000,"max_bytes":2000000,"last_success_at":"2026-09-30T16:06:11.307485+00:00","count":33,"source":{"name":"World Health Organization — Disease Outbreak News","url":"https://www.who.int/feeds/entity/csr/don/en/rss.xml"},"license":{"name":"CC BY-NC-SA 3.0 IGO","url":null},"representations":[{"rel":"full","url":"who_don.json","bytes":7050,"bytes_gz":1417,"count":33,"lossy":false}]},{"id":"wikidata_battles","name":"Notable Battles (Wikidata)","category":"war","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: a too-narrow date filter returned 29 events; returns reframed as notable named battles with articles.","fetched_at":null,"expires_at":null,"refresh_s":21600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Wikidata SPARQL (P31=Q178561)","url":"https://query.wikidata.org/sparql"},"license":{"name":"CC0 / CC-BY-SA","url":null},"representations":[{"rel":"full","url":"wikidata_battles.json","bytes":359,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"wind_sample","name":"Wind Field (Open-Meteo)","category":"nature","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: wind variables fold into temperature_field's Open-Meteo batch at zero quota cost.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"Open-Meteo (ECMWF / GFS blend)","url":"https://open-meteo.com/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"wind_sample.json","bytes":330,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"world_bank","name":"World Bank Indicators (102 per country, 1960-2024 history)","category":"resources","kind":"raw","state":"retired","state_detail":"Retired 2026-09-24: returns at stage 9 with the discontinued Doing Business indicator deleted and the payload split per-indicator.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"World Bank API v2","url":"https://api.worldbank.org/v2/"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"world_bank.json","bytes":380,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"wri_power_plants","name":"Global Power Plants (WRI)","category":"resources","kind":"points","state":"retired","state_detail":"Retired 2026-09-24: upstream frozen since 2021 yet polled weekly at 12 MB; returns labelled as the 2020 vintage with stratified fuels.","fetched_at":null,"expires_at":null,"refresh_s":604800,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"World Resources Institute Global Power Plant Database","url":"https://github.com/wri/global-power-plant-database"},"license":{"name":"CC BY 4.0","url":null},"representations":[{"rel":"full","url":"wri_power_plants.json","bytes":396,"bytes_gz":null,"count":0,"lossy":false}]},{"id":"youtube","name":"YouTube Trending","category":"social","kind":"points","state":"retired","state_detail":"Dropped 2026-09-24: fabricated coordinates, and YouTube ToS caps stored API data at 30 days — a term we were not honouring.","fetched_at":null,"expires_at":null,"refresh_s":3600,"max_staleness_s":null,"max_bytes":2000000,"last_success_at":null,"count":0,"source":{"name":"YouTube Data API v3","url":"https://developers.google.com/youtube/v3/docs/videos/list"},"license":{"name":"YouTube API ToS","url":null},"representations":[{"rel":"full","url":"youtube.json","bytes":338,"bytes_gz":null,"count":0,"lossy":false}]}]}