KeyVex
Regulatory & compliance

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.

EndpointGET /v1/osha-enforcement
SourceDOL Open Data Portal (OSHA inspections + violations)
Authx-api-key — a free key works

What 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_nrDirect lookup by OSHA inspection activity number (e.g., '317465899'). Returns the inspection with its violations attached
establishment_nameCase-insensitive substring against the inspected establishment's name (e.g., 'amazon', 'dollar general'). Client-side filter.
stateTwo-letter site state (e.g., 'TX', 'CA').
naics_codeExact NAICS industry code of the inspected site (e.g., '238160' roofing contractors). Note: '000000' on many pre-NAICS-era records.
insp_typeOne-letter inspection-type code (e.g., 'M' Fat/Cat, 'B' Complaint, 'H' Planned — full legend in the tool description).
sinceInspection open_date lower bound (YYYY-MM-DD inclusive).
untilInspection open_date upper bound (YYYY-MM-DD inclusive).
min_penaltyKeep only inspections with at least one violation whose initial or current penalty is >= this amount (dollars). Implies include_violations=true.
include_violationsWhen true, attaches each returned inspection's violation citations under a `violations` array (standard, type, penalties, abatement/contest dates). Default false.
sort_bySort key. Default: open_date
sort_orderDefault: desc (most recent first).
limitMaximum 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

Related datasets

Query OSHA Enforcement from your AI

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 →
← All 60+ datasets