OSHA Inspection & Violation Crawler avatar

OSHA Inspection & Violation Crawler

Pricing

Pay per event

Go to Apify Store
OSHA Inspection & Violation Crawler

OSHA Inspection & Violation Crawler

Crawl 4M+ OSHA inspection records from the DOL Enforcement Data API. Extract violations, penalties, SIC/NAICS codes, and case status. Filter by state, date range, and inspection type.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

18 days ago

Last modified

Share

Scrape workplace safety inspection records from the OSHA IMIS database, the U.S. Department of Labor's official enforcement data system. Returns 23 structured fields per inspection — establishment details, site addresses, SIC/NAICS codes, inspection type and scope, violation classifications, penalty amounts, abatement dates, and cited standards across 4M+ records nationwide.


OSHA Inspection Crawler Features

  • Extract inspection records from all 50 U.S. states plus D.C.
  • Filter by state, date range, SIC industry code, and inspection type (Planned, Complaint, Referral, Accident, Follow-Up) — or combine them however you want
  • Returns 23 fields per record including penalty amounts, violation types, and cited OSHA standards
  • Covers 4M+ inspection records going back decades, which is more workplace safety data than most people know exists
  • No proxies needed. Government site, no anti-bot measures, generous rate limits.
  • Pay-per-event pricing at $0.001 per record

Who Uses OSHA Inspection Data?

  • Safety compliance officers — audit inspection history for facilities by state and industry before site visits
  • Insurance underwriters — pull violation and penalty data for risk models, because spreadsheets from 2019 are not a risk model
  • Legal teams — research establishment inspection history, penalty trends, and cited standards for litigation or regulatory defense
  • Investigative journalists — identify patterns in workplace safety enforcement across industries and geographies
  • B2B sales teams — build prospecting lists of establishments with specific inspection profiles and industry codes
  • ESG researchers — quantify workplace safety records for corporate sustainability reporting

How OSHA Inspection Crawler Works

  1. Pick one or more U.S. states and optionally narrow by date range, SIC code, or inspection type.
  2. The crawler searches the OSHA IMIS system and pages through listing results for each selected state, extracting inspection IDs.
  3. Each inspection detail page is fetched and parsed — establishment info, addresses, violation summaries, penalty amounts, and cited standards are assembled into a clean record.
  4. Records are delivered as structured JSON. The crawler handles pagination and retries, so you configure it and walk away.

Input

Basic: Crawl inspections for a single state

{
"states": ["AZ"],
"maxItems": 500
}

Narrow by date range and inspection type

{
"states": ["CA", "TX"],
"inspectionType": "Complaint",
"dateFrom": "2024-01-01",
"dateTo": "2025-01-01",
"maxItems": 1000
}

Filter by industry (SIC code)

{
"states": ["NY"],
"sicCode": "3599",
"maxItems": 200
}

Input Parameters

FieldTypeDefaultDescription
statesstring[]One or more U.S. state abbreviations (e.g. AZ, CA, TX). At least one is required.
inspectionTypestring""Filter by type: Planned, Complaint, Referral, Accident, or FollowUp. Leave empty for all.
dateFromstring""Inspection date range start (YYYY-MM-DD).
dateTostring""Inspection date range end (YYYY-MM-DD).
sicCodestring""Standard Industrial Classification code (e.g. 3599 for industrial machinery).
maxItemsinteger500Maximum records to return. Set to 0 for unlimited.
proxyConfigurationobject{useApifyProxy: false}Proxy settings. Government sites do not require proxies.

OSHA Inspection Crawler Output Fields

{
"activity_nr": "Cpx2025xtn976x0044",
"estab_name": "Sf Markets, Llc (Fn) Dba Sprouts Farmers Market",
"site_address": "7750 N 16th St",
"site_city": "Phoenix",
"site_state": "AZ",
"site_zip": "85020",
"sic_code": "5411",
"naics_code": "445110",
"insp_type": "Complaint",
"insp_scope": "Partial",
"open_date": "2025-01-08",
"close_date": "2025-03-15",
"case_status": "Closed",
"viol_type": "Serious",
"gravity": null,
"initial_penalty": 16131,
"current_penalty": 12524,
"nr_exposed": null,
"abate_date": "2025-02-28",
"owner_type": "Private",
"safety_hlth": "Safety",
"union_status": "NonUnion",
"nr_instances": 3,
"standard": "1910.303(b)(1)"
}
FieldTypeDescription
activity_nrstringOSHA inspection activity number (unique ID)
estab_namestringEstablishment or company name
site_addressstringInspection site street address
site_citystringInspection site city
site_statestringInspection site state abbreviation
site_zipstringInspection site ZIP code
sic_codestringStandard Industrial Classification code
naics_codestringNorth American Industry Classification System code
insp_typestringInspection type (Planned, Complaint, Referral, Accident, FollowUp)
insp_scopestringInspection scope (Complete, Partial, Records)
open_datestringInspection opening date (YYYY-MM-DD)
close_datestringInspection case close date (YYYY-MM-DD)
case_statusstringCase status (Open, Closed)
viol_typestringViolation type (Serious, Willful, Repeat, Other-than-Serious)
gravitystringViolation gravity assessment
initial_penaltynumberInitial assessed penalty amount in USD
current_penaltynumberCurrent penalty amount after adjustments in USD
nr_exposednumberNumber of employees exposed to the hazard
abate_datestringAbatement completion date (YYYY-MM-DD)
owner_typestringEstablishment owner type (Private, Federal, State, Local)
safety_hlthstringWhether the violation is Safety or Health related
union_statusstringUnion status of the establishment
nr_instancesnumberNumber of violation instances
standardstringOSHA standard cited in the violation (e.g. 1910.303(b)(1))

FAQ

How do I scrape OSHA inspection data?

OSHA Inspection Crawler handles it. Select one or more states, optionally filter by date range, industry code, or inspection type, and run the actor. Records arrive as structured JSON — no manual searching through the IMIS interface required.

How much does OSHA Inspection Crawler cost to run?

Roughly $0.001 per record. A typical run pulling 1,000 inspections for a single state costs about $1.10 (including the $0.10 actor start fee). That is considerably less than assembling the same data by hand.

Does OSHA Inspection Crawler need proxies?

No. OSHA's IMIS system is a public government database with no anti-bot protections. The crawler ships with proxies disabled by default because it does not need them — just polite rate limiting, which is handled for you.

Can I filter by industry?

Yes. Pass a Standard Industrial Classification (SIC) code in the sicCode field. SIC 3599 gets you industrial machinery, 5411 gets you grocery stores, 1542 gets you commercial construction. The Department of Labor has been classifying industries since before most of us were born.

What inspection types are available?

Five types: Planned (routine scheduled inspections), Complaint (employee or public complaints), Referral (referred by another agency), Accident (workplace injury or fatality), and Follow-Up (revisit of a previous inspection). Filter by any single type or leave blank for all of them.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use OSHA Inspection Crawler?

  • 23 fields per record — Penalty amounts, violation types, cited standards, SIC/NAICS codes, and full site addresses. Most alternatives return a fraction of that, or nothing structured at all.
  • Priced at $0.001/record — Three times cheaper than the nearest competitor charging per-record, and free alternatives have no schemas or output structure to speak of.
  • No proxies, no browser — Hits the OSHA IMIS system directly with lightweight HTTP requests. Runs fast, costs less in compute, and does not break when a CSS class changes.