{
  "openapi": "3.0.1",
  "info": {
    "title": "DOL PERM, H-2A and H-2B Certifications Scraper",
    "description": "Scrape Department of Labor disclosure data for PERM green card, H-2A farm worker and H-2B seasonal worker cases. Get employer, job, wage per hour, work site, workers certified and outcome, plus employer and occupation statistics. Filter by company, state or year. Export to CSV or Excel.",
    "version": "1.0",
    "x-build-id": "L1lg9f1XXOl7Ph25M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parselab~dol-perm-h2a-h2b-labor-certifications-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parselab-dol-perm-h2a-h2b-labor-certifications-scraper",
        "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/parselab~dol-perm-h2a-h2b-labor-certifications-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parselab-dol-perm-h2a-h2b-labor-certifications-scraper",
        "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/parselab~dol-perm-h2a-h2b-labor-certifications-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parselab-dol-perm-h2a-h2b-labor-certifications-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000."
          },
          "program": {
            "title": "Program",
            "enum": [
              "perm",
              "h2a",
              "h2b"
            ],
            "type": "string",
            "description": "PERM is the labor certification that comes before a green card for a foreign worker. H-2A is for temporary farm workers and H-2B for temporary non-farm workers such as landscaping, seafood, hotels and resorts.",
            "default": "perm"
          },
          "mode": {
            "title": "What to collect",
            "enum": [
              "certifications",
              "employers",
              "occupations"
            ],
            "type": "string",
            "description": "Certifications returns one row per case. Employers returns one row per company with totals and wage statistics. Occupations returns wage statistics per occupation.",
            "default": "certifications"
          },
          "fiscalYears": {
            "title": "Fiscal years",
            "type": "array",
            "description": "US government fiscal years, for example 2026 and 2025. Leave empty for the latest year. Each year adds a minute or more.",
            "items": {
              "type": "string"
            }
          },
          "employerNames": {
            "title": "Employer names",
            "type": "array",
            "description": "Part of a company name, for example Walmart, Stanford or Tyson.",
            "items": {
              "type": "string"
            }
          },
          "employerFeins": {
            "title": "Employer tax numbers (EIN)",
            "type": "array",
            "description": "Federal employer identification numbers, for example 58-1533837.",
            "items": {
              "type": "string"
            }
          },
          "employerStates": {
            "title": "Employer states",
            "type": "array",
            "description": "Two letter state codes of the company address.",
            "items": {
              "type": "string"
            }
          },
          "worksiteStates": {
            "title": "Work location states",
            "type": "array",
            "description": "Two letter state codes where the work will be done.",
            "items": {
              "type": "string"
            }
          },
          "worksiteCities": {
            "title": "Work location cities",
            "type": "array",
            "description": "Part of a city name where the work will be done.",
            "items": {
              "type": "string"
            }
          },
          "jobTitles": {
            "title": "Job titles",
            "type": "array",
            "description": "Words in the job title or occupation name, for example software engineer, nurse or landscaping laborer.",
            "items": {
              "type": "string"
            }
          },
          "socCodes": {
            "title": "Occupation codes (SOC)",
            "type": "array",
            "description": "SOC codes or their start, for example 15-1252 or 45-.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "Industry codes (NAICS)",
            "type": "array",
            "description": "NAICS codes or their start, for example 1151 for crop support.",
            "items": {
              "type": "string"
            }
          },
          "lawFirms": {
            "title": "Law firms and agents",
            "type": "array",
            "description": "Part of the name of the law firm or agent that filed the case.",
            "items": {
              "type": "string"
            }
          },
          "caseStatuses": {
            "title": "Case outcomes",
            "type": "array",
            "description": "Words of the outcome, for example certified, denied, withdrawn, expired.",
            "items": {
              "type": "string"
            }
          },
          "temporaryNeeds": {
            "title": "Nature of the temporary need",
            "type": "array",
            "description": "H-2A and H-2B only. For example seasonal, peakload, one-time occurrence, intermittent.",
            "items": {
              "type": "string"
            }
          },
          "minHourlyWageUsd": {
            "title": "Minimum hourly wage (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Wages are converted to an hourly rate, so yearly wages of PERM cases can be compared too."
          },
          "maxHourlyWageUsd": {
            "title": "Maximum hourly wage (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Wages are converted to an hourly rate."
          },
          "minWorkers": {
            "title": "Minimum workers",
            "minimum": 0,
            "type": "integer",
            "description": "H-2A and H-2B only. Keep cases with at least this many workers requested or certified."
          },
          "decisionDateFrom": {
            "title": "Decision date from",
            "type": "string",
            "description": "First decision date, in the form 2026-01-31."
          },
          "decisionDateTo": {
            "title": "Decision date until",
            "type": "string",
            "description": "Last decision date."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "decisionDate",
              "wage",
              "workers",
              "employerName"
            ],
            "type": "string",
            "description": "Newest decision, highest wage, most workers or employer name.",
            "default": "decisionDate"
          },
          "minFilings": {
            "title": "Minimum cases per group",
            "minimum": 1,
            "type": "integer",
            "description": "Employers and occupations modes. Hide groups with fewer cases than this."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}