Alaska DEC — Spill Prevention & Response (SPAR) contaminated-sites database. Active spills, cleanup-complete sites, LUST (leaking underground storage tank), institutional-controls overlay. - searchContaminatedSites ⭐ ~8.8K sites. Filter borough/siteName/status/lustOnly/city/staff/ancsaOnly - getSiteById, getServiceInfo §0 decision: SPAR_Internal/Contaminated_Sites_Plus requires auth (HTTP 200 + error 499 "Token Required") — DROPPED. Public layer is the floor. upstream quirks: AK borough names sometimes truncated upstream ("Skagway Yakutat Ango", "Prince Wales Ketchik"). Status only 4 values (Cleanup Complete 4596, Active 2469, Cleanup Complete-IC 1275, Informational 462). LUST_Site is Yes/No string — 2,631 of 8,802 are LUST sites. Native CRS 3338.
3 methodsFreshness not declaredKansas Department of Health and Environment spills + USTs + identified-sites cleanup list + environmental-interest finder via maps.kdhe.ks.gov/kdhe_doe. - searchSpills ⭐ 32K reported spill events (status, county, medium, cause, dates) - searchTanks ⭐ 17K AST+UST facilities (FAC_STATUS, district, county) - searchIdentifiedSites ⭐ 3.7K cleanup sites across 13 BER programs (Brownfields, Superfund, VCRA, ...) - searchEnvironmentalInterestSites 40K KEIMS programs (USTs, LUST, ISL, drycleaner, ...) §0: Legacy host maps.kdhe.state.ks.us is dead (TLS cert mismatch). BER/Spills_DASC FeatureServer publishes 0 layers — handler uses Spills_viewer_public/0. KEIF L1 has no county column, only city.
5 methodsFreshness not declaredNorth Dakota DEQ environmental data. ND DEQ AGOL + FracTracker mirror; no auth. - searchSpills (~5.4K) ⭐ Bakken-era oil + brine spills (FracTracker mirror, 2014) - searchStormwaterPermits (~2.9K) ⭐ Bakken well-pad construction permits by operator - searchGroundwaterMonitoring (~278), searchImpairedStreams (~34.8K Cat 5 = 303d), getServiceInfo upstream quirks: ND DEQ does NOT publish spills/USTs/air permits/abandoned pits as Feature Services — methods reframed against actual surface + FracTracker spills. Stormwater has NO COUNTY column — filter silently dropped, use bbox/near. Brine + crude oil spill upstream is the same dataset (deduped by Incident_ID when spillType:'all').
5 methodsFreshness not declaredOhio EPA. Spills + brownfields + NPDES + district lookup. - searchSpillsAndReleases (~16K, since May 2017) ⭐ filter county/product/district/year - searchBrownfields (~217 DERR TBA grants) ⭐ no county column — bbox/near only - searchNPDESPermits (~3.1K active individual permits) - getEPADistrict (point-in-polygon for OEPA's 5 districts) - getServiceInfo upstream quirks: Spills county + reportedproduct heavily space-padded; oepadist has 'NULL'/'CDO ' variants. NPDES permit_status only ever ACTIVE. All 3 native MapServers use lowercase `objectid` as OID. Brownfields layer has NO county column.
5 methodsFreshness not declared
