US Federal Contract Award Monitor
Get alerted the moment a new US federal award matching your business is posted. Filter by NAICS, agency, recipient company and amount; alerts only on...
Get alerted the moment a new US federal award matching your business is posted. Filter by NAICS, agency, recipient company and amount; alerts only on never-seen awards via the official USAspending API. Organization-level data, no individuals. Official USAspending data, no personal data.
$3.00 / 1,000 · 88.9% success over 27 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
awardTypes |
array | Which kinds of federal award to monitor. Default: contracts (the procurement awards most competitive-intel buyers watch). | ["contracts"] |
keywords |
array | Alert on awards whose description, recipient or industry label contains ANY of these words (case-insensitive). Example: ["cybersecurity", "cloud"]. Leave empty to match everything and filter by NAICS, agency or recipient instead. | [] |
naicsCodes |
array | Industry codes, 2-6 digits. Filters the USAspending query server-side. Example: ["541512", "541519"]. Combined with pscCodes this narrows rather than widens: an award must match both lists. | ["541512"] |
pscCodes |
array | Product Service Codes, e.g. ["D310", "R425"]. USAspending applies NAICS and PSC together, so setting both narrows to awards matching a code in each list - set only one to widen. | [] |
agencies |
array | Only awards from these top-tier awarding agencies (exact agency name). Example: ["Department of Defense", "Department of Veterans Affairs"]. | [] |
recipients |
array | Only awards to recipients matching these names - watch specific competitors or partners. Example: ["Booz Allen", "Leidos"]. Matches the recipient name. | [] |
states |
array | Two-letter US state codes for where the work is performed, e.g. ["TX", "VA"]. Empty = whole country. | [] |
minAmountUsd |
integer | Only alert on awards of at least this many dollars. Awards without a published amount always pass. | - |
lookbackDays |
integer | How many days of already-posted awards the FIRST run of a profile loads as its baseline. Later runs automatically continue from the previous run with one day of overlap - re-alerting a seen award is impossible. | 7 |
alertOn |
string | "new" alerts once per award. "new-and-updated" also alerts when a seen award is modified (marked isUpdate: true), e.g. a new obligation or amount change. | new |
emitBaseline |
boolean | On the very first run of a profile, push the currently matching awards (flagged isBaseline: true, charged at the lower baseline price). Turn off to seed silently and only ever receive new alerts. | True |
resetState |
boolean | Discard this profile's memory of already-seen awards and start over with a fresh baseline run. One-shot switch: turn it back off afterwards. | False |
maxItems |
integer | Upper bound on items pushed per run (baseline or alerts). On an alert run, matches beyond the cap alert on the next run. On the very first (baseline) run they are recorded as already seen instead, so raise this before the first run if you need the whole baseline. | 500 |
stateStoreName |
string | Named key-value store holding the monitor's seen-award memory. Only change this to run fully isolated monitor instances. | usa-award-monitor-state |
reportFailures |
boolean | When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. | True |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
A real result row from a recent run:
{
"amountUsd": 52500,
"awardId": "36C26126P0072",
"awardingAgency": "Department of Veterans Affairs",
"awardingSubAgency": "Department of Veterans Affairs",
"description": "VETERAN TOWN HALL PLATFORM SERVICES FOR VA CENTRAL CALIFORNIA HEALTHCARE SYSTEM (VACCHCS).",
"endDate": "2027-10-14",
"isBaseline": false,
"isUpdate": false,
"lastModifiedDate": "2026-10-09",
"naicsCode": "541512",
"naicsDescription": "COMPUTER SYSTEMS DESIGN SERVICES",
"placeState": "CO",
"pscCode": "R426",
"recipientName": "EASIER COMMUNICATIONS, LLC.",
"startDate": "2025-10-15",
"url": "https://www.usaspending.gov/award/CONT_AWD_36C26126P0072_3600_-NONE-_-NONE-"
}
| Field | Type | Meaning |
|---|---|---|
awardId |
string | The award's PIID / FAIN identifier. |
recipientName |
string | The winning organization. Organization-level data. |
amountUsd |
number | USAspending's award amount: the money obligated so far, not the contract ceiling. A large IDIQ with little drawn down therefore reads small here, and minAmountUsd filters on this number. |
awardingAgency |
string | Top-tier awarding agency. |
awardingSubAgency |
string | Awarding sub-agency where provided. |
awardType |
string | The award's type label. |
naicsCode |
string | NAICS industry code. Reusable as the naicsCodes input. |
naicsDescription |
string | NAICS industry description. |
pscCode |
string | Product Service Code. |
startDate |
string | Period-of-performance start date, YYYY-MM-DD. |
endDate |
string | Period-of-performance end date, YYYY-MM-DD. |
lastModifiedDate |
string | Date the award record was last modified, YYYY-MM-DD. |
placeState |
string | Place-of-performance state, two-letter code. |
description |
string | Award description as published. |
url |
string | Link to the award on USAspending.gov. |
isBaseline |
boolean | True on items from a profile's first run (the recent baseline). False on real new-award alerts. |
isUpdate |
boolean | True when the alert is a modification of an already-seen award (alertOn: new-and-updated). |
Health
88.9% success over 27 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.