OSHA Inspections, Violations & Penalty Screener avatar

OSHA Inspections, Violations & Penalty Screener

Pricing

from $15.00 / 1,000 inspection records

Go to Apify Store
OSHA Inspections, Violations & Penalty Screener

OSHA Inspections, Violations & Penalty Screener

Screen 4M+ OSHA workplace safety inspections with citation-level violation detail, penalty filtering, and NAICS industry targeting. Official US DOL Enforcement API — no scraping, no proxies. Built for vendor vetting, M&A due diligence, and underwriting.

Pricing

from $15.00 / 1,000 inspection records

Rating

0.0

(0)

Developer

PyralisLabs

PyralisLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Screen over 4 million OSHA workplace safety inspection records from the US Department of Labor's public enforcement database. Filter by company name, state, NAICS industry code, date range, or minimum penalty amount. Returns structured JSON with full inspection metadata and citation-level violation detail — the CFR standard cited, violation type, gravity score, and assessed penalty per citation.

What makes this actor different: most OSHA actors return only top-level inspection rows. This one adds (1) per-citation violation detail, (2) a minimum-penalty filter that surfaces serious cases instantly, and (3) NAICS/SIC industry targeting — the three things vendor-vetting, M&A, and underwriting workflows actually need.

Data source: US DOL Open Data API v4 (apiprod.dol.gov/v4) — public domain government data, updated continuously. No API key, account, or setup needed — the actor ships with a built-in DOL key. Heavy users can optionally plug in their own free key.

This product uses the US Department of Labor API but is not endorsed or certified by the US Department of Labor.


Why Search OSHA Inspection Data?

OSHA's enforcement database contains every federal workplace safety inspection going back decades — with penalty amounts, violation citations, and inspection types. This data is powerful for compliance teams, insurance underwriters, legal researchers, and financial analysts who need safety risk intelligence at scale, but pulling it manually record by record is impractical.

This actor gives you programmatic access to the same information in structured JSON, exportable to CSV, Excel, or any downstream system.


Who Uses This Actor

EHS & Compliance Teams — Vendor Vetting

Before signing contracts with new suppliers, manufacturing partners, or logistics providers, compliance teams run OSHA history checks. An inspection with serious violations and a $50,000+ penalty is a red flag that surfaces months before a news story does. This actor returns the same data that compliance vendors like Verisk charge $0.25–$1.00 per record to deliver.

M&A Due Diligence — Pre-Acquisition Safety Risk

Investment teams and M&A advisors include OSHA penalty history as a standard pre-acquisition screen. A target company with repeated willful violations carries regulatory risk, future liability, and potential remediation costs. Query by NAICS code to sweep an entire industry segment before narrowing to specific targets.

Workers' Compensation Underwriting

Insurance brokers and underwriters use OSHA inspection frequency and penalty size as leading indicators of loss potential. A facility with five complaint-driven inspections in three years is statistically riskier than one with zero inspections. This actor returns the raw signals that actuarial models need.

ESG & Responsible Sourcing

ESG analysts building labor safety scores for supply chain reports need programmatic access to OSHA data at scale. The actor's NAICS-code filter lets analysts sweep all facilities in a given sector and aggregate penalty totals for scoring.

Plaintiff Law Firms — Case Intake Screening

Personal injury attorneys evaluating workplace injury cases look for prior OSHA inspections at the same facility. A history of repeat violations of the same standard strengthens a negligence case. The violation detail output (with CFR citations and gravity scores) is exactly what case intake researchers need.


How to Search OSHA Inspection Records

  1. Open the actor in Apify Consoleno API key or signup needed, the actor includes a built-in DOL key.
  2. Set your filters (company name, state, NAICS code, date range, minimum penalty). All filters are optional — leave them blank for a nationwide sweep.
  3. Set Maximum Results (default 500, max 10,000).
  4. Toggle Include Citation-Level Violation Detail if you need the full CFR citation breakdown per inspection.
  5. Run the actor. Results appear in the dataset in seconds.
  6. Download in JSON, CSV, HTML, or Excel from the dataset tab.

High-volume user? Supply your own free DOL key in the optional DOL API Key field: sign in at dataportal.dol.gov with a (free) login.gov account, then create a key under API Keys.

To run automatically on a schedule or trigger via API, use Apify's built-in scheduling and REST API — no additional setup needed.


Input Parameters

ParameterTypeDefaultDescription
apiKeystringoptionalLeave blank to use the actor's built-in DOL key. For heavy/high-volume use, supply your own free key (sign in at dataportal.dol.gov via login.gov → API Keys).
establishmentNamestringCompany or facility name. Partial matches work ("Amazon" returns all Amazon facilities). Leave blank to search all companies.
statestringTwo-letter US state code (TX, CA, NY). Leave blank for nationwide.
naicsCodestring6-digit NAICS industry code (e.g. 336111 for automobile manufacturing). See census.gov/naics
sicCodestringLegacy 4-digit SIC code. Use NAICS if possible.
dateFromstringInspection date range start in YYYY-MM-DD format.
dateTostringInspection date range end in YYYY-MM-DD format.
maxResultsinteger100Maximum records returned. Higher values increase PPE cost. Built-in key caps at 200 (50 with violation detail) to respect DOL rate limits — supply your own apiKey for up to 10,000.
minPenaltynumber0Return only inspections with at least one citation whose current penalty is ≥ this USD amount (e.g. 25000 surfaces serious cases). Automatically fetches violation detail and computes the inspection's total penalty.
includeViolationsbooleanfalseFetch per-citation violation records (CFR standard, gravity, penalty). Charges the violation-detail PPE event per record. Auto-enabled when minPenalty > 0.
proxyConfigurationobjectOptional proxy. The DOL API does not require a proxy — leave unconfigured for most uses.

Output Format

Each dataset record is one OSHA inspection. You can download the full dataset in JSON, CSV, HTML, or Excel.

{
"schemaVersion": "1.1.0",
"attribution": "This product uses the US Department of Labor API but is not endorsed or certified by the US Department of Labor.",
"activity_nr": "1631886.015",
"estab_name": "ACME MANUFACTURING LLC",
"site_address": "123 Industrial Blvd",
"site_city": "Houston",
"site_state": "TX",
"site_zip": "77001",
"naics_code": "336111",
"sic_code": "3711",
"insp_type": "Complaint",
"open_date": "2024-03-15",
"close_conf_date": "2024-04-20",
"total_current_penalty": 14500.00,
"violations": [
{
"citation_id": "01001",
"viol_type": "Serious",
"issuance_date": "2024-04-10",
"current_penalty": 7500.00,
"gravity": "10",
"standard": "1910.147(c)(4)(i)",
"description": "Lockout/tagout: energy control procedure not developed"
}
],
"incomplete_build_notice": null
}

violations is null when violation detail was not fetched, and an empty array when the inspection was queried but produced no citations. When present, it contains individual citation records with CFR standard cited, violation type (Serious / Willful / Repeat / Other), gravity score, and assessed penalty.

total_current_penalty is computed by summing the inspection's citations (DOL's v4 API publishes penalties per citation, not per inspection). It is null when violation detail was not fetched — set includeViolations: true or use minPenalty to get penalty totals.


Pricing — How Much Does OSHA Data Cost?

This actor uses Pay-per-Event (PPE) pricing. You pay only for the records actually returned — never for failed runs or empty results.

EventRateWhen charged
actor-start$0.05Once per run
inspection-record$0.015 / recordPer inspection returned
violation-detail$0.025 / recordPer record when violation detail is fetched (includeViolations: true, or automatically when minPenalty > 0)

Example costs:

QueryCost
100 inspections, no violation detail$0.05 + (100 × $0.015) = $1.55
100 inspections with violation detail$0.05 + (100 × $0.015) + (100 × $0.025) = $4.55
500 inspections, no violation detail$0.05 + (500 × $0.015) = $7.55
Zero results$0.05 (start charge only)

Example Inputs

Check a vendor's OSHA history before signing a contract:

{
"establishmentName": "ABC Logistics",
"state": "TX",
"dateFrom": "2021-01-01",
"maxResults": 200,
"includeViolations": true
}

M&A screen — manufacturing sector, serious penalties only:

{
"naicsCode": "336111",
"minPenalty": 25000,
"dateFrom": "2020-01-01",
"maxResults": 1000
}

Nationwide sweep of high-penalty inspections:

{
"minPenalty": 100000,
"dateFrom": "2023-01-01",
"maxResults": 500,
"includeViolations": true
}

Frequently Asked Questions

This actor does not scrape any website. It calls the US Department of Labor's official public REST API (apiprod.dol.gov/v4). OSHA inspection records are published as public information under the Freedom of Information Act and are explicitly made available for programmatic access via DOL's open data portal. All data is public domain under 17 U.S.C. § 105. No robots.txt restrictions apply because data is served via a documented API.

Do I need my own DOL API key?

No — the actor ships with a built-in key, so it works out of the box with zero setup. If you run very large or very frequent sweeps, supply your own free key in the optional apiKey field so your runs never share rate-limit headroom with other users.

How do I get my own DOL API key? (optional)

The DOL Open Data Portal authenticates through login.gov (the US government's shared sign-in service). Create a free login.gov account (email + password + MFA app or SMS — no identity documents needed for this), sign in at dataportal.dol.gov, and create a key under API Keys (you can have up to 5). The key itself is free.

What is the difference between inspection-record and violation-detail charges?

inspection-record is charged for each inspection returned (the top-level record with address, dates, penalties). violation-detail is an optional add-on charged per record when includeViolations: true — it fetches the individual CFR citations, gravity scores, and violation descriptions for each inspection. For basic due diligence, inspection records alone are sufficient. For legal or underwriting work, violation detail provides the full picture.

How current is the data?

The DOL API is updated continuously as OSHA closes inspections. For most use cases, data is current within a few days of inspection resolution. Very recent open inspections may not yet have penalty amounts.

Can I query the full 4M+ inspection dataset?

Yes. Set maxResults: 10000 and paginate by date range to retrieve large datasets. The actor handles pagination automatically — you only need to set your filters.

Can this actor be called via the Apify API or from an AI agent?

Yes — the actor is available via the Apify REST API and through the Apify MCP Server, making it callable from Claude Desktop, Cursor, or any MCP-compatible AI client.


Troubleshooting

IssueSolution
401/403 from DOL APIIf you supplied your own apiKey, it is invalid or revoked — sign in at dataportal.dol.gov (login.gov) and create a fresh key under API Keys. If you left apiKey blank, retry; if it persists, report it via the Issues tab (built-in key issue on our side).
Zero results for a known companyTry a shorter partial name (e.g. "AMAZON" instead of "AMAZON WAREHOUSE"). The DOL database stores names in uppercase.
Zero results for a NAICS codeVerify the 6-digit code at census.gov/naics. Some older records use SIC codes instead — try sicCode as a fallback.
maxResults returns fewer records than expectedThe DOL API may have fewer records matching your filters. Try broadening the date range or removing the minPenalty filter.
Very slow runs with includeViolations: trueEach violation detail fetch is a separate API call, paced to respect DOL rate limits. For large datasets, expect longer runtimes. Consider querying a date-range subset first.
Run pauses with "DOL API 429" warningsThe DOL API rate-limits bursts of requests and recovers within ~5 minutes — the actor waits and retries automatically. For frequent large runs, supply your own free apiKey.
maxResults returns fewer records than requested (capped)The built-in shared key caps runs at 200 records (50 with violation detail). Supply your own free apiKey to unlock up to 10,000.


This product uses the US Department of Labor API but is not endorsed or certified by the US Department of Labor.

All data is sourced from the US Department of Labor's Open Data API. This is public domain government data under 17 U.S.C. § 105. OSHA inspection records are published as public information under the Freedom of Information Act. Data is passed through as published by DOL — this actor does not modify the underlying records.

This actor returns regulatory data only. It does not constitute legal advice. Consult a qualified EHS attorney before making compliance decisions based on this data.


Support

For issues, unexpected results, or feature requests, use the Issues tab on the actor's Apify Store page. Typical response within 24–48 hours. Include your input parameters (with the API key redacted) and a description of the unexpected behavior.