DEV Community

PerskeKits
PerskeKits

Posted on

How to Find New Federal Contract Winners Every Day with USAspending.gov

When a company wins a federal contract, it usually needs to buy, hire, lease and subcontract soon after. That makes a fresh contract award one of the clearest public buying signals there is, and the US government publishes every one of them.

If you are a subcontractor or supplier looking for primes who just won work, a B2B sales team, a GovCon business-development consultant, a staffing firm, or a lender or bonding agent, a daily list of new award winners is a ready-made prospect list.

This guide shows how to pull that list from the official source with the Federal Contract Awards Actor on Apify.

Where the data comes from

USAspending.gov is the official public record of federal spending, and it has a free API that needs no key and no login. It is a good alternative to clicking through award searches on SAM.gov by hand.

The API is powerful but not built for "show me what's new today." You have to build award-search requests, page through results, separate brand-new awards from modifications to old contracts, and then look up recipient details. The Actor does that for you and returns one clean row per new award.

Step 1: Configure the input

Open the Actor page and click Try for free. A typical input for construction work in the Southeast looks like this:

{
  "daysBack": 7,
  "naicsCodes": ["23"],
  "placeOfPerformanceStates": ["SC", "NC", "GA"],
  "minAmount": 250000,
  "sortBy": "date",
  "maxItems": 100
}
Enter fullscreen mode Exit fullscreen mode

The main filters are:

  • daysBack, or dateFrom / dateTo for an exact award-date range.
  • awardType: definitive, purchase-orders, delivery-orders or bpa-calls (all by default).
  • keywords to search the award description text.
  • naicsCodes, which accept full codes or prefixes like 23 (construction) or 541512 (computer systems design).
  • placeOfPerformanceStates and recipientStates, as two-letter codes.
  • awardingAgencies, using exact agency names such as Department of Veterans Affairs.
  • minAmount, and sortBy set to date (newest first) or amount (largest first).

Step 2: Read the output

Each award comes back with the winner, the money and the context:

{
  "awardId": "36C24827C0008",
  "recipientName": "VETERANS DEVELOPMENT CORPORATION, INC.",
  "awardAmount": 63117507.88,
  "awardType": "Definitive Contract",
  "description": "BB - REPLACE DETERIORATED AHU 21, 22, 23 AND 24, PROJECT NUMBER 573-21-705.",
  "awardDate": "2026-10-21",
  "awardingAgency": "Department of Veterans Affairs",
  "naicsCode": "236220",
  "placeOfPerformanceState": "FL",
  "recipientAddress": "144 LINCOLN ST, NORWELL, MA, 02061-1226",
  "url": "https://www.usaspending.gov/award/CONT_AWD_36C24827C0008_3600_-NONE-_-NONE-"
}
Enter fullscreen mode Exit fullscreen mode

Other fields include recipientUei, startDate, endDate, awardingSubAgency, fundingAgency, naicsDescription, pscCode, pscDescription, placeOfPerformanceZip, the recipient's city, state, ZIP and country, and recipientCongressionalDistrict. You can export the dataset as CSV, Excel or JSON.

Step 3: Run it from Python on a schedule

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("perskekits/federal-contract-awards").call(run_input={
    "daysBack": 1,
    "naicsCodes": ["5415"],
    "minAmount": 100000,
    "sortBy": "amount",
    "maxItems": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["awardDate"], item["recipientName"], item["awardAmount"], item["awardingAgency"])
Enter fullscreen mode Exit fullscreen mode

Or set a daily schedule in the Apify Console with daysBack: 1 and send the results to a Google Sheet, Slack or your CRM through an integration.

Use cases

  • Subcontractors and suppliers: reach primes in your trade right after they win, while they are still lining up subs.
  • B2B sales: new winners hire, lease space, buy equipment and software.
  • GovCon consultants: track which competitors and agencies are active in a NAICS code.
  • Staffing firms: large awards often mean fast hiring.
  • Lenders and bonding agents: new contracts can need working capital and bonds.
  • Market research: watch spending trends by agency, state or industry.

Caveats

  • Only new awards are returned; modifications to existing contracts are left out.
  • Agencies report to USAspending within a few days, so "yesterday" may still be filling in.
  • The Department of Defense publishes with a 90-day delay, so its recent awards show up later.

If there is a filter or field you'd like added, leave a comment or open an issue on the Actor page.

Top comments (0)