OSHA Enforcement
Every OSHA workplace-safety inspection back to the 1980s — 5.2M inspections and 13.3M violations with penalties. Establishment name and site address, NAICS/SIC industry codes, union status, inspection type (accident, complaint, planned, referral), and per-citation violations: the standard cited, gravity, initial vs current penalty, abatement and contest dates. The workplace-safety risk surface for any employer in America.
GET /v1/osha-enforcementWhat it returns
Two record shapes: inspections (doc per activity_nr) and violations (doc per citation). Pass include_violations=true to attach each inspection's citations, or activity_nr for a direct lookup with violations. Refreshed daily from DOL's snapshot files. See the live example below for the full field set.
Filters
| activity_nr | Direct lookup by OSHA inspection activity number (e.g., '317465899'). Returns the inspection with its violations attached |
| establishment_name | Case-insensitive substring against the inspected establishment's name (e.g., 'amazon', 'dollar general'). Client-side filter. |
| state | Two-letter site state (e.g., 'TX', 'CA'). |
| naics_code | Exact NAICS industry code of the inspected site (e.g., '238160' roofing contractors). Note: '000000' on many pre-NAICS-era records. |
| insp_type | One-letter inspection-type code (e.g., 'M' Fat/Cat, 'B' Complaint, 'H' Planned — full legend in the tool description). |
| since | Inspection open_date lower bound (YYYY-MM-DD inclusive). |
| until | Inspection open_date upper bound (YYYY-MM-DD inclusive). |
| min_penalty | Keep only inspections with at least one violation whose initial or current penalty is >= this amount (dollars). Implies include_violations=true. |
| include_violations | When true, attaches each returned inspection's violation citations under a `violations` array (standard, type, penalties, abatement/contest dates). Default false. |
| sort_by | Sort key. Default: open_date |
| sort_order | Default: desc (most recent first). |
| limit | Maximum inspections to return. Default 50, max 500. |
Example request
curl "https://api.keyvex.com/v1/osha-enforcement?limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"safety_marit": false,
"naics_code": "000000",
"estab_name": "HAWKEYE STEEL PRODUCTS, INC.",
"host_est_key": "N084 000005366",
"owner_code": "0000",
"site_city": "HOUGHTON",
"site_state": "IA",
"source_url": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=104232814",
"insp_scope": "A",
"migrant": false,
"health_marit": false,
"insp_type": "B",
"why_no_insp": "",
"id": "104232814",
"union_status": "N",
"close_conf_date": "1989-08-21",
"nr_in_estab": 90,
"open_date": "1989-04-11",
"case_mod_date": "2014-04-24",
"safety_manuf": false,
"safety_const": false,
"safety_hlth": "H",
"activity_nr": "104232814",
"close_case_date": "1989-09-28",
"site_zip": "52631",
"reporting_id": "0751910",
"health_const": false,
"sic_code": "3523",
"site_address": "HIGHWAY 16 WEST",
"adv_notice": "N",
"health_manuf": true,
"insp_type_label": "Complaint",
"owner_type": "A",
"scraped_at": "2026-07-08T18:32:38.655Z",
"violations": [
{
"standard": "19100252 A02 IV0C",
"issuance_date": "1989-09-05",
"final_order_date": "",
"citation_id": "01001",
"source_url": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=104232814",
"rec": "",
"hazcat": "",
"current_penalty": 120,
"emphasis": "",
"fta_contest_date": "",
"id": "104232814-01001",
"delete_flag": "",
"abate_complete": "X",
"fta_insp_nr": "",
"activity_nr": "104232814",
"initial_penalty": 120,
"nr_instances": 1,
"fta_issuance_date": "",
"fta_penalty": null,
"hazsubs": [],
"abate_date": "1989-09-08",
"nr_exposed": 2,
"contest_date": "",
"gravity": "02",
"scraped_at": "2026-07-08T15:54:31.864Z",
"fta_final_order_date": "",
"viol_type": "S"
},
{
"standard": "19100038 A01",
"issuance_date": "1989-09-05",
"final_order_date": "",
"citation_id": "02001",
"source_url": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=104232814",
"rec": "",
"hazcat": "",
"current_penalty": null,
"emphasis": "",
"fta_contest_date": "",
"id": "104232814-02001",
"delete_flag": "",
"abate_complete": "X",
"fta_insp_nr": "",
"activity_nr": "104232814",
"initial_penalty": null,
"nr_instances": 1,
"fta_issuance_date": "",
"fta_penalty": null,
"hazsubs": [],
"abate_date": "1989-09-08",
"nr_exposed": 10,
"contest_date": "",
"gravity": "",
"scraped_at": "2026-07-08T15:54:31.864Z",
"fta_final_order_date": "",
"viol_type": "O"
},
{
"standard": "19100252 F06II",
"issuance_date": "1989-09-05",
"final_order_date": "",
"citation_id": "02002",
"source_url": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=104232814",
"rec": "",
"hazcat": "",
"current_penalty": null,
"emphasis": "",
"fta_co
…
Example questions you can answer
- OSHA history for a specific employer or site.
- Serious/willful violations with the biggest penalties in a state.
- Inspection activity in an industry (NAICS) over time.
- Accident-triggered inspections and what they found.
Related datasets
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Free key = full data, 60 requests/day.
Get a free key OpenAPI spec → REST docs →