USMIN Mine Feature Proximity Screener avatar

USMIN Mine Feature Proximity Screener

Pricing

from $4.40 / 1,000 mine feature rows

Go to Apify Store
USMIN Mine Feature Proximity Screener

USMIN Mine Feature Proximity Screener

Screens any US coordinate against USGS USMIN topographic mine symbols - adits, shafts, prospects, tailings, quarries - for Phase I ESA, geotechnical and land due diligence.

Pricing

from $4.40 / 1,000 mine feature rows

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Screens any US coordinate against the USGS USMIN Topographic Mine Symbols dataset - adits, shafts, prospects, tailings, quarries and other historical workings that USGS field geologists digitized off topographic maps dating back to the early 1900s. Built for Phase I Environmental Site Assessment (ASTM E1527-21), geotechnical due diligence (subsidence and mine-opening hazard), and acid-rock-drainage / abandoned-mine-drainage screening ahead of land acquisition.

Who this is for

  • Environmental consultants running a Phase I ESA who need to disclose historical mine workings within the ASTM search distance, not just active MSHA-permitted operations.
  • Geotechnical engineers screening a parcel for subsidence risk from undocumented shafts, adits or open pits before siting a foundation.
  • Land and mineral-rights buyers who want physical evidence of past mining (not just claims records) near a tract before closing.
  • Insurers and lenders underwriting property in historic mining districts (Colorado, Nevada, Arizona, Montana, Utah, Appalachia) who need a defensible mine-hazard screen.

What this is NOT

  • Not blm-mining-claims. That actor covers BLM MLRS mineral claims - legal/administrative records of who holds rights to extract. This actor covers physical workings that were mapped on the ground - a shaft can exist with no active claim, and a claim can exist with no surface disturbance yet. They answer different questions.
  • Not an MSHA operations database. Every MSHA-shaped Store competitor answers "which mines are permitted/active here." USMIN is historical and physical: features digitized from topographic maps, many predating MSHA (1977) or any modern permitting record entirely.

How it works

For each asset (lat/lon), the actor queries all four populated USMIN layers - 24k_Points, 625k_Points, 24k_Polygons, 625k_Polygons - within the requested radius, dedupes, and returns:

  1. One asset_summary row per site - counts, hazard-class breakdown, nearest point-feature distance, polygon-containment flag, and a screening verdict.
  2. One mine_feature row per matched feature (optional, on by default) - full USMIN attributes plus a computed distance and hazard classification.

The false-clear trap this actor is built to avoid

The USMIN service exposes nine layers, not four. Three (24k_Polygons_outlines, 48k_Polygons_outlines, 625k_Polygons_outlines) are the same polygons re-served as lines - pure duplicates. Two more (48k_Points, 48k_Polygons) are a near-abandoned scale series: 3,165 and 212 features nationally, versus 466,747 / 101,205 / 142,658 / 11,703 on the four layers this actor actually uses (measured live 2026-08-11). An actor that queries "the polygons layer" by index, or resolves layers by numeric id instead of name, can silently land on one of these near-empty layers and report a confident "no mine features nearby" for the entire country. This actor resolves all four target layers by name against live service metadata on every run, and a live drift gate asserts each layer's national feature count stays well above the near-empty-layer magnitude before any row is ever billed. If USGS ever restructures the service, the run fails loudly instead of quietly downgrading to a false clear.

Distance is disclosed, never guessed

  • Point-layer hits (adits, shafts) get an exact haversine distance from the asset to the feature's own coordinate.
  • Polygon-layer hits (open pits, tailings ponds) get distance_miles: 0 only when a real point-in-polygon test on the live geometry confirms the asset sits inside the footprint. A polygon that does not contain the asset (but is still within the search radius via the buffered intersects query) reports distance_miles: null with distance_basis: "not_computed_polygon_layer" - this actor will never publish a centroid-to-point or nearest-vertex-guess distance dressed up as a real number. (A sibling actor in this portfolio shipped exactly that bug - a "largest-acreage proxy" nearest distance that was 3x wrong.)

Topo_Date is a map vintage, not a mine date

USMIN's Topo_Date records the year the source topographic quadrangle was published, not when the mine feature was active, opened, or closed. A Leadville CO adit carrying Topo_Date: "1969" was mapped in 1969 - it could have been dug decades earlier. This actor emits it as source_map_year and documents it as provenance, never as a mine-activity date.

Cross-sell: trace a hit back to its source map

Every feature row carries scan_id, source_map_name, source_map_year and source_map_scale - the exact identifiers needed to pull up the scanned topographic sheet a feature was digitized from in usgs-historical-topo-records-review. This is the only place in the portfolio where a spatial hit traces back to its literal source document.

Input

{
"assets": [
{ "lat": 39.2508, "lon": -106.2925, "label": "Leadville CO - historic silver-lead district" },
{ "lat": 40.5225, "lon": -112.1489, "label": "Bingham Canyon UT - Kennecott open-pit copper mine" },
{ "lat": 37.6872, "lon": -97.3301, "label": "Wichita KS - clear control" }
],
"radiusMiles": 2,
"includeFeatureDetail": true,
"maxFeaturesPerAsset": 0
}
FieldRequiredDescription
assetsYesArray of {lat, lon, label}. Missing or empty fails the run loudly (never a silent empty success).
radiusMilesNoSearch radius in statute miles, 0.05-25. If omitted, the actor applies a documented 2-mile default in code (never a schema default - see the gotcha below) and logs that it did so.
includeFeatureDetailNo, default trueEmit one mine_feature row per matched feature in addition to the summary row.
maxFeaturesPerAssetNo, default 0 (unlimited)Caps detail rows per asset, ordered nearest-first. The summary row's counts are always the true, untruncated totals; feature_detail_rows_truncated discloses whether a cap actually cut anything.

Why radiusMiles has a prefill, not a schema default: an Apify input-schema default on a field that becomes a query predicate is injected server-side into every run, including programmatic/MCP calls that never saw the Console form - this has silently changed the meaning of several actors' filters elsewhere in this portfolio. radiusMiles instead ships only a Console prefill; a caller who truly omits it gets a documented, logged, code-level fallback.

Output

One dataset with two record types, distinguished by record_type.

asset_summary rows (one per screened site)

This table was generated from .actor/actor.json, which is itself generated from the actor's real pure functions run against real captured fixtures - every field below is a field the code can genuinely emit.

FieldTypeDescription
record_typestring/nullasset_summary for the one row per screened site, or mine_feature for a per-feature detail row (emitted when includeFeatureDetail is on).
asset_labelstring/nullThe label supplied for this asset, or a synthesized default from its coordinates.
asset_latnumber/nullLatitude of the screened asset.
asset_lonnumber/nullLongitude of the screened asset.
search_radius_milesnumber/nullThe search radius applied for this asset, in statute miles.
checked_atstring/nullISO 8601 timestamp when this asset was screened.
dataset_sourcestring/nullName of the upstream dataset (USGS USMIN Topographic Mine Symbols).
layer_points_24k_statusstring/nullok or unavailable outcome for the 24k_Points USMIN layer on this asset.
layer_points_625k_statusstring/nullok or unavailable outcome for the 625k_Points USMIN layer on this asset.
layer_polygons_24k_statusstring/nullok or unavailable outcome for the 24k_Polygons USMIN layer on this asset.
layer_polygons_625k_statusstring/nullok or unavailable outcome for the 625k_Polygons USMIN layer on this asset.
mine_features_statusstring/nullok (all 4 layers answered), partial (some failed) or unavailable (all failed) for this asset.
mine_features_matched_totalnumber/nullTotal USMIN features matched within radius across all 4 layers, per the service's own returnCountOnly answer. Null when the source was totally unavailable, never a substitute 0.
mine_features_retrieved_totalnumber/nullTotal USMIN features actually retrieved. Equals matched_total for every layer that answered - a mismatch is refused before it ever reaches this row.
mine_features_query_completeboolean/nullTrue when retrieved equals matched for every layer that answered.
mine_features_presentboolean/nullTrue if any layer found a feature (safe under partial coverage, since more coverage can only add matches). False only when ALL 4 layers answered and found nothing. Null when coverage was partial and nothing was found - an unverified negative.
hazard_class_opening_countnumber/nullCount of matched features classed as a subsurface opening such as an adit, shaft or prospect pit - subsidence/fall hazard.
hazard_class_waste_or_tailings_countnumber/nullCount of matched features classed as waste or tailings - AMD/geotechnical hazard.
hazard_class_surface_disturbance_countnumber/nullCount of matched features classed as a surface-disturbance extraction pit or quarry.
hazard_class_support_infrastructure_countnumber/nullCount of matched features classed as non-hazard support infrastructure (mill site, tipple).
hazard_class_unclassified_countnumber/nullCount of matched features whose Ftr_Type is not yet in this actor's hazard-class map. Should be 0 on a healthy run - a live drift gate fails the run if the upstream vocabulary grows.
nearest_feature_distance_milesnumber/nullDistance in statute miles to the nearest POINT-layer feature (adit, shaft, etc). Null if no point-layer feature matched - a polygon distance is never substituted here.
nearest_feature_typestring/nullRaw USMIN Ftr_Type of the nearest point-layer feature.
nearest_feature_hazard_classstring/nullHazard class of the nearest point-layer feature.
nearest_feature_layerstring/nullWhich USMIN layer the nearest point-layer feature came from.
asset_inside_mapped_mine_featureboolean/nullTrue if the asset coordinate falls inside a mapped mine polygon footprint, verified by a real point-in-polygon test on the live geometry, never a proxy.
feature_detail_rows_includedboolean/nullWhether per-feature detail rows were requested for this run (includeFeatureDetail input).
feature_detail_rows_returnednumber/nullHow many mine_feature detail rows were actually emitted for this asset.
feature_detail_rows_truncatedboolean/nullTrue if maxFeaturesPerAsset cut the detail rows below the true matched total. The summary counts above always report the untruncated truth.
verdictstring/nullScreening verdict: source_unavailable, partial_source_unavailable, inside_mapped_feature, clear, opening_hazard_nearby, waste_hazard_nearby, or surface_feature_nearby.
verdict_reasonsstring/nullHuman-readable reasons supporting the verdict.
errorstring/nullError message when mine_features_status is unavailable. Null on every healthy or partial row.

mine_feature rows (one per matched feature, when includeFeatureDetail is on)

FieldTypeDescription
layer_keystring/nullInternal key of the USMIN layer this feature came from: points_24k, points_625k, polygons_24k, or polygons_625k.
layer_namestring/nullUSMIN service layer name this feature came from.
layer_idnumber/nullUSMIN service layer id this feature came from, resolved by name at runtime and never hard-coded.
geometry_typestring/nullpoint or polygon - the native geometry of the source layer.
object_idnumber/nullUSMIN OBJECTID of this feature within its layer. Unique per layer, not globally.
statestring/nullUS state abbreviation, as published by USMIN.
countystring/nullCounty name, as published by USMIN.
feature_typestring/nullRaw USMIN Ftr_Type value, for example Adit, Mine Shaft, Tailings - Pond, Quarry.
hazard_classstring/nullThis actor's editorial hazard grouping of feature_type: opening, waste_or_tailings, surface_disturbance, support_infrastructure, or unclassified.
feature_namestring/nullUSMIN Ftr_Name, when the source map named the feature. Null on most features - this does not mean the feature is not real.
feature_azimuth_degnumber/nullCompass azimuth in degrees for a linear point feature such as an adit. Point layers only.
source_map_namestring/nullName of the source USGS topographic quadrangle this feature was digitized from.
source_map_yearnumber/nullPublication year of the source topographic map (Topo_Date). This is the map's vintage, NOT the year the mine feature was active or closed.
source_map_scalestring/nullScale of the source topographic map, for example 24000 or 625000.
compiled_bystring/nullAgency that compiled this USMIN record, typically USGS.
remarksstring/nullFree-text remarks published by USMIN for this feature, when present.
gda_idstring/nullUSMIN Geologic Data Archive identifier for the source map.
scan_idstring/nullUSMIN ScanID. Cross-references the scanned source topo sheet in usgs-historical-topo-records-review.
latnumber/nullLatitude of the feature. Point layers only; null for polygon-layer features.
lonnumber/nullLongitude of the feature. Point layers only; null for polygon-layer features.
distance_milesnumber/nullDistance in statute miles from the asset to this feature. Exact for point layers; 0 for a polygon that geometrically contains the asset; null otherwise. Never a centroid or nearest-vertex guess - see distance_basis.
distance_basisstring/nullHow distance_miles was computed: point_feature_exact, asset_inside_polygon, or not_computed_polygon_layer. Disclosed rather than guessed.
asset_inside_featureboolean/nullTrue or false for polygon-layer features, a real computed point-in-polygon result. Null for point-layer features, where the concept does not apply.
feature_area_sq_mnumber/nullPolygon area in square meters. Polygon layers only.
feature_perimeter_mnumber/nullPolygon perimeter in meters. Polygon layers only.

asset_label, asset_lat, asset_lon and search_radius_miles also appear on every mine_feature row so detail rows are self-contained.

Screening verdicts

VerdictMeaning
source_unavailableAll four USMIN layers failed for this asset. No answer was verified.
partial_source_unavailableOne or more layers failed. Never presented as a clean clear, even if the layers that did answer found nothing.
inside_mapped_featureThe asset coordinate falls inside a mapped mine polygon footprint.
clearAll four layers answered; no feature matched within the radius.
opening_hazard_nearbyA subsurface opening (adit, shaft, pit) was matched - the highest-severity finding.
waste_hazard_nearbyA waste/tailings feature was matched, no opening.
surface_feature_nearbyOnly surface-disturbance or support-infrastructure features were matched.

This is a screening tool, not a determination. verdict and hazard_class are an editorial grouping of USMIN's raw Ftr_Type values to make results scannable; every row carries the raw feature_type so a reviewer can re-derive their own classification.

Pricing

$8 per 1,000 Result events (one dataset row = one Result event), with the portfolio's standard graduated volume discounts (Bronze/Silver/Gold/Platinum/Diamond). A failed run bills nothing.

Use as an MCP tool

This actor is discoverable to AI agents (Claude, Cursor, etc.) via mcp.apify.com under Pay-Per-Event pricing. A typical agent prompt:

"Check whether 123 Mountain View Dr, Leadville, CO has any historical mine workings within a half mile, and tell me if any of them are subsurface openings."

Client config (Claude Desktop / Claude Code / Cursor):

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "malonestar/usmin-mine-feature-proximity-screener"]
}
}
}

FAQ

Does this replace an MSHA mine-operations lookup? No. USMIN and MSHA are different record classes - MSHA covers permitted operations, USMIN covers physical workings mapped from topographic surveys, many with no corresponding modern permit.

Why does nearest_feature_distance_miles come back null when mine_features_matched_total is greater than zero? All the matches within radius were polygon-layer features that do not contain the asset coordinate. Their existence is confirmed by the search (they intersect the buffered search circle), but this actor will not publish a guessed distance to a polygon boundary - see mine_feature.distance_basis.

Why is feature_name null on almost every row? USMIN only records a name when the source topographic map labeled the feature. An unnamed feature is not a less-real feature.

Can I trust a clear verdict? Only when mine_features_status is ok. A partial_source_unavailable verdict means part of the search never completed - treat it as "recheck," not "confirmed clear."