Federal Award Monitor (USAspending) — New Contracts, No Login
Pricing
from $10.00 / 1,000 awards
Federal Award Monitor (USAspending) — New Contracts, No Login
Watch recipients, agencies, NAICS, PSC or keywords on USAspending and get only NEW or modified federal contracts, grants, loans and IDVs since the last run, with amount, UEI, place of performance and parent award. Daily schedule. No login. MCP-ready. $10 per 1,000 alerts.
Pricing
from $10.00 / 1,000 awards
Rating
0.0
(0)
Developer
Khrystyna Skotte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Federal Award Monitor — who won what, daily (USAspending.gov)
Get a daily feed of only the new or modified federal awards that match your watchlist — contracts, grants,
loans and IDVs from USAspending.gov, filtered by recipient, awarding agency, NAICS, PSC code and keyword.
The monitor remembers every award it has already reported, so a scheduled run emits just the delta (marked
new or updated when the obligated amount changed), posts a summary to your webhook, and costs you only
for what actually changed. No API key, no login.
SAM.gov tells you what is being solicited. This tells you who won it — the other half of a capture, competitive-intelligence or subcontracting workflow.
Use cases
- Competitor watch —
recipients: ["Booz Allen", "Leidos", "SAIC"]: every new task order or modification they receive, with agency, NAICS, PSC, amount and period of performance. - Subcontracting leads —
naicsCodes: ["236220"],agencies: ["Department of Veterans Affairs"]: primes that just won construction work in your lane, with their UEI and location so you can reach out. - Agency account intelligence —
agencies: ["Department of Homeland Security"],pscCodes: ["D"]: all new IT-services awards at DHS, who got them and through which parent IDV. - Grant tracking —
awardTypes: ["grants"],keywords: ["opioid"]: new project grants and cooperative agreements by topic, with the CFDA / assistance-listing number. - Sales-team alerts — point
webhookUrlat Slack, Zapier or Make and ship a morning "new awards" digest.
How it works
- Queries USAspending's award search for awards with a transaction (new award or modification) dated within
the last
lookbackDays, one query per watch item and award-type group, newest-modified first. - Compares each award against the monitor's saved state (
generatedInternalId → award amount). - Emits a record when the award is unseen (
changeType: "new") or its obligated amount changed (changeType: "updated", withpreviousAmount), optionally enriched from the award detail record (recipient UEI and location, total obligation, period of performance, parent IDV, funding agency). - Saves the updated state, then POSTs a run summary to
webhookUrlif set.
State lives in a named key-value store award-monitor-<hash of monitorId> in your Apify account, capped at
50,000 awards (oldest recorded are dropped). Delete the store to reset a monitor.
Watch items vs. global filters
recipients, naicsCodes, pscCodes and keywords are watch items: each entry is queried on its own and
a match is tagged with matchedFilter (recipient:Lockheed, naics:541512, psc:D, keyword:radar). An
award matching several watch items is emitted once, under the first one that found it.
agencies, awardTypes, minAmount and lookbackDays are global and apply to every watch item. With no
watch items the monitor emits everything that passes the global filters (matchedFilter: "agency:…" or "all").
Input
| Field | Default | Notes |
|---|---|---|
recipients | [] | Partial recipient names (USAspending recipient search). "Lockheed" also matches Sikorsky, a Lockheed subsidiary |
agencies | ["Department of Defense"] | Top-tier awarding agency names or abbreviations (DOD, VA, GSA, HHS, DHS, NASA, DOE, DOT). Resolved against USAspending's agency list; "Veterans" → Department of Veterans Affairs. Empty = all agencies |
naicsCodes | [] | 2–6 digit NAICS, prefixes allowed (54 = all professional services) |
pscCodes | [] | Product/Service Codes, prefixes allowed (D = IT services, R4 = professional support, 70 = IT equipment) |
keywords | [] | Terms matched in the award description |
awardTypes | ["contracts"] | Group names or raw codes, see below |
minAmount | 0 | Skip awards obligated below this amount |
lookbackDays | 7 | Awards with a transaction dated within N days |
includeDetails | true | One extra request per emitted award for UEI, location, obligation, PoP, parent IDV |
maxNewPerFilter | 10 | Cap per watch item and award group; the rest stays unseen for the next run |
maxItems | 10 | Overall cap per run |
firstRunMode | emitAll | emitAll reports every current match on the first run; baseline records them silently |
webhookUrl | "" | Optional POST target for the run summary |
monitorId | default | One state store per ID — run several watchlists side by side |
Award type codes
USAspending only allows one group per query; the monitor runs each requested group separately.
| Group | Codes |
|---|---|
contracts | A BPA call · B purchase order · C delivery order · D definitive contract |
grants | 02 block grant · 03 formula grant · 04 project grant · 05 cooperative agreement |
loans | 07 direct loan · 08 guaranteed / insured loan |
idvs | IDV_A GWAC · IDV_B IDC (multi-agency / other) · IDV_B_A requirements · IDV_B_B IDIQ · IDV_B_C definite quantity · IDV_C FSS · IDV_D BOA · IDV_E BPA |
Reporting lag
Agencies report to USAspending after the fact. Civilian agencies usually appear within a few days to 30 days;
the Department of Defense delays contract data by about 90 days, so a 7-day DoD window shows only a trickle
(mostly modifications). For DoD watchlists use lookbackDays: 30–120; the seen-state keeps the feed free of
duplicates regardless of how wide the window is.
Recommended setup for a daily feed
- Create a task with your filters and set
monitorIdto something meaningful (competitors-it). - First run: set
firstRunModetobaselineandlookbackDaysto 90. This records everything currently matching, emits nothing, and stops your first day from being a 2,000-row backlog. - Switch
firstRunModeback toemitAll(it only matters when the state is empty anyway), keeplookbackDayswide (30 civilian, 120 DoD) and raisemaxNewPerFilter/maxItemsto 200+. - Schedule the task daily. USAspending loads new agency submissions overnight (US time), so a run at 06:00–08:00 America/New_York catches the previous day's load.
- Point
webhookUrlat Slack (incoming webhook), Zapier, Make, or your own endpoint.
The default settings ({}) run in emitAll mode on Department of Defense contracts so you see real output on
the first try.
Example: competitor and NAICS watch for an IT services firm
{"recipients": ["Booz Allen", "Leidos", "Guidehouse"],"naicsCodes": ["541512", "541519"],"pscCodes": ["D"],"agencies": ["HHS", "VA", "DHS"],"awardTypes": ["contracts", "idvs"],"minAmount": 250000,"lookbackDays": 30,"maxNewPerFilter": 100,"maxItems": 500,"firstRunMode": "baseline","webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ","monitorId": "it-competitors-civilian"}
Other quick profiles:
- Construction subcontracting in one agency:
naicsCodes: ["236220", "237310"],agencies: ["Department of Veterans Affairs", "General Services Administration"] - Research grants by topic:
awardTypes: ["grants"],keywords: ["quantum", "photonics"],agencies: [] - New IDIQ vehicles government-wide:
awardTypes: ["idvs"],agencies: [],minAmount: 10000000
Output
One record per new or modified award:
{"awardId": "N0002424F8580","piid": "N0002424F8580","fain": null,"generatedInternalId": "CONT_AWD_N0002424F8580_9700_N0002417D6421_9700","awardCategory": "contracts","awardType": "DELIVERY ORDER","recipientName": "UNIVERSITY OF TEXAS AT AUSTIN","recipientUei": "MG1PPMPNS9G3","recipientLocation": { "city": "AUSTIN", "state": "TX", "zip": "78758", "country": "UNITED STATES" },"awardAmount": 146250,"totalObligation": 146250,"description": "TIME FREQUENCY ENHANCEMENT OF GNSS MONITOR STATIONS","naicsCode": "541712","naicsDescription": "RESEARCH AND DEVELOPMENT IN THE PHYSICAL, ENGINEERING, AND LIFE SCIENCES (EXCEPT BIOTECHNOLOGY)","pscCode": "AC32","pscDescription": "NATIONAL DEFENSE R&D SERVICES; DEFENSE-RELATED ACTIVITIES; APPLIED RESEARCH","cfdaNumber": null,"awardingAgency": "Department of Defense","awardingSubAgency": "Department of the Navy","fundingAgency": "Department of Transportation","fundingSubAgency": "Immediate Office of the Secretary of Transportation","dateSigned": "2024-09-12","startDate": "2024-09-12","endDate": "2027-09-30","periodOfPerformanceEnd": "2027-09-30","lastModifiedDate": "2026-09-25 14:33:49","placeOfPerformanceState": "TX","placeOfPerformanceCity": "AUSTIN","parentAwardId": "N0002417D6421","usaspendingUrl": "https://www.usaspending.gov/award/CONT_AWD_N0002424F8580_9700_N0002417D6421_9700","matchedFilter": "agency:Department of Defense","changeType": "new","previousAmount": null,"firstSeenAt": "2026-09-28T21:47:59.037Z","monitorId": "default"}
awardId is the PIID for contracts and IDVs and the FAIN for grants and loans. awardAmount is the obligated
amount (loan value for loans). firstSeenAt is set on new records; updated records carry previousAmount
instead. Grants and loans have no NAICS/PSC but carry cfdaNumber. With includeDetails: false the
detail-only fields (recipientUei, recipientLocation, totalObligation, dateSigned,
periodOfPerformanceEnd, placeOfPerformanceCity, parentAwardId) are null.
Webhook payload
POSTed once per run as application/json, also saved as the SUMMARY record in the run's key-value store:
{"monitorId": "it-competitors-civilian","runAt": "2026-09-29T11:00:03.118Z","newCount": 7,"updatedCount": 2,"scanned": 412,"seenTotal": 1830,"baseline": false,"awards": [ { "...first 50 records, same shape as the dataset..." } ]}
The full list is always in the run's dataset; use the Apify API or an integration to pull it if a run produces more than 50.
Pricing
Pay per event: a small start fee plus a per-award fee only for records emitted. A daily monitor that finds nothing new costs just the start fee.
Notes
- A watch item scans at most 3,000 awards per group per run (newest-modified first). Narrow the filters or shorten the lookback if a profile exceeds that.
- Agency names must be top-tier departments; sub-agencies (Navy, NIH, FEMA) are not accepted as filters but
appear in
awardingSubAgencyon every record. - Recipient search is USAspending's own name search, so it also returns subsidiaries and DBAs.
- Data comes from USAspending.gov's public API and is limited to transactions since FY2008.