US Federal Contract Award Monitor
Pricing
from $1.60 / 1,000 baseline awards
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 never-seen awards via the official USAspending API. Organization-level data, no individuals.
Pricing
from $1.60 / 1,000 baseline awards
Rating
0.0
(0)
Developer
Lowland Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Watches US federal spending for newly posted awards matching your profile — NAICS industry, agency, recipient company, place of performance, minimum amount. It alerts the moment a matching award is published, and it remembers what it has already told you — so an alert always means a genuinely new award, never a re-scrape of last week's list.
It reads the official USAspending.gov API (the congressionally-mandated federal spending transparency source), and the output is organization-level by nature: winning company, amount, agency, industry — no individuals. Safe to store, share with your capture team, or import into a CRM.
This is the award side of federal procurement — who won. Its sibling, the US RFP Monitor, watches the opportunity side — what is being bid. Run both for the full pipeline.
Quick start (30 seconds, no account keys needed)
- Run the actor with the prefilled input (federal contracts, last 7 days) — it finishes in a few seconds and shows a baseline of recent awards.
- Replace the demo profile with your own: your NAICS codes, agencies, or the competitor companies you want to track.
- Add a daily schedule (Actor page → Schedule). From then on, runs are quiet until a matching award is actually posted.
Who uses this
- A federal contractor's capture team monitors
naicsCodes: ["541512"]in its lane — every new IT-services award shows which competitor won, at what value, from which agency, the week it posts. - A subcontractor watches
recipients: ["Booz Allen", "Leidos"]— when a prime it partners with lands a big award, that is a teaming call to make now. - A market analyst tracks
naicsCodes+minAmountUsd: 1000000across agencies as a demand signal — the baseline plus daily deltas is a clean time series of who is spending on what. - A GovCon BD lead pairs this with the RFP monitor: opportunities in, awards out, one federal pipeline.
- A supplier watches
agencies: ["Department of Veterans Affairs"]+ keywords for its product category to find newly funded programs to sell into.
What you get
One JSON item per event: a baseline snapshot per award on the first run, then only transitions — newly posted matching awards, and (opt-in) modifications to awards you have already seen. A new-award alert looks like:
{"awardId": "36C10B18N0003","recipientName": "Example Systems, Inc.","amountUsd": 1511268,"awardingAgency": "Department of Veterans Affairs","awardingSubAgency": "Veterans Health Administration","awardType": "DEFINITIVE CONTRACT","naicsCode": "541512","naicsDescription": "COMPUTER SYSTEMS DESIGN SERVICES","pscCode": "D310","startDate": "2026-07-14","endDate": "2031-07-13","lastModifiedDate": "2026-07-16","placeState": "TX","description": "Enterprise IT modernization and cloud migration services","url": "https://www.usaspending.gov/award/CONT_AWD_36C10B18N0003_1443_-NONE-_-NONE-","isBaseline": false,"isUpdate": false}
Field honesty notes:
recipientNameis the awardee organization as the government publishes it. Federal awards are government-to-organization records — there are no contact persons in this data.amountUsdis the current award amount; federal awards get modified over time (obligations added), which is whatalertOn: "new-and-updated"surfaces.naicsCode/pscCodeare reusable directly as your input filters.- Awards post with a lag after the action date — the monitor alerts when USAspending publishes the record, as fast as official data allows.
How much does award monitoring cost?
Pay per outcome — checking costs nothing; you pay when the monitor tells you something new:
- New matching award (the alert): $0.02 — also for modification alerts.
- Baseline item (first run only): $0.002.
- Actor start: $0.005. Everything included - no separate platform-usage charges, and higher Apify plans get automatic unit-price discounts.
Cost feel: a focused NAICS profile sees a handful of new awards per working day → roughly $2–8/month for complete coverage, with the one-time baseline (say 100 awards) costing about $0.20. A run with zero new matches costs $0.005 all-in. GovCon intel platforms (GovWin, BGov) charge thousands per year.
Why an alert costs more than a scraped row
The store's headline ("from $2.00 / 1,000 baseline results") is what a trial costs: a 100-award baseline ≈ $0.20. Apify displays every event per 1,000, so the alert reads "$20.00 / 1,000" next to raw scrapers at $1–3 per 1,000 rows — but that is a different thing:
- A raw scraper sells rows: to monitor with rows you re-download the federal award feed every day and diff it yourself.
- This monitor sells the transition: it remembers state in your account and charges $0.02 exactly when an award you have not seen matches your profile. Nobody buys 1,000 alerts a month.
Not technical? Let your AI assistant set it up
Paste this prompt with a line about your business:
Set up the Apify actor lowlanddata/usa-federal-award-monitor to watch US federalawards for me. Build the input JSON from my business description:- awardTypes: usually ["contracts"]; add "grants" if I chase grants- naicsCodes: the NAICS codes for my industry (e.g. ["541512"] for IT services)- agencies: specific agencies if I named any (e.g. ["Department of Defense"])- recipients: competitor or partner companies to track, if I named any- minAmountUsd: only if I gave a minimum deal sizeLeave alertOn, emitBaseline and maxItems at their defaults. Run it once and showme the baseline as a table (recipient, amount, agency, industry, state, startdate). Then create a daily schedule and set up a notification so I get an emailwhen a run produces items.
Coverage — measured, not promised
- Source: the official USAspending.gov award-search API, keyless. Covers all federal award types (contracts, grants, IDVs, loans, direct payments) government- wide.
- Awards appear on USAspending with a lag after the action date (the federal reporting cycle); the monitor is as current as the official data.
- Server-side filters (award type, NAICS, PSC, agency, recipient, state) run in the API query; keywords and the amount floor run client-side.
- A profile broader than ~5,000 awards per run is truncated honestly (the run status says so) — narrow it.
How the monitor thinks
- First run = baseline. It fetches your profile's matches from the last
lookbackDays(default 7), pushes them flaggedisBaseline: trueat the low baseline price, and memorizes them.emitBaseline: falseseeds silently. - After that, only transitions. Each run continues from the previous run (one
day of overlap; the memory absorbs duplicates) and pushes only awards it has
never alerted. Modifications alert as
isUpdate: truewhenalertOn: "new-and-updated"; with the default they stay silent but are remembered. - Editing the profile starts a fresh baseline — matching-relevant inputs are the profile's identity, so a changed profile can never flood you with alerts computed against another profile's memory.
- Memory lives in a named key-value store (
stateStoreName, defaultusa-award-monitor-state) in your account. Run several profiles on separate schedules against the same store — they never interfere.resetState: truewipes the current profile's memory. - Re-running after a crash or overlap re-alerts at most the last few unsaved items — state is checkpointed during the run.
Input reference
| Field | Type | Default | Notes |
|---|---|---|---|
awardTypes | array | ["contracts"] | Also: grants, idvs, loans, direct-payments. |
keywords | array | [] | OR, case-insensitive, over description/recipient/industry. |
naicsCodes | array | [] | 2-6 digits; server-side filter. |
pscCodes | array | [] | Product Service Codes; matches ANY NAICS or PSC. |
agencies | array | [] | Top-tier awarding agency names. |
recipients | array | [] | Recipient (company) name search. |
states | array | [] | Place-of-performance state codes. |
minAmountUsd | integer | — | Awards without an amount always pass. |
lookbackDays | integer | 7 | Baseline reach on the first run (max 90). |
alertOn | string | "new" | "new-and-updated" adds modification alerts. |
emitBaseline | boolean | true | false = silent seeding. |
resetState | boolean | false | One-shot: wipe this profile's memory. |
maxItems | integer | 500 | Overflow alerts on the next run, never lost. |
stateStoreName | string | "usa-award-monitor-state" | Only change to fully isolate instances. |
Scheduling and API use
Run it daily and pair the schedule with a Monitoring alert on "dataset items > 0" to get an email exactly when an award matched.
curl -X POST \"https://api.apify.com/v2/acts/lowlanddata~usa-federal-award-monitor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"naicsCodes": ["541512"], "minAmountUsd": 1000000}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('lowlanddata/usa-federal-award-monitor').call({naicsCodes: ['541512'],agencies: ['Department of Veterans Affairs'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items); // only new awards since the last run
from apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("lowlanddata/usa-federal-award-monitor").call(run_input={"naicsCodes": ["541512"],"recipients": ["Example Corp"],})items = client.dataset(run["defaultDatasetId"]).list_items().items
Daily runs finish in well under a minute, comfortably inside the 300s sync-call wall.
Use it with AI agents (MCP)
Claude, Cursor and other MCP-capable agents can run this monitor as a tool through Apify's hosted MCP server: the agent builds the profile from a plain-language brief, runs it, and reads the awards back — no glue code.
Claude Code:
$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/usa-federal-award-monitor"
Cursor or Claude Desktop (add a custom connector / MCP server with this URL):
https://mcp.apify.com?actors=lowlanddata/usa-federal-award-monitor
Sign in with your Apify account when prompted — runs are billed to it. Setup details per client: Apify MCP docs, or start from this actor's own MCP page: apify.com/lowlanddata/usa-federal-award-monitor/api/mcp.
Prompts that work once connected:
- "Watch federal IT-services contract awards over $1M and show me this week's."
- "Which agencies awarded cybersecurity contracts to my competitors this month?"
- "Track new awards to Example Corp and alert me daily."
Is it legal to monitor federal awards?
Yes — federal spending data is public by law (the Federal Funding Accountability and Transparency Act), and USAspending.gov publishes it through an official API for exactly this reuse. No login walls, no anti-bot bypass — if the API is unreachable, the run reports it rather than fighting it. The output is organization-level federal award data by construction.
Compliance: safe to store, safe to CRM-import
The award-search endpoint returns only organization-level fields — recipient company, amount, agency, industry codes, dates, place of performance. There are no contact persons, officers, emails or phone numbers in this data, and an automated test proves no such field can reach the output. One honest nuance: a recipient can be a person-named sole proprietorship, as the government officially publishes it — we map the official recipient-name field only, never an address or contact.
FAQ
Why did my second run return nothing? Because nothing new matched — that is the product working. The first run is the baseline; afterwards you only pay for awards you have not seen.
Does the output contain individuals? No — federal award records are government-to-organization. You get the winning company, not a person.
How is this different from the RFP monitor? The RFP monitor watches opportunities (what is being solicited); this watches awards (who won). Run both for the full opportunity-to-award pipeline.
What does a modification alert mean? Federal awards get modified — obligations
added, amounts changed. With alertOn: "new-and-updated", a seen award whose
record changes alerts once as isUpdate: true.
How fresh are the alerts? As fresh as USAspending — awards post with a lag after the action date. The monitor can't be faster than the official data.
Troubleshooting
- "Coverage truncated by the per-run request budget" — the window matched more
than ~5,000 awards; narrow the profile or lower
lookbackDays. - "Monitor state record … is not readable" — the state was written by a newer
version; run once with
resetState: trueto start a fresh baseline.
Something else off? Open an issue on the actor's Issues tab — reports are read and answered.