OSHA publishes workplace inspection and violation records through its public API. The data covers citations, penalties, inspection types, and violation classifications going back decades. Accessing it manually is feasible for a single employer -- but building a compliance monitoring workflow, screening vendors, or auditing industry trends requires programmatic access.
Why automate this?
OSHA inspection data has clear use cases across multiple industries:
- Vendor due diligence -- screening contractors or suppliers for serious safety violations before signing contracts
- Compliance benchmarking -- comparing an organization's violation history against industry peers
- Legal and insurance research -- identifying patterns of repeat violations or willful citations in litigation support
- Industry safety analysis -- tracking violation trends across an NAICS code or region
- Real estate and M&A -- surfacing safety liability in target acquisitions
The OSHA public API works, but it requires constructing queries per establishment, handling pagination, and normalizing across inspection types. Building that pipeline from scratch is 2-3 days of work that should not be repeated.
How the OSHA data is structured
OSHA organizes data around inspections. Each inspection is tied to an establishment (employer), has an activity type (programmed, complaint-driven, referral, etc.), and may have zero or more citations. Citations have a violation type (serious, willful, repeat, other) and a proposed penalty amount.
The API allows filtering by establishment name, NAICS code, state, inspection date range, and violation type.
What data you get
Each record in the output includes:
-
activity_nr-- OSHA inspection identifier -
estab_name-- employer/establishment name -
site_address,site_city,site_state-- location -
open_date-- inspection start date -
close_conf_date-- inspection close date -
naics_code-- industry classification -
insp_type-- inspection type (programmed, complaint, referral, etc.) -
violations-- array with citation type, standard violated, and proposed penalty -
total_penalty-- sum of all proposed penalties for the inspection
Running a search
The OSHA Workplace Inspection Violations actor on Apify accepts a company name, state, NAICS code, or date range as input. It queries the OSHA API, handles pagination, and returns normalized records.
Example input:
{
"establishmentName": "Amazon",
"state": "WA",
"dateFrom": "2020-01-01",
"maxResults": 500
}
Output is available as JSON or CSV and can be downloaded directly or accessed via the Apify API.
Practical workflow
For vendor screening: run the actor with the vendor's legal name, pull serious and willful citations from the past 3 years, flag any with penalties over $10,000. This takes about 30 seconds per vendor versus manual searching.
For industry benchmarking: run with a target NAICS code and a 12-month date window. The output gives you a sample of inspection activity across peers.
Next steps
OSHA inspection data is one of the cleaner public datasets for compliance workflows. If you need it in bulk or on a schedule, the actor handles the infrastructure so you can focus on the analysis.
Top comments (0)