Get a wage determination
Returns one wage determination. The path accepts either the internal wd_id (for example 43309) or the human-readable WD number (for example CA20260002), so a number you got from a contracting officer or a solicitation resolves without a search first.
This is a flat detail response: the record at the top level, no pagination envelope. On unknown ids it returns a 404 naming the value.
Quick start
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/wage-determinations/CA20260002"
For a CBA, the response carries the cba block:
{
"wd_number": "CBA-2025-44",
"wd_type": "CBA",
"locations": [{ "state": "DC", "county": "Washington, D.C." }],
"cba": {
"contract_services": "PSO Services at 400 Maryland Avenue, SW, Washington D.C. (DC0010)",
"contractor_name": "Universal Protection Service LP d/b/a Allied Universal Security Services",
"contractor_union": "Fraternity of American Protective Officers",
"effective_start_date": "2023-12-12",
"effective_end_date": "2026-11-30"
},
"_sources": ["sam_wage_determinations"]
}
The cba block is present on CBA records and absent on DBA and SCA. It is populated on roughly 87% of CBAs; the rest return empty enrichment from the source.
For DBA and SCA records the response carries a rates block: the classification-level rate lines for the determination, each with its hourly base wage and fringe. CBAs return an empty rates list (they reference a separate union schedule). The block sits alongside the record, so its presence or absence is explicit, and ?fields=...,rates selects it. For what each rate field means and how to query rates across determinations, see prevailing-wage rates.
Parameters
| Param | Type | Description |
|---|---|---|
wd_id |
path | The SAM wd_id or the WD number. |
fields |
string | Comma-list of response fields to return. |
Errors
| Status | When |
|---|---|
401 |
Missing or invalid API key. |
404 |
No determination matches the id or number. |
400 |
Unknown query parameter. |