{
  "openapi": "3.0.1",
  "info": {
    "title": "OSHA Inspections & Violations Feed",
    "description": "Clean, flat OSHA workplace-safety enforcement records from the official US DOL data: establishment, address, inspection date and type, cited standards, violation severity, and penalties, with a what-changed-since-last-run mode. Billed only per delivered inspection record. No API key needed.",
    "version": "0.0",
    "x-build-id": "QJFfgUHVaXhj6DiSl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thoob~osha-enforcement-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thoob-osha-enforcement-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~osha-enforcement-feed/runs": {
      "post": {
        "operationId": "runs-sync-thoob-osha-enforcement-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~osha-enforcement-feed/run-sync": {
      "post": {
        "operationId": "run-sync-thoob-osha-enforcement-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 own free DOL Open Data Portal API key. Register in about two minutes at https://dataportal.dol.gov/registration . The official DOL data API requires a key; this actor never stores or logs it. You can also set it as the DOL_API_KEY secret env var instead."
          },
          "states": {
            "title": "Site states",
            "type": "array",
            "description": "Keep only inspections at a site in these US states (two-letter postal codes, for example CA, TX, NY). Applied as a server-side narrowing and re-checked on the returned record. Leave empty for all states.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS code prefixes",
            "type": "array",
            "description": "Keep only inspections whose establishment NAICS code starts with one of these (for example 23 for construction, 31 to 33 for manufacturing, 6221 for general hospitals). Prefix match on the returned record. Leave empty for all industries.",
            "items": {
              "type": "string"
            }
          },
          "inspectionTypes": {
            "title": "Inspection types",
            "type": "array",
            "description": "Keep only these inspection-type codes: A=Accident, B=Complaint, C=Referral, D=Monitoring, F=FollowUp, H=Planned, M=Fatality/Catastrophe, and the rest. Filtered on the returned record. Leave empty for all types.",
            "items": {
              "type": "string"
            }
          },
          "openedSince": {
            "title": "Opened on or after",
            "type": "string",
            "description": "Keep only inspections opened on or after this date (YYYY-MM-DD). Applied as a server-side narrowing and re-checked on the record. Leave empty for no date floor."
          },
          "minPenalty": {
            "title": "Minimum current penalty total",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only inspections whose total current penalty (summed across its live violations) is at least this many dollars. Requires Include violations. Leave empty for no penalty floor."
          },
          "includeViolations": {
            "title": "Include violations",
            "type": "boolean",
            "description": "When on (default), each inspection carries its violation rollup: counts by severity, cited standards, and total penalties. This makes one extra API call per page. Turn off for a faster inspection-only feed.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "full",
              "changes"
            ],
            "type": "string",
            "description": "full returns every inspection matching your filter. changes returns only inspections that are new, or whose modification/close date or violation count has 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"
          },
          "maxRecords": {
            "title": "Max delivered records",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Safety cap on how many inspections this run delivers and bills. 0 means no cap. In changes mode, inspections 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": 500,
            "type": "integer",
            "description": "How many inspections to request per API page (1 to 500). 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}