MSHA Mine, Quarry & Aggregates Operator Leads avatar

MSHA Mine, Quarry & Aggregates Operator Leads

Pricing

from $2.75 / 1,000 mine / operator leads

Go to Apify Store
MSHA Mine, Quarry & Aggregates Operator Leads

MSHA Mine, Quarry & Aggregates Operator Leads

Scrape US mine, quarry & aggregates operators from official MSHA data: operator & parent controller, commodity, employees, full address, geo, production & violation/penalty intel. Filter by state, commodity, status & size. B2B leads + monitoring, no browser.

Pricing

from $2.75 / 1,000 mine / operator leads

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Turn the official MSHA (Mine Safety and Health Administration) Open Government Data into a clean, ready-to-use B2B lead list of every mine, quarry, sand & gravel pit, and processing plant in the United States — with the operator and its parent controlling company, the commodity they produce, employee count, full mailing address + geo, latest-year production & employment, and optional violation / penalty compliance intel.

Every operating mine is a capital-intensive business that buys heavy equipment, crushing & conveying gear, safety/PPE, explosives & blasting services, dust & water control, environmental & permitting consulting, MRO parts, insurance, and software. This actor hands you the whole market, segmented and lead-scored.

No login, no API key, no browser — fast, direct download of the official government files.

Why this MSHA scraper?

Other "mine safety" scrapers stop at citation records. This actor ships the richest operator lead in the category by joining MSHA's mine master, address-of-record, annual production, and violation datasets into one record:

DataTypical scrapersThis actor
Operator legal name
Parent controlling company (corporate owner)
Commodity + SIC (coal / sand & gravel / stone / metal / nonmetal)partial
Mine type & operational status (Active / New / Idled…)partial
Employee count (deal-size signal)
Full mailing address + ZIP + contact title
Latitude / longitudepartial
Latest-year production & employment✅ opt-in
Violations, S&S counts, total penalties, last citationsafety only✅ opt-in
Lead score (0–100) + lead signals
New-operation & status-change monitoring

Use cases

  • Lead generation — sell to mines, quarries and aggregate producers: heavy equipment & dealers, crushing/screening/conveying, safety & PPE, blasting & drilling, dust suppression, environmental & permitting consulting, MRO, insurance, ERP/fleet software. Score by status, employees, commodityGroup and contact them at the address on file.
  • Construction-materials sourcing — find every sand & gravel and crushed stone producer in a state or county for ready-mix, asphalt, and aggregate supply.
  • Corporate mapping — use controllerNameQuery to pull every site a parent company controls nationwide.
  • Compliance & safety intelligence — turn on violations to rank operators by citation volume, significant-and-substantial (S&S) counts and total proposed penalties — high-intent prospects for safety, training, PPE and insurance.
  • New-operation alerts — monitor for New Mine registrations: brand-new operations that are buying everything right now.
  • Market & territory analysis — count and map operators by commodity, size, and geography.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the MSHA Mine, Quarry & Aggregates Operator Leads actor, choose your states, commodity groups, status and size filters, and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"states": ["WV", "PA"],
"commodityGroups": ["coal", "stone"],
"mineStatuses": ["Active"],
"minEmployees": 20,
"includeProduction": true,
"includeViolations": false,
"maxResults": 1000,
"sortBy": "leadScore"
}
  • states — two-letter USPS codes; empty = all states & territories.
  • commodityGroupscoal, sandGravel, stone, nonmetal, metal. Sand & gravel + stone are the construction-aggregates producers.
  • coalOrMetal — quick coal / metalNonmetal toggle.
  • counties — filter by county name.
  • mineStatuses (default ["Active"])Active, New Mine, Intermittent, NonProducing, Temporarily Idled, Abandoned, Abandoned and Sealed.
  • mineTypesSurface, Underground, Facility (mill / plant).
  • newMinesOnly — only brand-new (New Mine) operations — the highest-intent leads.
  • companyTypesCorporation, Limited Liability Corporation, Partnership, Sole Proprietor, Other.
  • minEmployees / maxEmployees — size filter (deal-size proxy).
  • operatorNameQuery / controllerNameQuery — match the operator/mine name or the parent controlling company.
  • includeProduction (default true) — add latest-year average employment, coal tonnage and hours worked.
  • includeViolations (default false) — add citation counts, S&S counts, total penalties, amounts due and the last violation date. Records are charged at the compliance rate when this is on.
  • violationsLookbackYears (default 5) — window for the "recent violations" tally.
  • maxResults / sortByleadScore, employeesHigh, recentStatus, productionHigh, penaltiesHigh.
  • monitorMode / monitorKey — emit only new / changed operations since the last run.

Output

One record per mine / operation (recordType: "mine"):

{
"recordType": "mine",
"mineId": "0100003",
"mineName": "O'Neal Quarry & Mill",
"businessName": "Lhoist North America of Alabama, LLC",
"mshaUrl": "https://www.msha.gov/mine-data-retrieval-system?MineId=0100003",
"operatorName": "Lhoist North America of Alabama, LLC",
"operatorId": "L13586",
"controllerName": "Lhoist Group",
"controllerId": "0041044",
"hasParentCompany": true,
"controllerSince": "1989-07-01",
"companyType": "Other",
"coalOrMetal": "Metal/Nonmetal",
"mineType": "Surface",
"commodity": "Lime",
"commoditySicCode": "1422",
"commodityGroup": "Stone",
"secondaryCommodity": "Crushed, Broken Limestone NEC",
"isPortable": false,
"status": "Active",
"statusDate": "1979-01-22",
"isActive": true,
"isNewMine": false,
"employees": 108,
"contactTitle": "Operations Manager",
"street": "2885 Hwy 31 South",
"city": "Calera",
"county": "Shelby",
"state": "AL",
"zip": "35040",
"latitude": 33.17,
"longitude": -86.758889,
"congressionalDistrict": "AL-06",
"fieldOffice": "Birmingham AL Field Office (A)",
"latestProductionYear": 2024,
"avgEmployeesReported": 112,
"leadScore": 88,
"leadSignals": ["activeOperation", "largeEmployer", "corporateParent", "recentlyProducing"],
"scrapedAt": "2026-06-20T12:00:00.000Z"
}

With includeViolations on, each record also carries violationCount, recentViolationCount, significantSubstantialCount, totalProposedPenaltyUsd, totalAmountDueUsd, lastViolationDate.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it weekly/monthly to capture newly-registered operations; pair with monitoring mode for a clean new-leads feed.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/msha-mine-operations-scraper').call({
states: ['TX'],
commodityGroups: ['sandGravel', 'stone'],
mineStatuses: ['Active'],
minEmployees: 10,
maxResults: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} mine / operator leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new operator leads straight into your CRM.
  • Slack — get notified when a monitored search finds new operations.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "list active stone quarries in Texas with 20+ employees" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete US B2B / government-data lead stack:

Tips

  • Construction aggregates: filter commodityGroups to sandGravel + stone and mineStatuses to Active to get every operating aggregate producer in a state.
  • Biggest operators first: sort by employeesHigh, or set minEmployees to focus on larger sites.
  • Cost control: leave includeViolations off unless you need compliance intel — the base lead already carries operator, parent, commodity, size, address and production.
  • Fresh leads: combine Schedules with monitoring mode to receive only new or status-changed operations.

FAQ

Where does the data come from? The official MSHA Open Government Data sets — the same data behind MSHA's Mine Data Retrieval System. No API key or login required.

Does it include phone numbers or emails? MSHA publishes the operation's mailing address and contact title, but not operator phone or email. You get the company, parent, full address, size, commodity and geo — append contact details with your own tools if needed.

How fresh is it? MSHA refreshes these datasets regularly. Run on a Schedule with monitoring mode to capture changes as they appear.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

A field is null — why? Some operations genuinely don't report every field (e.g. new mines before their first filing, or operations without geo). Fields are null only when the source data doesn't have a value.

Is this legal? This actor collects publicly available US government data. You are responsible for using the data in compliance with applicable laws and MSHA's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.