DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date) avatar

DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date)

Pricing

from $13.40 / 1,000 wage worksite records

Go to Apify Store
DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date)

DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date)

Structured worksite-level prevailing-wage detail — the per-worksite companion to the OFLC prevailing-wage determinations — read directly from the official U.S.

Pricing

from $13.40 / 1,000 wage worksite records

Rating

0.0

(0)

Developer

NexGen Watch

NexGen Watch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

🔔 DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date)

Structured worksite-level prevailing-wage detail — the per-worksite companion to the OFLC prevailing-wage determinations — read directly from the official U.S. Department of Labor Office of Foreign Labor Certification class-A bulk worksite workbook at https://www.dol.gov/sites/dolgov/files/ETA/oflc/pdfs/FY26Q3/PW_Worksites_FY2026_Q3.xlsx. One record per non-empty, de-duplicated worksite row, carried source-native with the value unmodified.

Output is one wage_worksite_record row per result; billing is pay-per-event, the value event being one wage worksite record (a $0.02 start fee per run, then $0.02 per wage worksite record). Source: www.dol.gov.

📊 Sample Output

DOL Prevailing-Wage Worksites (FY2026 Q3, quarter-to-date) sample output — a table of real wage worksite record rows (case_number, worksite_county, worksite_bls_area, soc_code) from run jRPFAfShaWbzshtf3 on build 0.1.3

Real rows from run jRPFAfShaWbzshtf3 on build 0.1.3 (2026-09-19), the same input as the Quick start below — every value is as the source published it (emails masked, long text shortened):

case_numberworksite_countyworksite_bls_areasoc_codemin_wage_sourcequarter_to_date
P-100-25024-640971MENDOCINO COUNTYNORTH COAST REGION OF CALIFORNIA NONMETROPOLITAN AREA51-1011; 51-1011OEWS (All Industries)FY2026 Q3
P-100-25030-654942NEW YORK COUNTYNEW YORK-NEWARK-JERSEY CITY, NY-NJ11-9041; 13-1082OEWS (All Industries)FY2026 Q3
P-100-25031-659039DALLAS COUNTYDALLAS-FORT WORTH-ARLINGTON, TX15-1252; 15-1252OEWS (All Industries)FY2026 Q3
P-100-25031-659049DALLAS COUNTYDALLAS-FORT WORTH-ARLINGTON, TX15-1252; 15-1252OEWS (All Industries)FY2026 Q3
P-100-25034-661058DALLAS COUNTYDALLAS-FORT WORTH-ARLINGTON, TX15-1252; 15-1252OEWS (All Industries)FY2026 Q3
P-100-25034-662021COLLIN COUNTYDALLAS-FORT WORTH-ARLINGTON, TX15-1252; 15-1252OEWS (All Industries)FY2026 Q3
P-100-25034-662207MIDDLESEX COUNTYNEW YORK-NEWARK-JERSEY CITY, NY-NJ15-1253; 15-1253OEWS (All Industries)FY2026 Q3
P-100-25034-662273DANIELS COUNTYEAST-CENTRAL MONTANA NONMETROPOLITAN AREA47-4051; 37-3011OEWS (All Industries)FY2026 Q3

The run finished with the status message: NORMAL: 50 unique rows (0 duplicates collapsed) from Fri, 07 Aug 2026 16:25:30 GMT. billable=50

✅ What you get

Each row is flat JSON with these fields (from the dataset schema and the sample run; a field the source does not publish for a given row is null):

  • record_type (string/null) — e.g. wage_worksite_record
  • source (string/null) — e.g. dol-prevailing-wage-worksites
  • program (string/null) — e.g. PW
  • case_number (string/null) — e.g. P-100-25024-640971
  • worksite_county (string/null) — e.g. MENDOCINO COUNTY
  • worksite_state (string/null) — e.g. CALIFORNIA
  • worksite_bls_area (string/null) — e.g. NORTH COAST REGION OF CALIFORNIA NONMETROPOLITAN AREA
  • soc_code (string/null) — e.g. 51-1011; 51-1011
  • soc_title (string/null) — e.g. First-Line Supervisors of Production and Operating Workers; First-Line Superviso
  • min_wage_source (string/null) — e.g. OEWS (All Industries)
  • min_prevailing_wage (number/string/null) — e.g. 103314
  • min_wage_unit (string/null) — e.g. Year
  • alt_wage_source (string/null) — e.g. OEWS (All Industries)
  • alt_prevailing_wage (number/string/null) — e.g. 134971
  • alt_wage_unit (string/null) — e.g. Year
  • natural_grain (string/null) — e.g. P-100-25024-640971 | MENDOCINO COUNTY | CALIFORNIA | NORTH COAST REGION OF CALIF
  • record_key (string/null) — e.g. 472e27ca71a5d992f5250e19e9179f18
  • quarter_to_date (string/null) — e.g. FY2026 Q3
  • source_attribution (string/null) — e.g. U.S. Department of Labor, Office of Foreign Labor Certification
  • changes_indicated (string/null) — e.g. reformatted from the DOL OFLC disclosure workbook to JSON; values unmodified; al
  • third_party_content (string/null) — e.g. none — official U.S. Department of Labor OFLC disclosure data; no third-party ri
  • allowlist_note (string/null) — e.g. STRUCTURAL ALLOW-LIST at ingest: worksite geography (county/state/BLS area — coa
  • worksite_note (string/null) — e.g. WORKSITE-LEVEL detail of the OFLC prevailing-wage determinations — one row per w
  • grain_note (string/null) — e.g. CASE_NUMBER is NOT unique — one determination case has many worksites. The recor
  • quarter_to_date_note (string/null) — e.g. FY2026 Q3 QUARTER-TO-DATE living workbook — a moving cut refreshed through the q
  • source_url (string/null) — e.g. https://www.dol.gov/sites/dolgov/files/ETA/oflc/pdfs/FY26Q3/PW_Worksites_FY2026_
  • release_date (string/null) — e.g. Fri, 07 Aug 2026 16:25:30 GMT
  • observed_at (string/null) — e.g. 2026-09-19T18:19:44Z
  • release_checksum (string/null) — e.g. 6a7606fa-37d26a
  • license (string/null) — e.g. U.S. public domain — a work of the U.S. Government (17 U.S.C. sec.105). U.S. Dep
  • attribution (string/null) — e.g. U.S. Department of Labor, Office of Foreign Labor Certification (https://www.dol

What a record is

One wage_worksite_record per worksite of a prevailing-wage determination case: the case identifier (case_number), the worksite geography (worksite_county, worksite_state, worksite_bls_area — coarse), the SOC occupation (soc_code, soc_title), and the per-worksite minimum and alternate prevailing-wage facts (min_wage_source / min_prevailing_wage / min_wage_unit, alt_wage_source / alt_prevailing_wage / alt_wage_unit).

⚙️ Sample inputs

1. Quick start — the Store example (this is what the sample above came from)

{
"maxRecords": 50
}

The sample run charged exactly: 2 × $0.02 apify-actor-start + 50 × $0.02 wage_worksite_record = $1.04 on the Free tier — every delivered row was billed.

2. A smaller, narrowed run

{
"maxRecords": 5
}

Caps the run at 5 rows — about $0.12 on the Free tier ($0.02 start + 5 × $0.02).

3. A full-size run

{
"maxRecords": 2500
}

Up to 2500 rows (the schema default for maxRecords) — about $50.02 on the Free tier ($0.02 start + 2500 × $0.02) if the source has that many.

🧾 JSON sample record

One real record from run jRPFAfShaWbzshtf3, exactly as it lands in the dataset (emails masked, long text shortened):

{
"record_type": "wage_worksite_record",
"source": "dol-prevailing-wage-worksites",
"program": "PW",
"case_number": "P-100-25024-640971",
"worksite_county": "MENDOCINO COUNTY",
"worksite_state": "CALIFORNIA",
"worksite_bls_area": "NORTH COAST REGION OF CALIFORNIA NONMETROPOLITAN AREA",
"soc_code": "51-1011; 51-1011",
"soc_title": "First-Line Supervisors of Production and Operating Workers; First-Line Supervisors of Production and Operating Workers",
"min_wage_source": "OEWS (All Industries)",
"min_prevailing_wage": 103314,
"min_wage_unit": "Year",
"alt_wage_source": null,
"alt_prevailing_wage": null,
"alt_wage_unit": null,
"natural_grain": "P-100-25024-640971 | MENDOCINO COUNTY | CALIFORNIA | NORTH COAST REGION OF CALIFORNIA NONMETROPOLITAN AREA | 51-1011; 51-1011 | First-Line Supervisors of Production and Operating Workers; First-Line Supervisors of Production and Operating W",
"record_key": "472e27ca71a5d992f5250e19e9179f18",
"quarter_to_date": "FY2026 Q3",
"source_attribution": "U.S. Department of Labor, Office of Foreign Labor Certification",
"changes_indicated": "reformatted from the DOL OFLC disclosure workbook to JSON; values unmodified; allow-listed structural columns only",
"third_party_content": "none — official U.S. Department of Labor OFLC disclosure data; no third-party rights/trademarks/logos",
"allowlist_note": "STRUCTURAL ALLOW-LIST at ingest: worksite geography (county/state/BLS area — coarse), occupation (SOC) and per-worksite prevailing-wage facts (min/alt source, wage, unit) ONLY. The workbook carries no person, contact, street or narrative co",
"worksite_note": "WORKSITE-LEVEL detail of the OFLC prevailing-wage determinations — one row per worksite of a determination case, with that worksite's SOC occupation and per-worksite minimum/alternate prevailing wage. Distinct from the determination CASE ma",
"grain_note": "CASE_NUMBER is NOT unique — one determination case has many worksites. The record key is a FULL-ROW MD5 over the emitted natural grain (case, worksite geography, SOC, min/alt prevailing-wage facts); exact-duplicate worksite rows collapse an",
"quarter_to_date_note": "FY2026 Q3 QUARTER-TO-DATE living workbook — a moving cut refreshed through the quarter, not a final annual file; vintage = source ETag + Last-Modified carried on the run_receipt.",
"source_url": "https://www.dol.gov/sites/dolgov/files/ETA/oflc/pdfs/FY26Q3/PW_Worksites_FY2026_Q3.xlsx",
"release_date": "Fri, 07 Aug 2026 16:25:30 GMT",
"observed_at": "2026-09-19T18:19:44Z",
"release_checksum": "6a7606fa-37d26a",
"license": "U.S. public domain — a work of the U.S. Government (17 U.S.C. sec.105). U.S. Department of Labor, Office of Foreign Labor Certification disclosure data: used, reproduced and distributed without permission and credited to the U.S. Department",
"attribution": "U.S. Department of Labor, Office of Foreign Labor Certification (https://www.dol.gov/) — public domain"
}

🔧 How it works

Transport. Plain HTTPS from the Apify platform, no proxy. robots.txt is read first and a disallowed path is never fetched. Every request carries an identified contact User-Agent. Pacing: CRAWL_DELAY=0.0.

Terminal states. A run ends NORMAL, CAPPED (your cap was reached), PARTIAL (something was withheld and the message says what), GENUINE_EMPTY (the source was read and truly had nothing in scope) or BLOCKED (the source refused or changed shape — the run FAILS loud and bills nothing). A zero-row run is never reported as a silent success.

Charging. Each wage worksite record is charged at the moment it is pushed (wage_worksite_record); a row that fails to charge is not delivered, so the dataset count always equals the charged count.

Worksite-level detail — not the determination case master

This is the per-worksite detail: one row per worksite of a determination case, with that worksite's SOC and prevailing wage. It is distinct from the determination case master (dol-prevailing-wage-determinations — one row per case, the ETA-9141 determination with employer, visa class, and primary worksite). This worksite file carries no employer identity and no street address — worksite geography is county / state / BLS area only. The two are never conflated. A worksite_note records this on every record.

A full-row key — one case has many worksites

CASE_NUMBER is not unique: a single determination case lists many worksites (about 19,784 cases across 83,288 worksite rows). The record key is a full-row MD5 over the emitted natural grain — case, worksite geography, SOC, and min/alt prevailing-wage facts — and exact-duplicate worksite rows collapse and are never billed twice. The readable natural_grain is carried alongside the key.

Structural allow-list at ingest

The workbook carries only worksite geography (county/state/BLS area — coarse), occupation (SOC), and per-worksite prevailing-wage facts; there is no person, contact, street, or narrative column. The structural allow-list is still enforced: only the columns above are copied, so any column DOL might add later (a street, a name) is dropped at ingest by construction. A test injects a street/contact column and asserts it never reaches output, and a live check confirms it.

Quarter-to-date — a living workbook, not a final file

This is the FY2026 Q3 quarter-to-date workbook: a moving cut refreshed through the quarter, not a final annual file. A quarter_to_date label rides every record and the run receipt carries the source ETag and Last-Modified as the vintage. Blank padding rows are skipped and never billed (non-empty-row law).

Door

Only the official DOL OFLC bulk worksite workbook on www.dol.gov (under /sites/dolgov/files/ETA/oflc) is read (public, logged-out, no API key). No implied DOL affiliation or endorsement.

Source & licence

U.S. public domain — a work of the U.S. Government (17 U.S.C. sec.105). U.S. Department of Labor, Office of Foreign Labor Certification disclosure data: used, reproduced and distributed without permission and credited to the U.S. Department of Labor (https://www.dol.gov/); no implied DOL affiliation or endorsement; third-party rights/trademarks/logos excluded. https://www.dol.gov/agencies/eta/foreign-labor/performance

What is not done. No login, no cookie or CAPTCHA bypass, no private or personal-account data, no browser automation.

💰 Pricing example

EventFreeBronzeSilverGold
Actor Start (apify-actor-start)$0.02$0.02$0.02$0.02
Wage worksite record (wage_worksite_record)$0.02$0.02$0.02$0.01

Worked at the live Free-tier price:

  • 8 wage worksite records: $0.02 start + 8 × $0.02 = $0.18
  • 25 wage worksite records: $0.02 start + 25 × $0.02 = $0.52
  • 2500 wage worksite records: $0.02 start + 2500 × $0.02 = $50.02

A run that delivers zero rows charges the $0.02 start fee only. A BLOCKED run (source refused) fails loud and charges no value event. The start fee is charged once per GB of run memory; the default run memory is 4096 MB.

Yield on the sample run: NORMAL: 50 unique rows (0 duplicates collapsed) from Fri, 07 Aug 2026 16:25:30 GMT. billable=50. maxRecords is a hard ceiling on what is delivered and billed, never a target.

This actor reads public, logged-out pages and feeds published by www.dol.gov. It collects only what the source publishes to any visitor, keeps to the source's robots rules (checked on every run), identifies itself with a contact User-Agent, and does not access accounts, private data or anything behind authentication. Use the output in line with the source's terms and your local law; the intended use is B2B research and monitoring.

❓ FAQ

Q: Do I need an API key or a login?
A: No. The source (www.dol.gov) is read logged-out; the input schema has no key field and the actor carries no secrets.

Q: Why did my run return 0 rows?
A: Read the run's status message. GENUINE_EMPTY means the source was read and had nothing in scope for your input; BLOCKED means the source refused and the run failed without billing a value event — retry later or narrow the input. A zero-row run bills the start fee only.

Q: How many rows can one run return?
A: Up to maxRecords (default 2500). Raise the cap for a bigger run; you pay per delivered row.

Q: How fresh is the data?
A: Every run reads the source live at run time; nothing is cached between runs. Put it on a schedule for a continuous feed.

Q: What formats can I export?
A: The dataset downloads as JSON, CSV, Excel, XML or RSS from the run's Dataset tab or the Apify API, and any run can push to a webhook or integration.

Q: How is this different from the other NexGen Watch actors actors?
A: Same output shape and billing model; this one covers www.dol.gov. The siblings under Related Actors cover the other sources or slices — run several on one schedule for a combined feed.

Q: Are there rate limits?
A: The actor paces itself against the source (CRAWL_DELAY=0.0) and honours its robots rules; there is no per-buyer limit beyond your Apify plan's concurrency.

🆘 Troubleshooting

  • Run FAILED with BLOCKED → the source refused the request or changed its page shape → nothing was billed beyond the start fee; retry after a while, and if it persists open an Issue with the run id.
  • Status says CAPPED → your cap (maxRecords) was reached → raise it for a bigger run.
  • Input validation error on start → a field is outside the schema's allowed values → start from the Quick start block and change one field at a time.
  • Run TIMED-OUT → a very wide request on a slow day → raise the run timeout in Run options or narrow the input; what was delivered before the timeout is still in the dataset.

⭐ Found this useful?

If this actor saved you a manual check, a quick review on the Apify Store helps other teams find it. Feature request or a source that changed? Open it from the Issues tab — every one is read.