OSHA & EPA Violation Monitor: Fines by Company avatar

OSHA & EPA Violation Monitor: Fines by Company

Pricing

from $3.00 / 1,000 case returneds

Go to Apify Store
OSHA & EPA Violation Monitor: Fines by Company

OSHA & EPA Violation Monitor: Fines by Company

Find US OSHA and EPA enforcement cases by company, state, industry and date: penalties, citations, violation type and a link to the official record. EPA works with no key; OSHA uses the free Department of Labor API key. No proxy or login.

Pricing

from $3.00 / 1,000 case returneds

Rating

0.0

(0)

Developer

Offera Studio

Offera Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does OSHA & EPA Violation Monitor do?

OSHA & EPA Violation Monitor finds US workplace-safety (OSHA) and environmental (EPA) enforcement cases and returns them in one normalised format: facility, address, state, industry code, dates, violation type, number of citations, initial and current penalty and a link to the official record. Both sources are official, free US government data:

  • 🦺 OSHA inspections with citations, from the US Department of Labor open data API (the Occupational Safety and Health Administration's enforcement data). Citations are grouped per inspection, with the penalties added up and the most severe type (willful, repeat, serious, other-than-serious) shown.
  • 🌿 EPA civil and criminal enforcement cases, from the EPA ECHO web services (Enforcement and Compliance History Online): Clean Air Act, Clean Water Act, RCRA, TSCA and other laws, with the federal penalty and the registered facility's address.

You can search by company name (fuzzy), state(s), NAICS or SIC code, date range (default last 90 days) and minimum penalty.

Who is it for?

  • Insurers, underwriters and brokers: check a client's or prospect's safety and environmental record before quoting.
  • Lenders, investors and due-diligence teams: spot repeat and willful violators and large penalties in a portfolio or a supply chain.
  • Procurement and supplier-risk teams: watch suppliers and contractors by name or by state and industry.
  • Journalists and researchers: find the biggest recent penalties in a state or an industry.
  • Safety, ESG and compliance consultants: lead lists of companies with fresh citations.

How to use it

  1. Click Start with the default input: OSHA and EPA, Texas, last 90 days, minimum penalty $50,000, up to 50 cases.
  2. To check specific companies, add company names (for example Cargill, Tyson Foods); leave the state empty to search the whole country.
  3. Schedule the Actor (for example weekly with the last 7 days) to get fresh cases, and connect the dataset to a spreadsheet, Slack or e-mail.

The OSHA key

OSHA data comes from the Department of Labor's API, which needs a free API key (register at dataportal.dol.gov). The Actor reads the key from its own settings or from the optional DOL API key input field. Without a key the Actor still runs: it returns the EPA cases and one free info row (osha-key-missing) that explains how to switch OSHA on. You are never charged for that row.

Input example

{
"sources": ["osha", "epa"],
"companyNames": ["Cargill", "Tyson Foods"],
"states": ["TX", "OK"],
"naicsCodes": ["311"],
"daysBack": 90,
"minPenalty": 50000,
"maxResults": 50,
"sortBy": "date"
}
FieldMeaning
sourcesosha, epa or both (default both).
companyNamesOptional fuzzy names. Legal suffixes (Inc, LLC, Corp) are ignored, plurals and small typos are tolerated, all words of your name must appear. OSHA matches the establishment name; EPA matches the case name.
statesTwo-letter state codes. Empty: whole country.
naicsCodes, sicCodesNAICS prefixes (2 to 6 digits) and 4-digit SIC codes, up to 5 each. A case matching any of them is included.
daysBack, dateFrom, dateToThe period, default the last 90 days. OSHA: citations issued in the period. EPA: cases with a filing, settlement, lodging or closing date in the period.
minPenaltyOnly cases with at least this current penalty in USD. For OSHA the penalties of the inspection's citations are added up.
maxResultsUp to 1,000 (default 50). This also caps your cost.
sortBydate (newest first, default) or penalty (largest first); decides which cases are kept when there are more than the maximum.
epaFacilityDetailsAdds the registered facility's name, address and NAICS to the first 60 EPA cases (two extra requests each). On by default.
dolApiKeyOptional secret field for your own DOL key.

Output example

Real output of a local run on 2 October 2026 with the default input, EPA part (no DOL key was available for the run): 18 cases in 43 seconds, here the first four.

SourceFacilityCityLatest actionViolationPenaltyStatus
epaHESS CORPORATIONHOUSTON, TX2026-09-25Clean Water Act$2,100,000Final Order Lodged
epaGERDAU MIDLOTHIAN PLANTMIDLOTHIAN, TX2026-09-14TSCA (toxic substances)$112,156Final Order Issued
epaINDORAMA VENTURES OXIDES, LLC - PASADENA PLANTPASADENA, TX2026-09-14Clean Air Act$132,737Final Order Issued
epaFRIONA PLANTFRIONA, TX2026-09-08Clean Air Act$313,000Final Order Issued

One row (real EPA data):

{
"source": "epa",
"caseId": "06-2026-3555",
"facilityName": "INDORAMA VENTURES OXIDES, LLC - PASADENA PLANT",
"caseName": "Indorama Ventures-Pasadena, TX-RMP CAFO-FY 2026",
"address": "9801 BAY AREA BOULEVARD, PASADENA,",
"city": "PASADENA",
"state": "TX",
"zip": "77507",
"naics": "325199",
"openDate": "2026-09-11",
"closeDate": "2026-09-14",
"actionDate": "2026-09-14",
"status": "Final Order Issued",
"violationType": "Clean Air Act",
"violationBreakdown": "Administrative - Formal, section 112[R][7]",
"citationCount": null,
"initialPenalty": null,
"currentPenalty": 132737.29,
"outcome": "Final Order With Penalty",
"matchedName": null,
"matchScore": null,
"url": "https://echo.epa.gov/enforcement-case-report?id=06-2026-3555",
"retrievedAt": "2026-10-02T09:43:17.190Z",
"error": null,
"errorMessage": null
}

An OSHA row has the same fields, with citationCount, initialPenalty, currentPenalty (sums over the inspection's citations in the period) and a violationBreakdown such as Willful 1, Serious 1, Other-than-serious 1. Its url points to the OSHA inspection page. initialPenalty and outcome do not exist for EPA cases and are null there; citationCount is null for EPA.

Pair it with product recalls

A company with fresh OSHA or EPA cases may also have product problems. Take the facilityName values and check them with the US Product Recalls Monitor (FDA and CPSC recalls in one feed), for a fuller picture of a manufacturer or food business.

How much does it cost?

This Actor uses pay per event:

EventPrice
Case returned (one row per OSHA inspection or EPA case)$0.003
Info and error rows (missing key, no results, source errors)free
  • The default run (18 EPA cases) costs about $0.054; 1,000 cases cost $3.
  • Both government APIs are free. Apify also charges a tiny standard start fee per run.
  • Set Maximum cost per run in the run options and the Actor stops when it is reached; maxResults also caps the number of billed rows.

Limitations

  • Official data as published. OSHA and EPA data can lag, contain errors and change; penalties are the agencies' figures at the time of the run. This is not legal advice or a compliance certificate.
  • OSHA needs a key (free). Without it only EPA is returned. OSHA's dataset has no state or company filter for citations, so the Actor reads the citations of the period and then looks up the inspections; very broad searches (a whole year, all states, no minimum penalty) read at most the newest 80,000 citations and check at most 6,000 inspections, and say so in the log. Narrow the search with a state or a minimum penalty.
  • EPA company search matches the case name, not every name the facility ever had. Case names usually contain the company name (Cargill Meat Solutions-Friona, TX ...), but not always.
  • EPA dates: the period matches cases with any milestone (filed, settled, lodged, closed) in it, so a case filed years ago but settled this month is included; openDate can then be old or empty. actionDate is the latest of the dates.
  • EPA rate limit: EPA ECHO allows about 300 requests an hour and 1,500 a day per IP address. A default run uses about 40. Facility details are therefore added to the first 60 cases only; the Actor reports a rate-limited problem as a free epa-error row and returns what it has.
  • Penalties differ by source: OSHA penalties are the sum of the citations' current and initial penalties; EPA shows the federal penalty assessed. State agencies' penalties and EPA's supplemental projects are not included.
  • No personal data about individuals is returned; sole proprietors appear under the establishment name the agency published.

FAQ

Is this official data?

Yes. OSHA data comes from the US Department of Labor open data API and EPA data from EPA ECHO. The Actor links every row to the official record where one exists.

Do I need to register anywhere?

Only for OSHA: a free DOL API key. EPA needs nothing.

Why do I get an osha-key-missing row?

No DOL key was set. It is free and never charged. Add the key in the input or ask the Actor owner to set it.

Can I look up a single company?

Yes: put the name in companyNames and leave states empty (and consider a longer period, for example daysBack 365). A name matches when all its words appear in the establishment or case name, ignoring suffixes like Inc.

How fresh is it?

Both agencies publish with a delay: EPA ECHO refreshes its data on a regular schedule and OSHA citations often appear months after an inspection starts. retrievedAt shows when the Actor asked.

More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

Website audits

Company data and compliance

Media and AI

Market signals

Feedback

Missing a field or a filter? Open an issue on the Issues tab.