# OSHA Severe Injury Reports Scraper (`defenestrator/osha-severe-injury-reports`) Actor

Scrape the official OSHA Severe Injury Reports dashboard, download the ZIP dataset, parse CSV, filter by date/state/employer/NAICS/injury, and output structured rows for safety research and compliance monitoring.

- **URL**: https://apify.com/defenestrator/osha-severe-injury-reports.md
- **Developed by:** [Defenestrator](https://apify.com/defenestrator) (community)
- **Categories:** Business, News
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.20 / 1,000 osha severe injury report rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## OSHA Severe Injury Reports Scraper

Export the official OSHA public **Severe Injury Reports** dataset into structured, source-linked rows filtered by date, state, employer, city, NAICS code, injury type, or narrative text.

Use this Actor when you need a repeatable Apify dataset/API output for workplace-safety research, compliance monitoring, journalism, insurance/risk analysis, or public-record reporting instead of manually downloading and filtering OSHA CSV data.

**Unofficial / not affiliated:** this Actor is independently developed and is not affiliated with, endorsed by, sponsored by, or maintained by OSHA, the U.S. Department of Labor, or the U.S. government.

### What is this data?

OSHA requires employers in federal-OSHA jurisdictions to report certain severe workplace injuries: **amputations**, **inpatient hospitalizations**, and **loss of an eye**. Since January 1, 2015, OSHA has maintained a public dashboard of those reports. The dataset is periodically updated.

This Actor downloads OSHA's public CSV dataset, parses it, and returns matching rows as Apify dataset items.

### Common use cases

- Monitor OSHA severe injury reports by state, employer, city, or NAICS code.
- Analyze injury-pattern trends across states or industries.
- Support workplace-safety research, journalism, compliance monitoring, insurance underwriting, or risk analysis.
- Export the OSHA public Severe Injury Reports dataset to JSON, CSV, Excel, or an API integration.

### What you get

Each dataset row can include:

- record ID
- employer name and address
- incident date
- city / state / ZIP
- latitude and longitude geocode
- primary NAICS code and description
- injury type: hospitalization, amputation, or loss of eye
- nature of injury and body part
- event and source codes
- final narrative
- federal/state jurisdiction indicator
- source URL and collection timestamp

### Example output

```json
{
  "recordId": "OSHA-XXXX-XXXXX",
  "eventDate": "2025-10-01",
  "employer": "Example Employer LLC",
  "city": "Miami",
  "state": "FLORIDA",
  "zipCode": "33101",
  "primaryNaics": "238210",
  "hospitalized": true,
  "amputation": false,
  "lossOfEye": false,
  "natureTitle": "Internal organs",
  "partOfBodyTitle": "Stomach",
  "sourceName": "OSHA Severe Injury Reports",
  "sourceUrl": "https://www.osha.gov/severe-injury-reports"
}
````

### Input filters

| Field | Description |
|---|---|
| `maxItems` | Maximum matching rows to save (default 500, max 10000). |
| `eventDateFrom` / `eventDateTo` | Inclusive event date bounds, `YYYY-MM-DD`. |
| `state` | Full state name or USPS abbreviation. |
| `employerQuery` | Case-insensitive substring match on employer name. |
| `cityQuery` | Case-insensitive substring match on city. |
| `naicsQuery` | Case-insensitive substring match on primary NAICS code/description. |
| `injuryType` | `hospitalized`, `amputation`, `lossOfEye`, or `any`. |
| `narrativeQuery` | Case-insensitive substring match on final narrative text. |
| `sortBy` / `sortDescending` | Output ordering before `maxItems` truncation. |
| `includeRawFields` | Include original CSV field/value pairs for debugging. |
| `timeoutSecs` | HTTP timeout per request, in seconds. |

### Example input

```json
{
  "maxItems": 25,
  "eventDateFrom": "2025-01-01",
  "state": "FL",
  "injuryType": "any",
  "sortBy": "eventDate",
  "sortDescending": true,
  "includeRawFields": false
}
```

### Pricing

from $0.20 / 1,000 OSHA severe-injury report rows

This Actor uses Apify Pay per Event pricing with platform usage included. The row event is charged only for useful rows written to the default dataset.

| Event | Price | Unit |
|---|---:|---|
| Actor start (`apify-actor-start`) | `$0.00005` | Once when the run starts. |
| OSHA Severe Injury Report Row (`apify-default-dataset-item`) | `$0.0002` | Per OSHA severe-injury report row. |

A row is one OSHA Severe Injury Report row. Apify plan discounts, user-configured max-charge limits, and any future Apify pricing UI changes may affect final charges.

### Official source

- OSHA Severe Injury Reports: https://www.osha.gov/severe-injury-reports

### Limitations and responsible use

- The dataset covers federal OSHA jurisdiction and does not include incidents reported under state-plan OSHA programs.
- The dataset excludes work-related fatalities.
- Latitude/longitude values are third-party geocodes; accuracy is not guaranteed by OSHA.
- OSHA periodically updates the dataset, and records may be revised after initial publication.

This Actor does not submit injury reports, access non-public records, determine legal obligations, or provide legal, safety, compliance, employment, or insurance advice. Do not use output as the sole basis for legal, compliance, employment, insurance, or other adverse decisions. Use the data lawfully and verify important records against the official OSHA source.

### Related Actors in this portfolio

This Actor is part of the **Public risk and enforcement monitors** group. These are narrow, source-specific Apify Actors intended for scheduled checks and repeatable dataset exports — not broad scraped-content feeds.

- [Texas Data Breach Reports Scraper](https://apify.com/defenestrator/texas-data-breach-reports) — Official Texas data-breach notice rows for cybersecurity/compliance monitoring.
- [OSHA Severe Injury Reports Scraper](https://apify.com/defenestrator/osha-severe-injury-reports) — Official OSHA severe-injury report rows for workplace-safety research.
- [CFPB Enforcement Actions Monitor](https://apify.com/defenestrator/cfpb-enforcement-actions-monitor) — Official CFPB enforcement-action rows for financial regulatory monitoring.
- [PHMSA Pipeline Enforcement Cases](https://apify.com/defenestrator/phmsa-pipeline-enforcement-cases) — Official PHMSA pipeline enforcement case rows for safety/compliance monitoring.

Each listing includes its own source notes, limits, pricing, and responsible-use caveats. Use the official source links in each Actor when decisions require verification.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of rows to save.

## `eventDateFrom` (type: `string`):

Include incidents on or after this date (YYYY-MM-DD).

## `eventDateTo` (type: `string`):

Include incidents on or before this date (YYYY-MM-DD).

## `state` (type: `string`):

Filter by state. Accept full state names or USPS abbreviations (case-insensitive).

## `employerQuery` (type: `string`):

Optional case-insensitive substring match on employer name.

## `cityQuery` (type: `string`):

Optional case-insensitive substring match on city.

## `naicsQuery` (type: `string`):

Optional case-insensitive substring match on Primary NAICS.

## `injuryType` (type: `string`):

Filter by injury type.

## `narrativeQuery` (type: `string`):

Optional case-insensitive substring match on final narrative.

## `sortBy` (type: `string`):

Field to sort results by.

## `sortDescending` (type: `boolean`):

Sort in descending order (newest/largest first).

## `includeRawFields` (type: `boolean`):

Include a 'raw' field with original CSV field/value pairs.

## `timeoutSecs` (type: `integer`):

HTTP timeout per request. Min 15, max 180.

## Actor input object example

```json
{
  "maxItems": 500,
  "eventDateFrom": "2024-01-01",
  "injuryType": "any",
  "sortBy": "eventDate",
  "sortDescending": true,
  "includeRawFields": false,
  "timeoutSecs": 60
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "eventDateFrom": "2024-01-01"
};

// Run the Actor and wait for it to finish
const run = await client.actor("defenestrator/osha-severe-injury-reports").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "eventDateFrom": "2024-01-01" }

# Run the Actor and wait for it to finish
run = client.actor("defenestrator/osha-severe-injury-reports").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "eventDateFrom": "2024-01-01"
}' |
apify call defenestrator/osha-severe-injury-reports --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=defenestrator/osha-severe-injury-reports",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OSHA Severe Injury Reports Scraper",
        "description": "Scrape the official OSHA Severe Injury Reports dashboard, download the ZIP dataset, parse CSV, filter by date/state/employer/NAICS/injury, and output structured rows for safety research and compliance monitoring.",
        "version": "0.0",
        "x-build-id": "sTaVlgevhURhJXbFe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/defenestrator~osha-severe-injury-reports/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-defenestrator-osha-severe-injury-reports",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/defenestrator~osha-severe-injury-reports/runs": {
            "post": {
                "operationId": "runs-sync-defenestrator-osha-severe-injury-reports",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/defenestrator~osha-severe-injury-reports/run-sync": {
            "post": {
                "operationId": "run-sync-defenestrator-osha-severe-injury-reports",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Maximum rows",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of rows to save.",
                        "default": 500
                    },
                    "eventDateFrom": {
                        "title": "Event date from",
                        "type": "string",
                        "description": "Include incidents on or after this date (YYYY-MM-DD)."
                    },
                    "eventDateTo": {
                        "title": "Event date to",
                        "type": "string",
                        "description": "Include incidents on or before this date (YYYY-MM-DD)."
                    },
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Filter by state. Accept full state names or USPS abbreviations (case-insensitive)."
                    },
                    "employerQuery": {
                        "title": "Employer name contains",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on employer name."
                    },
                    "cityQuery": {
                        "title": "City contains",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on city."
                    },
                    "naicsQuery": {
                        "title": "NAICS contains",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on Primary NAICS."
                    },
                    "injuryType": {
                        "title": "Injury type",
                        "enum": [
                            "any",
                            "hospitalized",
                            "amputation",
                            "lossOfEye"
                        ],
                        "type": "string",
                        "description": "Filter by injury type.",
                        "default": "any"
                    },
                    "narrativeQuery": {
                        "title": "Narrative contains",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on final narrative."
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "eventDate",
                            "employer",
                            "state",
                            "city",
                            "primaryNaics"
                        ],
                        "type": "string",
                        "description": "Field to sort results by.",
                        "default": "eventDate"
                    },
                    "sortDescending": {
                        "title": "Sort descending",
                        "type": "boolean",
                        "description": "Sort in descending order (newest/largest first).",
                        "default": true
                    },
                    "includeRawFields": {
                        "title": "Include raw fields",
                        "type": "boolean",
                        "description": "Include a 'raw' field with original CSV field/value pairs.",
                        "default": false
                    },
                    "timeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 15,
                        "maximum": 180,
                        "type": "integer",
                        "description": "HTTP timeout per request. Min 15, max 180.",
                        "default": 60
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
