Ohio ODNR DGS. Water wells + USDW (UIC injection-zone protection) + karst + ODNR seismic. - searchWaterWells (~651K) ⭐ filter county/aquiferType/wellUse/driller/yearFrom/yearTo/flowingOnly - searchUSDWFeatures ⭐ ~189 USDW Areas (default) or 5 boundary lines (featureType='boundaries') - searchEarthquakes (instrumental ~1.2K, historical ~1K, both) - searchKarstFeatures (~46.7K), getServiceInfo Spec drift: searchMineralLocations DROPPED — Mineral_Industry_Locations_AGOL returns HTTP 500 on every query (probed both MapServer/0 and FeatureServer/0). upstream quirks: COUNTY_DESC UPPERCASE; WELL_USE_DESC top values DOMESTIC=490K/MONITOR=42K; Karst POINT_TYPE has trailing whitespace upstream.
5 methodsFreshness not declaredOhio ODNR DOGRM. Marcellus + Utica operator side — Eclipse, Encino, Ascent, EAP heavy. - searchWells (~242K) ⭐ filter county/operator/status/wellType (V/H/D/O)/uticaOnly/marcellusOnly/orphanOnly - searchHorizontalWells ⭐ Utica/Marcellus laterals; asLines=true returns ~4.3K polylines - getWellByApi, searchWellPads, searchDrillingUnits, searchOilGasFields (~3K), getServiceInfo upstream quirks: WL_CNTY UPPERCASE on wells; County Title Case on pads. SLANT V/H/D/O. WL_STATUS_DESC is descriptive text. Utica_Shale/Marcellus_Shale 0/1. maxRecordCount=1000.
7 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
