{
  "openapi": "3.0.1",
  "info": {
    "title": "DOL Wage & Hour Violations Feed: Employers, Back Wages",
    "description": "Clean, flat employer-level wage-and-hour violation records from the official US DOL WHD enforcement dataset, with back wages, civil penalties, employees affected, NAICS, and a what-changed-since-last-run mode. Billed only per delivered record. No API key needed.",
    "version": "0.0",
    "x-build-id": "J3Rsviz0wbD0ucA5e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thoob~dol-whd-violations-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thoob-dol-whd-violations-feed",
        "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/thoob~dol-whd-violations-feed/runs": {
      "post": {
        "operationId": "runs-sync-thoob-dol-whd-violations-feed",
        "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/thoob~dol-whd-violations-feed/run-sync": {
      "post": {
        "operationId": "run-sync-thoob-dol-whd-violations-feed",
        "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",
            "type": "string",
            "description": "Your free DOL Open Data Portal API key. Get one in a minute at https://dataportal.dol.gov/registration . The DOL enforcement API requires it. You can also set it as the DOL_API_KEY environment variable instead."
          },
          "states": {
            "title": "Employer states",
            "maxItems": 60,
            "type": "array",
            "description": "Keep only cases whose employer is in these US states (two-letter codes, for example CA, TX, NY). Filtered on the returned record. Leave empty for all states.",
            "items": {
              "type": "string"
            }
          },
          "naicsPrefixes": {
            "title": "NAICS code prefixes",
            "maxItems": 100,
            "type": "array",
            "description": "Keep only cases whose employer NAICS industry code starts with one of these prefixes (for example 72 for accommodation and food services, 23 for construction). Leave empty for all industries.",
            "items": {
              "type": "string"
            }
          },
          "minBackWages": {
            "title": "Minimum back wages",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only cases with at least this much in total back wages agreed to pay (US dollars). 0 means no minimum.",
            "default": 0
          },
          "violationsOnly": {
            "title": "Only cases with violations",
            "type": "boolean",
            "description": "When on, keep only cases where at least one violation was found. A concluded WHD case can close with zero violations; turn this on to drop those.",
            "default": false
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "full",
              "changes"
            ],
            "type": "string",
            "description": "full returns every case matching your filter. changes returns only cases that are new, or whose record was re-loaded or whose headline figures changed since this account's last run, tracked per account. The first changes run has no baseline, so it returns everything matching once, then tracks deltas.",
            "default": "full"
          },
          "sortBy": {
            "title": "Sort by field",
            "type": "string",
            "description": "Optional raw DOL column to sort by server-side (for example findings_start_date, bw_atp_amt, cmp_assd). Combined with sort direction. Leave empty for the API default order. Newest-first is a common choice with findings_start_date and descending."
          },
          "sortDir": {
            "title": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Direction for sortBy. Ignored when no sort field is set.",
            "default": "desc"
          },
          "maxRecords": {
            "title": "Max delivered records",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Safety cap on how many cases this run delivers and bills. Defaults to 1000 so a first run stays quick and cheap; raise it for a full pull, or set 0 for no cap. In changes mode, cases beyond the cap are not dropped: they are delivered on a later run, never billed twice. The platform spend cap (ACTOR_MAX_TOTAL_CHARGE_USD) is honored regardless.",
            "default": 1000
          },
          "pageSize": {
            "title": "API page size",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many cases to request per API page (1 to 1000). Larger pages are fewer requests; the default is a polite middle.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}