Search
Find companies by name substring or UEI prefix. Returns each company once with aggregate stats, ranked by combined award value (SAM Award Notices plus FPDS). SAM-registered firms with no awards also match by name, up to 200 per search, with zero totals and sorted last; they are left out when naics or agency is set. To list every registered firm, use Federal Contractor Search. Pro only; Developer-tier keys get a 402.
Parameters
q(required) - Search string, 2-250 chars. Matches against awardee name (case-insensitive substring) and UEI prefix.naics(optional) - 6-digit NAICS code. Filters to companies that have actually won at least one award under this NAICS. Non-6-digit values return a 400. Distinct from Federal Contractor Search, which filters by SAM-registration data ("registered for NAICS X" vs "won awards under NAICS X").naics_small(optional) - 6-digit NAICS code (a non-6-digit value returns 400). Narrows the name-matched, award-winning set to companies that are also SBA-small for that NAICS per the SBA Dynamic Small Business Search (DSBS). This is the "awarded AND eligible" lens: firms that have won federal work and that SBA rates as small for the code, distinct from the self-reported flag. Echoed in thequeryblock. Pro (the whole endpoint is Pro).agency(optional) - Top-level agency name (e.g.DEPT OF DEFENSE). Matches the top-level of SAM's dotted agency path. Filters to companies with at least one award from this agency.limit- Results per page. Default 100, maximum 1,000. Over the maximum returns402.offset- Pagination offset, default 0fields- Comma-separated response fields.ueialways included. Example:fields=uei,name,total_value. See Response Shaping.
Response
The row array is returned under BOTH results AND data (identical contents, data was added for envelope consistency with other list endpoints; results stayed for backward compatibility). Either key is safe to read.
{
"query": {"q": "LOCKHEED", "naics": null, "naics_small": null, "agency": null},
"count": 5,
"pagination": {"limit": 5, "offset": 0, "total": 37, "has_next": true},
"results": [
{
"uei": "H11HD5VHGHN3",
"name": "Lockheed Martin Corporation",
"total_awards": 16,
"total_value": 26800000.0,
"last_award_date": "2026-03-10",
"fpds_transaction_count": 2917,
"fpds_obligated_total": 40571865210.82,
"fpds_latest_action_date": "2026-06-24",
"contact": null,
"contact_status": "agent_only",
"agent_on_file": {"name": "Kate Fleming", "shared_address_firms": 56},
"entity_url": "http://www.lockheedmartin.com"
}
],
"data": [ "...identical to results array above..." ]
}
When naics or agency filters are applied, total_awards / total_value on each result reflect only the subset of awards matching the filter, not the company's full award history. Use GET /api/v1/companies/{uei} for the full profile.
Each result also carries FPDS prime-contract aggregates (fpds_obligated_total, fpds_transaction_count, fpds_latest_action_date, FY2025 onward) and the resolved decision-maker block from the company-contact resolver: contact_status is tri-state, resolved (with a named contact), agent_only (only a third-party SAM registration agent is on file, surfaced in agent_on_file), or no_contact_on_file. entity_url is the company's own SAM-registered website, null when SAM has none on file. This composes the contact resolver into search, so you can screen a list of firms and their reachable decision-makers, plus a way to reach them, in one call.
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/companies/search?q=lockheed&limit=5&offset=0"
# With filters:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/companies/search?q=kampi&naics=332510&agency=DEPT+OF+DEFENSE"
# Awarded AND SBA-small for 541512: "defense" firms with wins that SBA rates small for the code.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/companies/search?q=defense&naics_small=541512&limit=2"
The naics_small example returns 98 companies. Each row keeps the award aggregates and resolved contact
documented above; the filter only narrows which firms qualify:
{
"query": {"q": "defense", "naics": null, "naics_small": "541512", "agency": null},
"count": 2,
"pagination": {"limit": 2, "offset": 0, "total": 98, "has_next": true},
"results": [
{
"uei": "LJSJAJW9KMW6",
"name": "ITC DEFENSE CORP",
"total_awards": 2,
"total_value": 124213037.0,
"fpds_obligated_total": 93065761.92,
"contact_status": "resolved",
"entity_url": "http://www.itcdefense.com"
}
]
}
Notes: LIKE wildcard characters (%, _) in the query are escaped. Trigram search matches substrings at any position, so q=ARTIN finds MARTIN MILITARY INC. UEI prefix matching is case-insensitive. Use pagination.total + pagination.has_next to page through deep result sets.