Discover NAICS codes
Find NAICS codes by current federal spending and small-business set-aside leverage, over the precomputed market rollup. Use this to pick which markets to profile with /api/v1/naics/{code}. Free with any key.
Parameters
All optional; each narrows the discovery. Unknown parameters return 400.
sector: 2-digit NAICS sector prefix (digits only).prefix: any-length NAICS prefix (digits only).min_market: minimum FY2025+ obligated dollars.max_competitors: maximum distinct winning firms (find less-crowded markets).set_aside_family: only codes with obligations in this family, one oftotal_small_business,8a,sdvosb,wosb,hubzone,veteran,native.keywords: match the NAICS description text.sort_by:market(default),competitors, orsetaside_pct.sort_order:ascordesc(default).limit: Results per page. Default 100; maximum 100 on the free trial and 1,000 on paid plans. Over the maximum returns402.offset: pagination offset.
Response
A list of NAICS market rows, sorted by sort_by.
| Field | Meaning |
|---|---|
naics_code / description |
The code and its title |
market_obligated |
Trailing FY2025+ obligated dollars for the code. Can be negative (net of de-obligations). |
competitor_count |
Distinct winning firms |
setaside_total_share_pct |
Share of market_obligated won under ANY set-aside family combined |
family_share_pct |
Share won under the specific set_aside_family you filtered to. null when set_aside_family isn't set. Combined with sort_by=setaside_pct, this is what the ranking uses , not setaside_total_share_pct. |
tier |
thin / okay / rich, a coarse read on market_obligated |
{
"data": [
{
"naics_code": "541710",
"description": "RESEARCH AND DEVELOPMENT IN THE PHYSICAL, ENGINEERING, AND LIFE SCIENCES",
"market_obligated": 9048715054.99,
"competitor_count": 47,
"setaside_total_share_pct": 0.0,
"family_share_pct": null,
"tier": "rich"
}
],
"pagination": {"limit": 2, "offset": 0, "total": 5, "total_is_estimate": false, "has_next": true},
"filters_applied": {"sector": "54", "min_market": 1000000000.0, "max_competitors": 500, "sort_by": "market", "sort_order": "desc"},
"_sources": ["usaspending_fpds"]
}
With set_aside_family set, ranked by sort_by=setaside_pct:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/naics?set_aside_family=sdvosb&sort_by=setaside_pct&limit=2"
{
"data": [
{
"naics_code": "812199",
"description": "OTHER PERSONAL CARE SERVICES",
"market_obligated": -57709.5,
"competitor_count": 4,
"setaside_total_share_pct": 57.4,
"family_share_pct": 94.1,
"tier": "thin"
},
{
"naics_code": "238170",
"description": "SIDING CONTRACTORS",
"market_obligated": 6502544.41,
"competitor_count": 23,
"setaside_total_share_pct": 97.1,
"family_share_pct": 63.9,
"tier": "okay"
}
],
"pagination": {"limit": 2, "offset": 0, "total": 398, "total_is_estimate": false, "has_next": true},
"filters_applied": {"set_aside_family": "sdvosb", "sort_by": "setaside_pct", "sort_order": "desc"},
"_sources": ["usaspending_fpds"]
}
Errors
- 400: invalid
sort_by,sort_order,sector,prefix, orset_aside_family. - 503: the market index is still being built; use
GET /api/v1/naics/{code}for a single code meanwhile.
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/naics?sector=54&min_market=1000000000&max_competitors=500&sort_by=market"