Skip to content

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 the query block. 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 returns 402.
  • offset - Pagination offset, default 0
  • fields - Comma-separated response fields. uei always 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.

A REST API and MCP server for U.S. federal procurement data.

Get a free key, emailed instantly, or follow the quickstart.

Found something wrong, missing or confusing on this page?

Press Ctrl + Enter to send a note. Highlight text first and it travels with your note.