OSHA Enforcement violations & inspections avatar

OSHA Enforcement violations & inspections

Pricing

Pay per usage

Go to Apify Store
OSHA Enforcement violations & inspections

OSHA Enforcement violations & inspections

US employers with OSHA citations from DOL's bulk Inspection + Violation API (federal + all state plans, daily). Ranked hottest-first by penalty and willful/repeat severity. Company, address, NAICS, decoded standards, penalties, contest status — for OSHA defense attorneys & safety consultants.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ayoub Ali

Ayoub Ali

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

OSHA Enforcement Leads — ranked by penalty & willful/repeat

US employers with OSHA citations, pulled from DOL's bulk Inspection + Violation API (api.dol.gov/v4) — federal + all state plans, updated daily. Joined on activity_nr, ranked hottest-first by penalty and willful/repeat severity.

Buyers: OSHA defense attorneys (open cases, contestable fines) and safety consulting firms (willful/repeat — systemic failures).

Why this is the better engine

  • API-first, not HTML scraping. Structured JSON, daily refresh. Doesn't rot when OSHA changes a web page (the failure mode of the old IMIS scraper).
  • Ranks the whole recent universe, not a shallow oldest-first sample.
  • Fixed urgency scoring. Penalty + violation severity drive the score; recency is a bonus, not a cap — so a big willful case ranks critical regardless of age. (The old actor could never exceed "medium.")
  • Fails loud. Schema-checks both datasets first; if DOL renames a field, the run errors instead of emitting junk.
  • Readable standards. 19100212 A011910.212(a)(1).

Setup — DOL API key (required)

The OSHA data is gated behind a free key:

  1. Register at dataportal.dol.gov (Login.gov).
  2. Copy your API key.
  3. Paste it into the actor's "DOL API key" input.

Rate limit: DOL allows ~250 requests/hour with a small burst. The fetch layer paces at ~15s/request and backs off long on 429, so a normal run stays within quota. Don't fire many runs back-to-back in the same hour.

Filters (all dropdowns, except typed date + max records)

FilterDefaultNotes
DOL API keyrequired
Inspection opened on/afterlast 365 daystyped/picked exact date
Violation typeAllwillful / repeat / willful-or-repeat / serious+
StatesAllmulti-select (incl. territories)
Industry sectorAllconstruction, manufacturing, healthcare, …
Minimum penaltyAny$5k / $10k / $25k / $50k / $100k+
Case statusBothopen (attorneys) / closed (consultants)
Lead typeAllopen hazard / contest / safety rebuild / multiple
Max recordsAlltyped number

How it works

  1. Pull inspections opened ≥ date floor + violations issued ≥ date floor (server-side).
  2. Join on activity_nr; keep only cited inspections.
  3. Aggregate violations → penalties, willful/repeat/serious counts, decoded standards.
  4. Classify lead type, score urgency, rank hottest-first, apply filters, cap, push.

Output (36 columns, ordered)

company, recipient_* (enrichment hook — blank until Apollo added), full address, state (full name), NAICS + sector, employee_count, inspection id/type/dates, case_open, violation counts (serious/willful/repeat/other), decoded standards_cited, initial & current penalty + display, abatement_outstanding, contest_filed, lead_type, urgency, urgency_score, signal, recommended_supply, osha_inspection_url, scraped_at.

Source

DOL v4 API — OSHA Inspection (/get/OSHA/inspection/json) + Violation (/get/OSHA/violation/json).

Not included (by design)

  • Contact enrichmentrecipient_* fields are wired but blank in v1; add an Apollo pass to fill person + email.