# OSHA Inspections, Violations & Penalty Screener (`pyralislabs/osha-violations-penalty-screener`) Actor

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.

- **URL**: https://apify.com/pyralislabs/osha-violations-penalty-screener.md
- **Developed by:** [PyralisLabs](https://apify.com/pyralislabs) (community)
- **Categories:** Automation, Agents, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 inspection records

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 Inspections, Violations & Penalty Screener

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 Console](https://console.apify.com) — **no 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](https://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

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `apiKey` | string | optional | Leave 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](https://dataportal.dol.gov) via login.gov → API Keys). |
| `establishmentName` | string | — | Company or facility name. Partial matches work (`"Amazon"` returns all Amazon facilities). Leave blank to search all companies. |
| `state` | string | — | Two-letter US state code (`TX`, `CA`, `NY`). Leave blank for nationwide. |
| `naicsCode` | string | — | 6-digit NAICS industry code (e.g. `336111` for automobile manufacturing). See [census.gov/naics](https://www.census.gov/naics) |
| `sicCode` | string | — | Legacy 4-digit SIC code. Use NAICS if possible. |
| `dateFrom` | string | — | Inspection date range start in `YYYY-MM-DD` format. |
| `dateTo` | string | — | Inspection date range end in `YYYY-MM-DD` format. |
| `maxResults` | integer | 100 | Maximum 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. |
| `minPenalty` | number | 0 | Return 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. |
| `includeViolations` | boolean | false | Fetch per-citation violation records (CFR standard, gravity, penalty). Charges the `violation-detail` PPE event per record. Auto-enabled when `minPenalty` > 0. |
| `proxyConfiguration` | object | — | Optional 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.

```json
{
  "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.

| Event | Rate | When charged |
| :--- | :--- | :--- |
| `actor-start` | $0.05 | Once per run |
| `inspection-record` | $0.015 / record | Per inspection returned |
| `violation-detail` | $0.025 / record | Per record when violation detail is fetched (`includeViolations: true`, or automatically when `minPenalty` > 0) |

**Example costs:**

| Query | Cost |
| :--- | :--- |
| 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:**

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

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

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

**Nationwide sweep of high-penalty inspections:**

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

***

### Frequently Asked Questions

#### Is it legal to scrape OSHA inspection data?

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](https://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](https://docs.apify.com/api/v2) and through the [Apify MCP Server](https://mcp.apify.com), making it callable from Claude Desktop, Cursor, or any MCP-compatible AI client.

***

### Troubleshooting

| Issue | Solution |
| :--- | :--- |
| `401`/`403` from DOL API | If 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 company | Try a shorter partial name (e.g. `"AMAZON"` instead of `"AMAZON WAREHOUSE"`). The DOL database stores names in uppercase. |
| Zero results for a NAICS code | Verify 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 expected | The DOL API may have fewer records matching your filters. Try broadening the date range or removing the `minPenalty` filter. |
| Very slow runs with `includeViolations: true` | Each 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" warnings | The 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. |

***

### Related Apify Actors by PyralisLabs

- 🏬 [Micro Center In-Store AI-Build Sniper](https://apify.com/pyralislabs/microcenter-ai-instore-sniper) — find AI-optimized PC builds in stock at your nearest Micro Center
- 🧠 [Newegg AI-Build Sniper](https://apify.com/pyralislabs/newegg-ai-build-sniper) — same AI build intelligence for nationwide Newegg shipping

***

### Legal & Data Notes

**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.

# Actor input Schema

## `apiKey` (type: `string`):

Optional — the actor includes a built-in key, so most users can leave this blank. Supply your own free DOL key for heavy/high-volume use: sign in at https://dataportal.dol.gov with a login.gov account, then create a key under 'API Keys'.

## `establishmentName` (type: `string`):

Search by company or facility name. Partial matches supported (e.g. 'Amazon' returns all Amazon facilities). Leave blank to search across all companies.

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

Filter by US state (e.g. 'TX', 'CA', 'NY'). Leave blank for all states.

## `naicsCode` (type: `string`):

6-digit NAICS code to filter by industry sector (e.g. '336111' for automobile manufacturing). See census.gov/naics for codes.

## `sicCode` (type: `string`):

Legacy 4-digit Standard Industrial Classification code. Use NAICS if possible.

## `dateFrom` (type: `string`):

Start of date range for inspection open date (ISO format: YYYY-MM-DD).

## `dateTo` (type: `string`):

End of date range for inspection open date (ISO format: YYYY-MM-DD).

## `maxResults` (type: `integer`):

Maximum number of inspection records to return. Higher values cost more PPE credits. On the built-in key, capped at 200 (50 when violation detail is fetched) to respect DOL rate limits — supply your own apiKey for up to 10,000.

## `minPenalty` (type: `number`):

Only return inspections that have at least one citation with a current penalty of this amount or more (e.g. 25000 surfaces serious cases). Automatically fetches and includes citation-level violation detail (charged as violation-detail), and computes the inspection's total penalty. Set to 0 to disable.

## `includeViolations` (type: `boolean`):

If true, fetches per-citation violation records for each inspection (CFR standard cited, gravity, penalty, description). Increases PPE cost but provides full violation detail needed for due diligence.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. The DOL API does not require a proxy — leave unconfigured for most uses.

## Actor input object example

```json
{
  "maxResults": 25,
  "minPenalty": 0,
  "includeViolations": false
}
```

# Actor output Schema

## `inspections` (type: `string`):

All inspection records returned by this run, one per row, with violations nested when fetched.

# 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 = {
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("pyralislabs/osha-violations-penalty-screener").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 = { "maxResults": 25 }

# Run the Actor and wait for it to finish
run = client.actor("pyralislabs/osha-violations-penalty-screener").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 '{
  "maxResults": 25
}' |
apify call pyralislabs/osha-violations-penalty-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pyralislabs/osha-violations-penalty-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OSHA Inspections, Violations & Penalty Screener",
        "description": "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.",
        "version": "0.3",
        "x-build-id": "B5XcszUMgag6PiaxO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pyralislabs~osha-violations-penalty-screener/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pyralislabs-osha-violations-penalty-screener",
                "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/pyralislabs~osha-violations-penalty-screener/runs": {
            "post": {
                "operationId": "runs-sync-pyralislabs-osha-violations-penalty-screener",
                "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/pyralislabs~osha-violations-penalty-screener/run-sync": {
            "post": {
                "operationId": "run-sync-pyralislabs-osha-violations-penalty-screener",
                "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": {
                    "apiKey": {
                        "title": "DOL API Key (optional)",
                        "type": "string",
                        "description": "Optional — the actor includes a built-in key, so most users can leave this blank. Supply your own free DOL key for heavy/high-volume use: sign in at https://dataportal.dol.gov with a login.gov account, then create a key under 'API Keys'."
                    },
                    "establishmentName": {
                        "title": "Company / Establishment Name",
                        "type": "string",
                        "description": "Search by company or facility name. Partial matches supported (e.g. 'Amazon' returns all Amazon facilities). Leave blank to search across all companies."
                    },
                    "state": {
                        "title": "State (2-letter code)",
                        "pattern": "^[A-Za-z]{2}$",
                        "maxLength": 2,
                        "type": "string",
                        "description": "Filter by US state (e.g. 'TX', 'CA', 'NY'). Leave blank for all states."
                    },
                    "naicsCode": {
                        "title": "NAICS Industry Code",
                        "type": "string",
                        "description": "6-digit NAICS code to filter by industry sector (e.g. '336111' for automobile manufacturing). See census.gov/naics for codes."
                    },
                    "sicCode": {
                        "title": "SIC Industry Code",
                        "type": "string",
                        "description": "Legacy 4-digit Standard Industrial Classification code. Use NAICS if possible."
                    },
                    "dateFrom": {
                        "title": "Inspection Date From",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Start of date range for inspection open date (ISO format: YYYY-MM-DD)."
                    },
                    "dateTo": {
                        "title": "Inspection Date To",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "End of date range for inspection open date (ISO format: YYYY-MM-DD)."
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of inspection records to return. Higher values cost more PPE credits. On the built-in key, capped at 200 (50 when violation detail is fetched) to respect DOL rate limits — supply your own apiKey for up to 10,000.",
                        "default": 100
                    },
                    "minPenalty": {
                        "title": "Minimum Citation Penalty (USD)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Only return inspections that have at least one citation with a current penalty of this amount or more (e.g. 25000 surfaces serious cases). Automatically fetches and includes citation-level violation detail (charged as violation-detail), and computes the inspection's total penalty. Set to 0 to disable.",
                        "default": 0
                    },
                    "includeViolations": {
                        "title": "Include Citation-Level Violation Detail",
                        "type": "boolean",
                        "description": "If true, fetches per-citation violation records for each inspection (CFR standard cited, gravity, penalty, description). Increases PPE cost but provides full violation detail needed for due diligence.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy settings. The DOL API does not require a proxy — leave unconfigured for most uses."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
