---
title: "DOL PERM Search"
method: POST
path: "/us/dol-oflc/perm-search/v1"
tags: ["United States", "DOL H-1B and PERM"]
---

# DOL PERM Search

`POST /us/dol-oflc/perm-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/us/dol-oflc/perm-search/v1`
- Auth: HTTP bearer

Search every PERM labor certification DOL decided since fiscal year 2008 (the filing an employer makes to sponsor a foreign worker for a green card), on both the form used until 2023 and the revised one, by employer, trade name, job title or law firm, employer FEIN, case number, fiscal year, case status, SOC code, worksite state, the worker's country of citizenship, minimum offered wage and decision dates. Each determination carries the employer, the job, the offered and prevailing wage, the worksite, the attorney, the worker (on the form used until 2023) and every other answer on the form. Newest decision first, pages of up to 50. Served by Croma (`as_of` says how current the data is), brought up to date as DOL publishes each quarter.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Palabras a buscar en el empleador, su nombre comercial, el cargo y el bufete (opcional).
  - `employer_fein` string: FEI/EIN de nueve dígitos de la entidad (opcional).
  - `case_number` string: Número de caso PERM de DOL (opcional).
  - `fiscal_year` integer: Año fiscal federal (octubre a septiembre), p. ej. `2026` (opcional).
  - `case_status` '' | 'Certified' | 'Certified - Expired' | 'Withdrawn' | 'Denied': Estado del caso: `Certified`, `Certified - Expired`, `Withdrawn` o `Denied` (opcional).
  - `soc_code` string: Código SOC de la ocupación, p. ej. `15-1252.00` (opcional).
  - `worksite_state` string: Código de estado de dos letras, p. ej. `FL` (opcional).
  - `country_of_citizenship` string: País de ciudadanía del trabajador, en inglés, p. ej. `INDIA` (opcional).
  - `min_wage` number: Monto mínimo, en dólares (opcional).
  - `decided_from` string, date: Optional date filter in yyyy-mm-dd format.
  - `decided_to` string, date: Optional date filter in yyyy-mm-dd format.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Resultados por página (1-50).

## Response `200`

Successful response

- DolOflcPermSearchResponse
  - `data` DolOflcPermSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `employer_fein` string, nullable, required
    - `case_number` string, nullable, required
    - `fiscal_year` number, nullable, required
    - `case_status` string, nullable, required
    - `soc_code` string, nullable, required
    - `worksite_state` string, nullable, required
    - `country_of_citizenship` string, nullable, required
    - `min_wage` number, nullable, required
    - `decided_from` string, nullable, required
    - `decided_to` string, nullable, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required
    - `count` number, required
    - `cases` object[], required
      - `id` string, required: `<fiscal_year>:<case_number>`.
      - `fiscal_year` integer, required: The federal fiscal year (October to September) DOL published the determination under.
      - `case_number` string, required: DOL's case number: `A-23043-00641` on the form used until 2023, `G-100-25273-349207` on the revised one.
      - `form` '9089' | '9089_2023', required: `9089` for the ETA-9089 used until 2023 (fiscal years 2008 to 2024), `9089_2023` for the revised form filed from June 2023.
      - `case_status` string, required: `Certified`, `Certified - Expired`, `Withdrawn` or `Denied`.
      - `received_date` string, nullable, required
      - `decision_date` string, nullable, required
      - `decision_dates` string[], required: Every decision date DOL's file lists for the case, oldest first: two only for a few cases DOL lists twice.
      - `employer` object, required
        - `name` string, nullable, required
        - `trade_name` string, nullable, required
        - `address_1` string, nullable, required
        - `address_2` string, nullable, required
        - `city` string, nullable, required
        - `state` string, nullable, required: Two-letter code where the filing names a US state.
        - `postal_code` string, nullable, required
        - `country` string, nullable, required
        - `province` string, nullable, required
        - `phone` string, nullable, required
        - `phone_ext` string, nullable, required
        - `fein` string, nullable, required: Nine digits (published from fiscal year 2024).
        - `naics_code` string, nullable, required
        - `employees` integer, nullable, required
        - `year_commenced` integer, nullable, required: The year the employer began business.
        - `worker_ownership_interest` boolean, nullable, required: The worker has an ownership interest in the employer.
        - `relationship_to_worker` boolean, nullable, required: A familial relationship between the owners and the worker (revised form).
      - `employer_contact` object, required
        - `name` string, nullable, required: The form used until 2023 gives one name field.
        - `last_name` string, nullable, required
        - `first_name` string, nullable, required
        - `middle_name` string, nullable, required
        - `job_title` string, nullable, required
        - `address_1` string, nullable, required
        - `address_2` string, nullable, required
        - `city` string, nullable, required
        - `state` string, nullable, required
        - `postal_code` string, nullable, required
        - `country` string, nullable, required
        - `province` string, nullable, required
        - `phone` string, nullable, required
        - `phone_ext` string, nullable, required
        - `email` string, nullable, required
      - `agent_attorney` object, required
        - `representative_type` string, nullable, required: `Attorney`, `Agent` or `None` (revised form).
        - `name` string, nullable, required: The form used until 2023 gives one name field.
        - `last_name` string, nullable, required
        - `first_name` string, nullable, required
        - `middle_name` string, nullable, required
        - `law_firm` string, nullable, required
        - `law_firm_fein` string, nullable, required
        - `state_bar_number` string, nullable, required
        - `good_standing_state` string, nullable, required
        - `good_standing_court` string, nullable, required
        - `address_1` string, nullable, required
        - `address_2` string, nullable, required
        - `city` string, nullable, required
        - `state` string, nullable, required
        - `postal_code` string, nullable, required
        - `country` string, nullable, required
        - `province` string, nullable, required
        - `phone` string, nullable, required
        - `phone_ext` string, nullable, required
        - `email` string, nullable, required
      - `job` object, required
        - `title` string, nullable, required
        - `soc_code` string, nullable, required: The occupation's SOC code, e.g. `15-1252.00`.
        - `soc_title` string, nullable, required
        - `occupation_type` string, nullable, required: `Professional occupation`, `Non-professional`, `College/University Teacher`, `Schedule A` and others (revised form).
      - `wage` object, required
        - `offer_from` number, nullable, required: The offered wage, US dollars per `offer_unit`.
        - `offer_to` number, nullable, required
        - `offer_unit` string, nullable, required
        - `offer_conditions` string, nullable, required
        - `prevailing_wage` number, nullable, required
        - `prevailing_wage_unit` string, nullable, required
        - `prevailing_wage_level` string, nullable, required
        - `prevailing_wage_source` string, nullable, required
        - `prevailing_wage_source_other` string, nullable, required
        - `prevailing_wage_tracking_number` string, nullable, required
        - `prevailing_wage_determined_on` string, nullable, required
        - `prevailing_wage_expires_on` string, nullable, required
      - `worksite` object, required
        - `type` string, nullable, required
        - `address_1` string, nullable, required
        - `address_2` string, nullable, required
        - `city` string, nullable, required
        - `county` string, nullable, required
        - `state` string, nullable, required: Two-letter code where the filing names a US state.
        - `postal_code` string, nullable, required
        - `bls_area` string, nullable, required
        - `multiple_locations` boolean, nullable, required
      - `worker` object, required: The foreign worker, on the form used until 2023; the revised form moved the worker to an appendix DOL does not publish, so every field is null there.
        - `country_of_citizenship` string, nullable, required: As DOL writes it, e.g. `INDIA`.
        - `birth_country` string, nullable, required
        - `class_of_admission` string, nullable, required: The worker's current visa, e.g. `H-1B`.
        - `education` string, nullable, required
        - `education_other` string, nullable, required
        - `major` string, nullable, required
        - `education_completed_year` integer, nullable, required
        - `institution` string, nullable, required
        - `institution_address_1` string, nullable, required
        - `institution_address_2` string, nullable, required
        - `institution_city` string, nullable, required
        - `institution_state` string, nullable, required
        - `institution_country` string, nullable, required
        - `institution_postal_code` string, nullable, required
        - `currently_employed` boolean, nullable, required: The worker already works for the employer.
      - `preparer` object, required
        - `name` string, nullable, required
        - `title` string, nullable, required
        - `last_name` string, nullable, required
        - `first_name` string, nullable, required
        - `middle_name` string, nullable, required
        - `email` string, nullable, required
        - `law_firm` string, nullable, required
        - `law_firm_fein` string, nullable, required
      - `answers` object, required: Every other answer on the form, under DOL's column name in lower case (`recr_info_newspaper_name`, `other_req_emp_layoff`): requirements, recruitment, notices and declarations. Text as filed (`Y`, `N`, `N/A`), numbers as numbers, dates as `yyyy-mm-dd`; a question left blank is absent.
      - `source_file` string, required: The DOL disclosure file the row was read from.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/74c745980c60?raw)
