# DOL Wage & Hour Enforcement Search (`ryanclinton/dol-whd-enforcement`) Actor

Search the U.S. Department of Labor Wage and Hour Division (WHD) enforcement database for labor law violations, back wages, civil penalties, and employee impact data across 20+ federal statutes.

- **URL**: https://apify.com/ryanclinton/dol-whd-enforcement.md
- **Developed by:** [ryan clinton](https://apify.com/ryanclinton) (community)
- **Categories:** Other, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 result returneds

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

## DOL Wage & Hour Enforcement Search

Search the U.S. Department of Labor Wage and Hour Division (WHD) enforcement database for labor law violations, back wages, civil penalties, and employee impact data across 20+ federal statutes. Access detailed case-level breakdowns covering FLSA minimum wage and overtime, child labor, FMLA, H-1B/H-2A/H-2B visa programs, Davis-Bacon prevailing wages, and more.

### What does DOL Wage & Hour Enforcement Search do?

This actor queries the official DOL API (v4) to retrieve enforcement action records from the Wage and Hour Division, the federal agency responsible for enforcing compliance with major U.S. labor laws. The WHD database contains hundreds of thousands of investigation records spanning decades, covering every U.S. state and territory.

Each enforcement record contains the full details of a DOL investigation: the company investigated, location, industry classification, the specific statutes violated, number of violations found, total back wages owed to employees, civil monetary penalties assessed, and how many workers were affected. Violation data is broken down by individual statute so you can see exactly which laws were violated and the financial impact of each.

The actor supports filtering by company name, geographic location, industry (NAICS code), specific statute, date range, minimum back wage or penalty thresholds, and whether the employer is a repeat FLSA violator. Results are sorted by back wages owed in descending order so the most significant cases appear first.

A **dry run mode** (enabled by default) returns realistic sample data without making any API calls, letting you explore the output format before committing to a DOL API key.

### Features

- **20+ statute coverage** -- Search violations across FLSA, FMLA, H-1B, H-2A, H-2B, SCA, Davis-Bacon, MSPA, CWHSSA, EPPA, and FLSA Child Labor provisions
- **Per-statute breakdowns** -- Every case includes a `statuteBreakdowns` array showing violations, back wages, employees affected, and penalties for each applicable law
- **FLSA detail fields** -- Separate fields for minimum wage back wages vs. overtime back wages; repeat violator flag
- **Child labor tracking** -- Dedicated fields for child labor violation count, minors involved, and penalties assessed
- **Flexible filtering** -- Filter by company name (partial match), state, city, NAICS industry code, statute, date range, minimum dollar thresholds, and repeat violator status
- **Automatic pagination** -- Transparently fetches up to 5,000 records across multiple API pages
- **Rate limit handling** -- Built-in exponential backoff with retries on 429 responses
- **Dry run mode** -- Returns sample data by default so you can test integrations without an API key
- **Results summary** -- Logs aggregate statistics including top states, top statutes, totals for back wages, penalties, and employees affected

### How to use

#### 1. Get a free DOL API key

Register at [https://dataportal.dol.gov/registration](https://dataportal.dol.gov/registration) to obtain your free API key. The key is issued immediately upon registration.

#### 2. Try with dry run mode first

Run the actor with default settings (no API key needed). The `dryRun` option is enabled by default and returns sample enforcement records so you can inspect the output format and test your downstream integrations.

#### 3. Run with real data

Set `dryRun` to `false`, enter your DOL API key, and configure your search filters. The actor will query the live DOL enforcement database and return matching cases sorted by total back wages (highest first).

#### 4. Export results

Results are stored in the Apify dataset and can be downloaded in JSON, CSV, Excel, or other formats. Use the Apify API or integrations to feed data into Google Sheets, webhooks, or other systems.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `dryRun` | Boolean | `true` | When enabled (or when no API key is provided), returns realistic sample data without calling the DOL API. Set to `false` and provide an API key for real data. |
| `apiKey` | String (secret) | -- | Your DOL Open Data Portal API key. Register free at [dataportal.dol.gov/registration](https://dataportal.dol.gov/registration). Not needed for dry run mode. |
| `companyName` | String | -- | Search by trade/business name using partial match. Examples: `MCDONALD`, `TYSON`, `CHIPOTLE`, `WALMART`. |
| `state` | String | -- | Filter by U.S. state using 2-letter code. Examples: `TX`, `CA`, `FL`, `NY`. |
| `city` | String | -- | Filter by city name using partial match. Examples: `HOUSTON`, `NEW YORK`, `LOS ANGELES`. |
| `naicsCode` | String | -- | Filter by NAICS industry code prefix (2-6 digits). Examples: `722` (Food Services), `236` (Construction), `561` (Administrative Services). |
| `statute` | Select | All | Filter by specific labor law statute. Options: `flsa` (Min Wage/Overtime), `fmla` (Family/Medical Leave), `h1b` (H-1B Visa), `h2a` (H-2A Agricultural Visa), `h2b` (H-2B Non-Ag Visa), `sca` (Service Contract Act), `dbra` (Davis-Bacon Act), `mspa` (Migrant Workers), `cwhssa` (Contract Work Hours Act), `eppa` (Employee Polygraph Protection), `flsa_cl` (FLSA Child Labor). |
| `dateFrom` | String | -- | Start date for the findings period in `YYYY-MM-DD` format. Example: `2023-01-01`. |
| `dateTo` | String | -- | End date for the findings period in `YYYY-MM-DD` format. Example: `2024-12-31`. |
| `minBackWages` | Integer | -- | Only return cases where total back wages exceed this dollar amount. Example: `10000` for cases with $10,000+ in back wages. |
| `minPenalties` | Integer | -- | Only return cases where civil monetary penalties exceed this dollar amount. Example: `5000` for cases with $5,000+ in penalties. |
| `repeatViolator` | Boolean | `false` | When enabled, only returns cases flagged as FLSA repeat violators. |
| `maxResults` | Integer | `100` | Maximum number of enforcement records to return. Range: 1 to 5,000. |

### Output format

Each enforcement record in the output dataset contains the following fields:

```json
{
  "caseId": 2145892,
  "tradeName": "PACIFIC COAST STAFFING INC",
  "legalName": "PACIFIC COAST STAFFING INC",
  "streetAddress": "2901 W COAST HWY STE 200",
  "city": "NEWPORT BEACH",
  "state": "CA",
  "zipCode": "92663",
  "naicsCode": "561320",
  "naicsDescription": "Temporary Help Services",
  "totalViolations": 18,
  "totalPenalties": 42750,
  "employeesViolated": 156,
  "totalBackWages": 287634.50,
  "employeesOwedBackWages": 156,
  "findingsStartDate": "2023-03-15T00:00:00",
  "findingsEndDate": "2024-08-22T00:00:00",
  "flsaRepeatViolator": true,
  "statuteBreakdowns": [
    {
      "statute": "FLSA",
      "statuteName": "Fair Labor Standards Act",
      "violations": 14,
      "backWages": 251200.00,
      "employeesAffected": 142,
      "penalties": 35000
    },
    {
      "statute": "FLSA_CL",
      "statuteName": "FLSA Child Labor",
      "violations": 3,
      "backWages": 0,
      "employeesAffected": 0,
      "penalties": 7750
    },
    {
      "statute": "FMLA",
      "statuteName": "Family and Medical Leave Act",
      "violations": 1,
      "backWages": 36434.50,
      "employeesAffected": 14,
      "penalties": 0
    }
  ],
  "flsaMinimumWageBackWages": 98400.00,
  "flsaOvertimeBackWages": 152800.00,
  "childLaborViolations": 3,
  "childLaborMinorsInvolved": 3,
  "childLaborPenalties": 7750,
  "extractedAt": "2026-02-25T14:30:00.000Z"
}
````

#### Field reference

| Field | Type | Description |
|-------|------|-------------|
| `caseId` | Number | Unique DOL case identifier |
| `tradeName` | String | Business trade name / DBA |
| `legalName` | String | Legal entity name |
| `streetAddress` | String | Street address of the investigated establishment |
| `city` | String | City name |
| `state` | String | Two-letter state code |
| `zipCode` | String | ZIP code |
| `naicsCode` | String | NAICS industry classification code |
| `naicsDescription` | String | Human-readable NAICS industry description |
| `totalViolations` | Number | Total violation count across all statutes |
| `totalPenalties` | Number | Total civil monetary penalties assessed (USD) |
| `employeesViolated` | Number | Total number of employees with violations |
| `totalBackWages` | Number | Total back wages owed to employees (USD) |
| `employeesOwedBackWages` | Number | Number of employees owed back wages |
| `findingsStartDate` | String | Start date of the investigation findings period |
| `findingsEndDate` | String | End date of the investigation findings period |
| `flsaRepeatViolator` | Boolean | Whether the employer is flagged as an FLSA repeat violator |
| `statuteBreakdowns` | Array | Per-statute breakdown of violations, back wages, employees affected, and penalties |
| `flsaMinimumWageBackWages` | Number | FLSA minimum wage back wages owed (USD) |
| `flsaOvertimeBackWages` | Number | FLSA overtime back wages owed (USD) |
| `childLaborViolations` | Number | Number of FLSA child labor violations |
| `childLaborMinorsInvolved` | Number | Number of minors involved in child labor violations |
| `childLaborPenalties` | Number | Civil penalties for child labor violations (USD) |
| `extractedAt` | String | ISO 8601 timestamp of when the record was extracted |

### Example use cases

#### 1. Restaurant industry compliance audit

Search for FLSA violations in the food service industry to identify patterns of wage theft. Set `naicsCode` to `722` (Food Services and Drinking Places) and `statute` to `flsa` to find restaurants that failed to pay minimum wage or overtime.

#### 2. H-1B visa program enforcement tracking

Monitor DOL enforcement of H-1B visa labor condition requirements. Filter by `statute: h1b` to find employers that violated wage and working condition obligations for H-1B workers. Cross-reference with the H-1B Visa Intelligence actor for complete visa program analysis.

#### 3. Child labor violation monitoring

Track employers investigated for child labor violations. Set `statute` to `flsa_cl` and use `minPenalties` to focus on significant cases. The output includes the number of minors involved and penalties assessed.

#### 4. Federal construction prevailing wage compliance

Search Davis-Bacon Act (DBRA) enforcement actions against federal construction contractors. Set `statute` to `dbra` and `naicsCode` to `236` (Construction of Buildings) or `237` (Heavy and Civil Engineering Construction). Combine with SAM.gov data to identify contractors with compliance issues.

#### 5. State-level enforcement analysis

Generate state-by-state enforcement reports for labor policy research. Set `state` to any 2-letter code and use date filters to analyze trends over time. The results summary logs aggregate statistics for quick analysis.

#### 6. Repeat violator identification

Find employers with a history of FLSA violations by enabling `repeatViolator`. These are companies the DOL has flagged for repeated non-compliance, which may indicate systemic labor law issues.

#### 7. Agricultural worker protection research

Track enforcement of migrant and seasonal worker protections under MSPA and the H-2A visa program. Set `statute` to `mspa` or `h2a` and filter by agricultural NAICS codes (e.g., `111` for Crop Production, `112` for Animal Production) to find cases involving vulnerable worker populations.

#### 8. High-value back wage investigations

Identify the largest wage theft cases by setting a high `minBackWages` threshold (e.g., `100000` for cases exceeding $100,000). Results are sorted by back wages descending, making it easy to find the most impactful enforcement actions.

### Statutes reference

The WHD enforces the following major statutes. Use the `statute` filter value to search for violations under a specific law.

| Filter Value | Statute | Full Name | What It Covers |
|-------------|---------|-----------|----------------|
| `flsa` | FLSA | Fair Labor Standards Act | Federal minimum wage, overtime pay (time-and-a-half over 40 hours/week), record-keeping requirements, youth employment standards |
| `flsa_cl` | FLSA Child Labor | FLSA Child Labor Provisions | Restrictions on hours and types of work for minors under 18; hazardous occupation orders |
| `fmla` | FMLA | Family and Medical Leave Act | Up to 12 weeks unpaid, job-protected leave for family/medical reasons at covered employers (50+ employees) |
| `h1b` | H-1B | H-1B Visa Program | Employer obligations for specialty occupation workers: prevailing wages, working conditions, non-displacement of U.S. workers |
| `h2a` | H-2A | H-2A Temporary Agricultural Workers | Employer obligations for temporary agricultural visa workers: wages, housing, transportation, working conditions |
| `h2b` | H-2B | H-2B Temporary Non-Agricultural Workers | Employer obligations for temporary non-agricultural visa workers: prevailing wages and working conditions |
| `sca` | SCA | Service Contract Act | Prevailing wages and fringe benefits for employees on federal service contracts exceeding $2,500 |
| `dbra` | DBRA | Davis-Bacon and Related Acts | Prevailing wages and fringe benefits for laborers and mechanics on federal and federally-assisted construction projects over $2,000 |
| `mspa` | MSPA | Migrant & Seasonal Agricultural Worker Protection Act | Registration, disclosure, wage protections, housing and transportation standards for migrant and seasonal farm workers |
| `cwhssa` | CWHSSA | Contract Work Hours and Safety Standards Act | Overtime pay (time-and-a-half) for laborers and mechanics on federal contracts exceeding $100,000 |
| `eppa` | EPPA | Employee Polygraph Protection Act | Prohibits most private employers from requiring or using lie detector tests on employees or job applicants |

### NAICS industry codes reference

The following NAICS (North American Industry Classification System) codes are commonly associated with WHD enforcement actions. Use the `naicsCode` parameter with a 2-6 digit prefix.

| NAICS Prefix | Industry | Common Violations |
|-------------|----------|-------------------|
| `722` | Food Services and Drinking Places | FLSA minimum wage, overtime, tip credit, child labor |
| `7225` | Restaurants and Other Eating Places | FLSA minimum wage, overtime, record-keeping |
| `236` | Construction of Buildings | DBRA prevailing wages, FLSA overtime, CWHSSA |
| `238` | Specialty Trade Contractors | DBRA prevailing wages, FLSA overtime |
| `237` | Heavy and Civil Engineering Construction | DBRA prevailing wages, CWHSSA |
| `561` | Administrative and Support Services | FLSA misclassification, overtime, H-2B |
| `5613` | Employment Services / Staffing | FLSA overtime, H-1B, joint employer violations |
| `111` | Crop Production | H-2A, MSPA, FLSA |
| `112` | Animal Production and Aquaculture | MSPA, FLSA, H-2A |
| `115` | Support Activities for Agriculture | H-2A, MSPA, FLSA |
| `721` | Accommodation (Hotels/Motels) | FLSA minimum wage, overtime, H-2B |
| `812` | Personal and Laundry Services | FLSA minimum wage, overtime |
| `811` | Repair and Maintenance | FLSA overtime, record-keeping |
| `621` | Ambulatory Health Care Services | FLSA overtime, FMLA |
| `623` | Nursing and Residential Care | FLSA overtime, FMLA |
| `445` | Food and Beverage Retailers | FLSA minimum wage, child labor |
| `448` | Clothing and Clothing Accessories Retailers | FLSA minimum wage, overtime |
| `541` | Professional, Scientific, and Technical Services | H-1B, FLSA misclassification |
| `5112` | Software Publishers | H-1B prevailing wage violations |
| `423` | Merchant Wholesalers, Durable Goods | FLSA overtime, record-keeping |
| `484` | Truck Transportation | FLSA overtime |
| `562` | Waste Management and Remediation | FLSA overtime, DBRA |

### Limitations and data freshness

- **API key required for real data.** The dry run mode returns sample records. To access the actual DOL enforcement database, you must register for a free API key at [dataportal.dol.gov/registration](https://dataportal.dol.gov/registration).
- **Data update frequency.** The DOL enforcement database is updated periodically by the agency. There may be a lag of several weeks between the conclusion of an investigation and its appearance in the database.
- **Historical coverage.** The database contains enforcement records dating back several decades, though older records may have fewer detail fields populated.
- **Rate limits.** The DOL API enforces rate limits. The actor includes built-in retry logic with exponential backoff for 429 (rate limited) responses. Large queries (thousands of results) may take longer due to pagination delays.
- **5,000 record cap.** A single actor run can retrieve up to 5,000 records. For larger datasets, use multiple runs with different filter criteria (e.g., split by state or date range).
- **Company name matching.** The `companyName` filter uses partial/wildcard matching against the trade name field. Companies may appear under multiple names or spellings across different cases.
- **Penalty and back wage amounts.** Dollar amounts reflect assessed values at the time of investigation and may differ from final settlement amounts after administrative or judicial proceedings.
- **Statute-specific field availability.** Not all statutes have penalty fields in the DOL data. For example, SCA, H-2B, DBRA, and CWHSSA cases may show `0` for penalties even when violations were found.

### Responsible use

This actor provides access to public government enforcement data published by the U.S. Department of Labor. When using this data:

- **Verify before acting.** Enforcement records reflect investigation findings and assessed penalties, not final adjudicated outcomes. Companies may have contested findings or reached different settlement terms.
- **Provide context.** A single enforcement case does not necessarily indicate ongoing or systemic compliance failures. Consider the full picture, including the date of the investigation, the company's size, and whether corrective action was taken.
- **Respect privacy.** While company names and addresses are public record, exercise judgment when publishing or sharing enforcement data, particularly for small businesses.
- **Stay current.** Cross-reference DOL enforcement data with other public sources (OSHA, EPA, SAM.gov) for a more complete compliance picture.
- **Comply with DOL API terms.** Use of the DOL API is subject to the [DOL Data Portal Terms of Use](https://dataportal.dol.gov). The API key is free but must not be shared or used to overload the service.

### Integrations and API access

#### Apify API

You can run this actor and retrieve results programmatically using the Apify API:

```bash
## Start a run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~dol-whd-enforcement/runs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "dryRun": false,
    "apiKey": "YOUR_DOL_API_KEY",
    "state": "CA",
    "statute": "flsa",
    "minBackWages": 10000,
    "maxResults": 200
  }'
```

#### Apify integrations

Connect DOL enforcement data to your existing tools:

- **Google Sheets** -- Automatically export enforcement records to a spreadsheet for analysis and reporting
- **Slack / Microsoft Teams** -- Send notifications when new enforcement actions match your criteria
- **Webhooks** -- Trigger downstream workflows when new data is available
- **Zapier / Make** -- Build automated workflows that combine DOL data with other data sources
- **Amazon S3 / Google Cloud Storage** -- Archive enforcement data to cloud storage for long-term analysis

#### Scheduled monitoring

Set up the actor on a recurring schedule to monitor enforcement activity in specific states, industries, or against specific companies. Use Apify's scheduling feature to run daily, weekly, or monthly with the same filter parameters.

#### Python client example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "dryRun": False,
    "apiKey": "YOUR_DOL_API_KEY",
    "companyName": "MCDONALD",
    "state": "TX",
    "statute": "flsa",
    "dateFrom": "2023-01-01",
    "maxResults": 500,
}

run = client.actor("ryanclinton/dol-whd-enforcement").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['tradeName']} - {item['city']}, {item['state']}")
    print(f"  Back Wages: ${item['totalBackWages']:,.2f}")
    print(f"  Penalties: ${item['totalPenalties']:,.2f}")
    print(f"  Employees Affected: {item['employeesViolated']}")
    for breakdown in item["statuteBreakdowns"]:
        print(f"  {breakdown['statuteName']}: {breakdown['violations']} violations")
```

#### JavaScript/Node.js client example

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('ryanclinton/dol-whd-enforcement').call({
    dryRun: false,
    apiKey: 'YOUR_DOL_API_KEY',
    naicsCode: '722',
    statute: 'flsa_cl',
    minPenalties: 5000,
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();

for (const item of items) {
    console.log(`${item.tradeName} (${item.city}, ${item.state})`);
    console.log(`  Child Labor Violations: ${item.childLaborViolations}`);
    console.log(`  Minors Involved: ${item.childLaborMinorsInvolved}`);
    console.log(`  Child Labor Penalties: $${item.childLaborPenalties.toLocaleString()}`);
}
```

### Related actors

These actors from the Apify Store complement DOL enforcement data for broader compliance and regulatory research:

- [OSHA Inspection & Citation Search](https://apify.com/ryanclinton/osha-inspection-search) -- Search OSHA workplace safety inspection records, citations, and penalties. Combine with WHD data for a complete labor compliance profile.
- [H-1B Visa Intelligence](https://apify.com/ryanclinton/h1b-visa-intelligence) -- Search H-1B visa application data including employer petitions, wages, and approval rates. Cross-reference with WHD H-1B enforcement actions.
- [CFPB Consumer Complaints](https://apify.com/ryanclinton/cfpb-consumer-complaints) -- Search consumer financial complaints. Useful alongside DOL data for evaluating company-wide compliance posture.
- [SAM.gov Contract Monitor](https://apify.com/ryanclinton/sam-gov-contract-monitor) -- Search federal contract awards and entity registrations. Identify federal contractors with WHD enforcement actions (relevant for DBRA and SCA violations).
- [Federal Register Search](https://apify.com/ryanclinton/federal-register-search) -- Search the Federal Register for proposed and final rules from DOL and other agencies. Track regulatory changes that affect wage and hour enforcement.
- [Senate Lobbying Search](https://apify.com/ryanclinton/senate-lobbying-search) -- Search lobbying disclosure records. Research industry lobbying related to labor law and wage/hour policy.
- [Congressional Stock Trade Tracker](https://apify.com/ryanclinton/congress-stock-tracker) -- Track stock trades by members of Congress. Analyze alongside enforcement trends in specific industries.
- [EPA ECHO Environmental Compliance](https://apify.com/ryanclinton/epa-echo-search) -- Search EPA environmental compliance and enforcement data. Build multi-agency compliance profiles by combining EPA, DOL, and OSHA data.

# Actor input Schema

## `dryRun` (type: `boolean`):

When true (or when no API key is provided), returns realistic sample data without calling the DOL API. Set to false and provide an API key for real data.

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

Your DOL Open Data Portal API key. Register free at https://dataportal.dol.gov/registration. Not needed for dry run mode.

## `companyName` (type: `string`):

Search by trade/business name (partial match). Examples: 'MCDONALD', 'TYSON', 'CHIPOTLE'

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

Filter by U.S. state (2-letter code). Examples: 'TX', 'CA', 'FL'

## `city` (type: `string`):

Filter by city name (partial match). Examples: 'HOUSTON', 'NEW YORK'

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

Filter by NAICS code prefix (2-6 digits). Examples: '722' (Food Services), '236' (Construction), '561' (Administrative Services)

## `statute` (type: `string`):

Filter by specific labor law statute

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

Start date for findings period (YYYY-MM-DD format). Example: '2023-01-01'

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

End date for findings period (YYYY-MM-DD format). Example: '2024-12-31'

## `minBackWages` (type: `integer`):

Only return cases with back wages above this amount. Example: 10000 for $10,000+

## `minPenalties` (type: `integer`):

Only return cases with civil penalties above this amount. Example: 5000 for $5,000+

## `repeatViolator` (type: `boolean`):

Only return cases flagged as FLSA repeat violators

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

Maximum number of enforcement records to return (1-5,000)

## Actor input object example

```json
{
  "dryRun": true,
  "repeatViolator": false,
  "maxResults": 100
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ryanclinton/dol-whd-enforcement").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ryanclinton/dol-whd-enforcement").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 '{}' |
apify call ryanclinton/dol-whd-enforcement --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ryanclinton/dol-whd-enforcement",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "DOL Wage & Hour Enforcement Search",
        "description": "Search the U.S. Department of Labor Wage and Hour Division (WHD) enforcement database for labor law violations, back wages, civil penalties, and employee impact data across 20+ federal statutes.",
        "version": "0.1",
        "x-build-id": "DtG8I5KaPlojtehej"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ryanclinton~dol-whd-enforcement/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ryanclinton-dol-whd-enforcement",
                "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/ryanclinton~dol-whd-enforcement/runs": {
            "post": {
                "operationId": "runs-sync-ryanclinton-dol-whd-enforcement",
                "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/ryanclinton~dol-whd-enforcement/run-sync": {
            "post": {
                "operationId": "run-sync-ryanclinton-dol-whd-enforcement",
                "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": {
                    "dryRun": {
                        "title": "Dry Run (Sample Data)",
                        "type": "boolean",
                        "description": "When true (or when no API key is provided), returns realistic sample data without calling the DOL API. Set to false and provide an API key for real data.",
                        "default": true
                    },
                    "apiKey": {
                        "title": "DOL API Key",
                        "type": "string",
                        "description": "Your DOL Open Data Portal API key. Register free at https://dataportal.dol.gov/registration. Not needed for dry run mode."
                    },
                    "companyName": {
                        "title": "Company Name",
                        "type": "string",
                        "description": "Search by trade/business name (partial match). Examples: 'MCDONALD', 'TYSON', 'CHIPOTLE'"
                    },
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Filter by U.S. state (2-letter code). Examples: 'TX', 'CA', 'FL'"
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Filter by city name (partial match). Examples: 'HOUSTON', 'NEW YORK'"
                    },
                    "naicsCode": {
                        "title": "NAICS Industry Code",
                        "type": "string",
                        "description": "Filter by NAICS code prefix (2-6 digits). Examples: '722' (Food Services), '236' (Construction), '561' (Administrative Services)"
                    },
                    "statute": {
                        "title": "Statute / Law Violated",
                        "enum": [
                            "",
                            "flsa",
                            "fmla",
                            "h1b",
                            "h2a",
                            "h2b",
                            "sca",
                            "dbra",
                            "mspa",
                            "cwhssa",
                            "eppa",
                            "flsa_cl"
                        ],
                        "type": "string",
                        "description": "Filter by specific labor law statute"
                    },
                    "dateFrom": {
                        "title": "Date From",
                        "type": "string",
                        "description": "Start date for findings period (YYYY-MM-DD format). Example: '2023-01-01'"
                    },
                    "dateTo": {
                        "title": "Date To",
                        "type": "string",
                        "description": "End date for findings period (YYYY-MM-DD format). Example: '2024-12-31'"
                    },
                    "minBackWages": {
                        "title": "Minimum Back Wages ($)",
                        "type": "integer",
                        "description": "Only return cases with back wages above this amount. Example: 10000 for $10,000+"
                    },
                    "minPenalties": {
                        "title": "Minimum Penalties ($)",
                        "type": "integer",
                        "description": "Only return cases with civil penalties above this amount. Example: 5000 for $5,000+"
                    },
                    "repeatViolator": {
                        "title": "Repeat FLSA Violators Only",
                        "type": "boolean",
                        "description": "Only return cases flagged as FLSA repeat violators",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of enforcement records to return (1-5,000)",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
