SAM.gov Wage Determinations Scraper
Pricing
from $4.45 / 1,000 wage determinations
SAM.gov Wage Determinations Scraper
Scrape SAM.gov wage determinations: 95,000 Service Contract Act, Davis-Bacon and collective bargaining agreement determinations with the states and counties they cover, the occupation rates and the fringe benefits.
Pricing
from $4.45 / 1,000 wage determinations
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Prevailing Wage Scraper - Davis-Bacon & SCA Rates
Every wage determination on SAM.gov as data: 85,426 Davis-Bacon construction decisions and 10,124 active Service Contract Act and collective bargaining determinations, with the counties they cover and every hourly rate they set. No login, no API key, no proxy, no browser. Export to CSV, JSON, Excel, or XML.
SAM.gov shows wage determinations one at a time and serves the rates as the Department of Labor's fixed-width text. This Actor reads the index, keeps what your filters ask for, and parses each determination into rows: occupation code, title and rate for Service Contract Act registers, or classification, rate, fringes and union agreement code for Davis-Bacon decisions.
| Who uses it | What they use wage determinations for |
|---|---|
| Federal contractors and subcontractors | Bidding a job at the right labour rate before the solicitation closes |
| Construction estimators | Davis-Bacon classification rates and fringes by county and construction type |
| Payroll and compliance teams | Checking that certified payroll matches the determination in force |
| Labour economists and unions | Prevailing rates by trade, county and year, with the union agreement behind each rate |
| GovCon software and data vendors | A normalised feed of determinations and revisions with stable numbers |
What it does
The Department of Labor issues two kinds of determination, and SAM.gov indexes them separately:
- Davis-Bacon (DBA): 85,426 general decisions for construction, one per state, county set and construction type (Building, Residential, Highway, Heavy). Rates come grouped under the union agreement or survey code that set them.
- Service Contract Act (SCA) and collective bargaining agreements (CBA): 10,124 active determinations for service contracts, with a register of occupation codes and rates plus health and welfare, vacation and holiday requirements.
Every row carries the determination itself:
- π§Ύ Identity: number, short reference, type, revision number, active, standard and latest-revision flags, publication, modification and index dates.
- πΊοΈ Coverage: the states and counties the determination applies to, a statewide flag and the county count, plus the construction types for Davis-Bacon.
- π Links: the SAM.gov page and the API URL for the exact revision.
- π The document (optional): the full determination text with the covered area as the Department writes it.
- π΅ The rates (optional): every occupation or classification with its hourly rate, the fringes and the union agreement code, plus the lowest, median and highest rate in the determination. A Tennessee SCA register parsed to 346 occupation rates; a Pittsburgh Davis-Bacon decision to 35 classifications from $22.37 to $61.07.
- π₯ Fringe benefits (optional): the health and welfare hourly rate, the vacation schedule and the paid holidays.
- π Executive order minimums (optional): the orders cited and the contractor minimum wage they set.
- π Revision history (optional): every published revision with its date and whether it is still in force.
Every row contains: wdNumber, shortReferenceNumber, wdType, wdTypeCode, revisionNumber, isLatestRevision, isActive, isStandard, publishDate, modifiedDate, indexedDate, determinationYear, states, stateNames, counties, countyCount, isStatewide, constructionTypes, cbaNumber, alternateNumbers, wdUrl, apiUrl and scrapedAt.
What you can do with wage determination data
Price a construction bid.
Filter to Davis-Bacon, your state and county, and the construction type, then turn on the rates. Each classification comes with its base rate, its fringe rate and the union agreement code and date behind it, so the estimate traces back to a source.
Watch a determination for changes.
Revision history returns every published revision with its date. Schedule a weekly run on the determinations you follow and compare the revision number.
Build a rate table for a service contract.
Service Contract Act registers list every occupation code from Accounting Clerk I upward. Export them with the health and welfare rate and the holiday count and you have the labour section of the proposal.
Compare counties or trades.
Pull a state's decisions and use the lowest, median and highest rate on each row for a quick spread by county, or explode the rate rows to compare one trade across the state.
Why choose this scraper
| What you get | |
|---|---|
| Both registers | Davis-Bacon and Service Contract Act in one schema, filtered together |
| Rates as rows | The fixed-width text parsed into occupation and classification records, not left as a blob |
| The union agreement behind the rate | Davis-Bacon rows carry the agreement code and its effective date |
| Wrapped names kept whole | A classification that runs over three lines comes back as one name, not a fragment |
| No key, no proxy | Plain HTTP against SAM.gov's public endpoints; 300 determinations with rates in 11 seconds |
| Past the 10,000 ceiling | SAM.gov caps a query at 10,000 records, so a state list is searched state by state |
How it compares
No Apify Actor covers wage determinations. The SAM.gov actors on the Store return contract opportunities or entity registrations, which is a different file. Against SAM.gov's own site the difference is export and the parsed rate table.
| Feature | ParseForge | sam.gov | SAM.gov opportunity actors |
|---|---|---|---|
| Davis-Bacon and SCA in one feed | Yes | Separate searches | Not covered |
| Occupation and classification rates parsed | Yes | Fixed-width text | No |
| Fringe benefits and holidays parsed | Yes | In the text | No |
| Revision history | Yes | One page per revision | No |
| County coverage as data | Yes | Prose | No |
| Price per row | $0.005 | Free, manual | $0.003 to $0.008 |
What a wage determination looks like
{"wdNumber": "PA20260001","shortReferenceNumber": "PA1","wdType": "Davis-Bacon Act","wdTypeCode": "DBA","revisionNumber": 6,"isActive": "Yes","isStandard": "Yes","publishDate": "2026-08-20","modifiedDate": "2026-08-20","determinationYear": 2026,"states": ["PA"],"stateNames": ["Pennsylvania"],"counties": ["Allegheny"],"countyCount": 1,"isStatewide": "No","constructionTypes": ["Building"],"alternateNumbers": ["PA260001", "PA261", "PA20261", "PA0001"],"wdUrl": "https://sam.gov/wage-determination/PA20260001/6","apiUrl": "https://sam.gov/api/prod/wdol/v1/wd/PA20260001/6","coveredArea": "Pennsylvania Counties of Allegheny","lastRevisionDate": "08/20/2026","rateLineCount": 35,"lowestRateUsd": 22.37,"medianRateUsd": 37.93,"highestRateUsd": 61.07,"classificationRates": [{"classification": "ASBESTOS WORKER/INSULATOR (INCLUDES THE APPLICATION OF ALL INSULATING MATERIALS, PROTECTIVE COVERINGS, COATINGS AND FINISHINGS TO ALL TYPES OF MECHANICAL SYSTEMS)","rateUsd": 46.5,"fringesUsd": 29.43,"group": "ASBE0002-001 (08/01/2024)"},{"classification": "BOILERMAKER","rateUsd": 48.28,"fringesUsd": 33.17,"group": "BOIL0154-001 (01/01/2025)"}],"executiveOrders": ["Executive Order 13658"],"minimumWageUsd": 13.65,"scrapedAt": "2026-08-27T19:19:20.148Z"}
A Service Contract Act row looks the same down to wdUrl, then carries occupationRates (346 of them on determination 2015-4653), healthAndWelfareHourlyUsd (5.92), vacationText, holidaysText and holidayCount instead of the classification table.
Configure the run
Run it with no input for the newest determinations across both registers. Determination numbers, search terms and states go to SAM.gov's index; county, construction type and date filters are applied as each record is read.
The 100 most recently modified determinations:
{ "maxItems": 100 }
Davis-Bacon building rates for two states, with the classification table:
{"wdTypes": ["DBA"],"states": ["PA", "TX"],"constructionTypes": ["Building"],"includeOccupationRates": true,"maxItems": 500}
One determination with everything, including its revision history:
{"wdNumbers": ["2015-4653"],"includeDocument": true,"includeOccupationRates": true,"includeFringeBenefits": true,"includeExecutiveOrders": true,"includeRevisionHistory": true}
Service Contract Act determinations covering one county:
{"wdTypes": ["SCA"],"states": ["TN"],"countyContains": "Lawrence","includeFringeBenefits": true,"maxItems": 200}
Pricing
Pay-per-event. $5 per 1,000 wage determinations plus $0.02 per run start and $0.003 per index page. The blocks below are opt-in and charged only when the determination had something to give.
| Event | Price | When |
|---|---|---|
wage-determination | $0.005 | Every determination written |
search-page | $0.003 | Each index page of 100 read, never more than the rows written |
wd-document | $0.004 | The determination text attached |
occupation-rates | $0.006 | The rate table parsed into rows |
fringe-benefits | $0.004 | Health and welfare, vacation or holidays found |
executive-order-minimums | $0.003 | An executive order is cited |
revision-history | $0.004 | The revision list came back |
| Run | Approximate cost |
|---|---|
| 100 determinations, index fields only | $0.53 |
| 500 Davis-Bacon decisions with rates | $10.53 |
| 1,000 determinations with rates and fringes | $15.03 |
| 10,000 determinations, index fields only | $50.32 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 determinations as a preview. Upgrade your Apify plan to pull a whole state or register.
Run it
- Create a free Apify account with $5 in credit.
- Open the SAM.gov Wage Determinations Scraper.
- Pick a type, a state or a determination number, tick the rate blocks, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule a weekly run to catch revisions.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent the prevailing wage registers through the Model Context Protocol:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/sam-gov-wage-determinations-scraper"
Then ask: "What is the Davis-Bacon electrician rate in Allegheny County, Pennsylvania?", "Which SCA determination covers Lawrence County, Tennessee, and what is the health and welfare rate?" or "How many revisions has determination 2015-4653 had?"
Troubleshooting
Why did my state filter return fewer rows than SAM.gov shows?
Each state is searched as its own query, which is what keeps a slice under SAM.gov's 10,000 record ceiling. If a state has more active determinations than your maxItems, raise it or add a county or construction-type filter.
Why are the occupation rates empty on a Davis-Bacon row?
Davis-Bacon decisions have classifications, not occupation codes, so those rows fill classificationRates instead. Service Contract Act registers fill occupationRates. Neither block is charged when it found nothing.
Why is there no health and welfare rate on a construction decision?
Davis-Bacon carries fringes per classification rather than as a benefits section, so fringesUsd on each classification is where that money is. In a 300 row Davis-Bacon run the fringe block fired on 17 rows, which are the ones that do state a benefits section.
Why does a determination have no counties?
Statewide determinations cover the whole state; isStatewide says so and counties is empty by design.
Why is the run slow with the rate blocks on?
Each determination's document is a separate request. Index-only runs read 100 rows per request; with the rate blocks it is one request per row, and 300 determinations with rates took 11 seconds.
FAQ
| Question | Answer |
|---|---|
| What is a wage determination? | The Department of Labor's ruling on the minimum wages and fringe benefits a federal contractor must pay for a class of work in a place. Davis-Bacon covers construction, the Service Contract Act covers services. |
| How many are there? | 85,426 Davis-Bacon decisions and 10,124 active Service Contract Act and collective bargaining determinations at the time of the build. |
| Do I need a SAM.gov account or API key? | No. Everything here comes from SAM.gov's public search index and its public wage determination endpoint. |
| Are superseded revisions included? | Turn off "only active" to reach them, and use the revision history block to list every revision of a determination. |
| Can I get the rates as rows? | Yes. Each determination carries occupationRates or classificationRates with one entry per rate line, plus the lowest, median and highest. |
| What is the group on a Davis-Bacon rate? | The union agreement or survey code that set it, with the effective date, for example ELEC0005-004 (06/01/2025). |
| How current is the data? | The index is live. During testing it carried determinations modified the same day. |
| Can I look up one determination number? | Yes, with wdNumbers, or paste the SAM.gov URL into startUrls. |
| How many rows per run? | Free plan: 10. Paid: as many as your filters match. |
| Is this an official SAM.gov product? | No. It is unofficial and reads only public data. |
Related actors
- SAM.gov Contracts Scraper: federal contract opportunities with NAICS, set-asides and deadlines.
- SAM.gov Entities Scraper: registered federal contractors with UEI, CAGE and addresses.
- H-1B LCA Disclosure Scraper: labour condition applications with wages by employer and role.
- BLS Wage Data Scraper: Bureau of Labor Statistics wage series by occupation and area.
- GAO Bid Protest Docket Scraper: federal bid protests with parties and decisions.
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by SAM.gov, the General Services Administration or the Department of Labor. It reads only public data. Wage determinations are legal instruments: always confirm the determination and revision in force for your contract on SAM.gov before relying on a rate.
