USAspending Scraper - Federal Contract Awards
Pricing
from $4.00 / 1,000 awards
USAspending Scraper - Federal Contract Awards
Scrape USAspending: who won US federal contracts and grants, enriched with each winner's address, UEI and small-business or socioeconomic status. Filter by keyword, NAICS, agency, state, amount and award date, for government sales and competitor tracking.
Pricing
from $4.00 / 1,000 awards
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
What does USAspending Scraper do?
Export US federal contract and grant awards from USAspending.gov — with the winner's address, UEI and socioeconomic status attached.
No login. No API key. No proxies.
The field that makes this different
Award lists are easy to find. What they don't tell you is what kind of company won.
Federal primes carry subcontracting obligations toward small businesses — 8(a), HUBZone, woman-owned, service-disabled-veteran-owned. Finding a company that has already won work in your NAICS code and qualifies as a small business is the whole teaming problem, and it is not something a raw award feed answers.
This Actor looks up every distinct winner and attaches:
| Field | Example |
|---|---|
recipientUei | ZE6ZM6NKSV43 |
recipientAddress, recipientCity, recipientState, recipientZip | 500 W Main Street, Louisville, KY |
smallBusiness | true / false |
womanOwned, veteranOwned, serviceDisabledVeteranOwned | |
hubZone, minorityOwned, nativeAmericanOwned, alaskanNativeOwned | |
nonprofit, higherEducation | |
recipientTotalAwarded, recipientTransactions | lifetime federal volume |
businessTypes | the full raw list |
smallBusiness distinguishes a measured no from missing information:
USAspending publishes other_than_small_business explicitly, so a false
here means the government says so, not that the field was empty.
A real result. Contracts in NAICS 541512 (computer systems design), small-business winners only: 20 companies kept, 201 filtered out — Anduril Industries, Synergy Business Innovation & Solutions, Veterans EZ Info — each with a full address and a track record in the code you care about.
Output
One row per award:
awardId, recipientName, awardAmount, awardingAgency,
awardingSubAgency, contractType, startDate, endDate, description,
naicsCode, naicsDescription, pscCode, pscDescription,
placeOfPerformanceState, usaspendingUrl, plus every enrichment field
above.
Input
{"keywords": ["cybersecurity"],"awardType": "contracts","startDate": "2026-01-01","endDate": "2026-12-31","enrichRecipient": true,"maxItems": 50}
| Field | Default | Notes |
|---|---|---|
keywords | — | Searched across descriptions and recipients |
awardType | contracts | Contracts, grants, direct payments, loans, other |
startDate / endDate | 2026 | Award period |
enrichRecipient | true | Adds address, UEI and business status |
smallBusinessOnly | false | Keeps only small-business winners |
maxItems | 50 in the form, 300 if omitted via API | Up to 20,000 |
naicsCodes | — | e.g. 541512 |
agency | — | e.g. Department of Defense |
states | — | Place of performance, e.g. CA, VA |
minAmount | — | Filters out small awards |
Run it with no changes and it returns 50 enriched cybersecurity contracts
from the last thirty days, in about a minute. Raise maxItems for more:
winner profiles are fetched six at a time and cached within a run.
Use cases
- Teaming and subcontracting — find small businesses already winning in your NAICS code, with their address and UEI.
- Competitive intelligence — see who wins from which agency, at what size, over what period.
- Market sizing — total obligated value by industry, agency or state.
- Capture planning — track incumbents and contract end dates to time a recompete.
- Supplier due diligence — lifetime federal volume and transaction count per company.
Running this as a scheduled watch
New federal awards are published continuously, and each one names a winner you may want to reach — as a competitor, a supplier, or a prime looking for small-business subcontractors.
{"keywords": ["cybersecurity"],"awardType": "contracts","awardedWithinDays": 30,"maxItems": 200}
Thirty days rather than seven: award data reaches USAspending with a lag, so a shorter window returns very little.
Why not fixed startDate / endDate? A schedule replays the same
input every time. A fixed range returns the same awards at every run and
charges for them again. awardedWithinDays overrides both dates and
moves the window on its own.
Notes and limits
- Enrichment costs one lookup per distinct winner, cached within a run.
A query spanning many companies takes longer; turn
enrichRecipientoff for a fast, thinner export. smallBusinessOnlyfilters after enrichment, so the Actor may read several pages to fill your limit — in testing, 221 awards were examined to return 20 small-business winners. That is the point, but plan the runtime.- Grants carry no NAICS code; those fields come back empty for them.
- Status reflects what was registered at award time and can go stale — a company may outgrow its small-business size standard.
- Amounts are as published, including very large multi-year vehicles that can dominate a sort by amount.
- Requests are paced out of courtesy to a free public service.
- Not affiliated with USAspending.gov or the US government.
How much does it cost?
You pay per award returned: $0.006 each, that is $6.00 per 1,000. There is no start fee, and subscription plans pay less per award.
The example input below asks for up to 50 awards, so it costs $0.30 at most.
If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.
Use USAspending Scraper as an API
Call it from your own code with the Apify client, here in Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/usaspending-federal-awards").call(run_input={'keywords': ['cybersecurity'],'awardType': 'contracts','awardedWithinDays': 30,'maxItems': 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.
Other actors you might like
- UK Contracts Finder Scraper: Tenders & Awards
- TED Tenders Scraper: EU Public Procurement
- Federal Register Scraper: Comment Deadlines
FAQ
Is it legal to use this data?
The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.
Can I run it on a schedule?
Yes. See Running this as a scheduled watch above: use the rolling-window setting so each run returns only what is new.
Can AI agents use it?
Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.