US Federal Grants Monitor
Alerts you when a federal funding opportunity matching your profile is posted on Grants.gov - agency, category, eligibility or keyword.
Alerts you when a federal funding opportunity matching your profile is posted on Grants.gov - agency, category, eligibility or keyword. Remembers what it has already sent, so an alert always means something new.
$19.90 / 1,000 · 100.0% success over 26 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 |
|---|---|---|---|
keywords |
array | Free-text terms searched across the opportunity. Leave empty to watch everything matching the other filters. | ["water quality"] |
agencies |
array | Grants.gov agency codes, e.g. USDA, DOD, DOC, ED, DOE. Every run logs the codes valid for your search with their counts - copy them from there rather than guessing. | - |
eligibilities |
array | Applicant-type codes, e.g. 02 for city or township governments, 25 for others. The run log lists the codes available for your search. | - |
fundingCategories |
array | Category codes such as ACA, ENV or HL. Listed in the run log for your search. | - |
fundingInstruments |
array | CA (cooperative agreement), G (grant), PC (procurement contract) or O (other). | - |
oppStatuses |
array | Which statuses to watch. Default is posted plus forecasted - the two a bidder can act on. | ["posted", "forecasted"] |
newestFirst |
boolean | Fetch newest postings first. Useful on the free plan: the 5-item cap then keeps the most recent opportunities instead of arbitrary ones. | False |
scrapeDetails |
boolean | Adds the description, award ceiling and floor, cost-sharing flag and response date. Costs one extra request per alerted opportunity, so it is off by default. Contact names, emails and phone numbers are never extracted, with or without this setting. | False |
alertOn |
string | "new" alerts only on opportunities never seen before. "new-and-updated" also alerts when a seen opportunity changes status or moves its deadline. | new |
emitBaseline |
boolean | On the very first run, push everything currently matching. Turn off to start silent and receive only what appears afterwards. | True |
maxItems |
integer | Upper bound on rows pushed in one run. Anything over the cap alerts on the next run instead. | 500 |
stateStoreName |
string | Named key-value store holding what this monitor has already seen. Use a different name to run several independent watch profiles. | grants-gov-monitor-state |
resetState |
boolean | Discard what this profile has seen and start a fresh baseline. Use after changing filters if you want the new profile re-baselined. | False |
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:
{
"agency": "Geological Survey",
"agencyCode": "DOI-USGS1",
"cfdaNumbers": [
"15.808"
],
"closeDate": "2026-11-14",
"docType": "synopsis",
"isBaseline": false,
"isUpdate": false,
"opportunityId": "364078",
"opportunityNumber": "G27AS00052",
"postedDate": "2026-10-14",
"status": "posted",
"title": "Cooperative Agreement for affiliated Partner with Northern Great Plains Cooperative Ecosystem Studies Unit",
"url": "https://www.grants.gov/search-results-detail/364078"
}
| Field | Type | Meaning |
|---|---|---|
opportunityId |
string | Grants.gov opportunity id. |
opportunityNumber |
string | The agency's own announcement number. |
title |
string | Opportunity title. |
agency |
string | Funding agency. Organization-level data. |
agencyCode |
string | Agency code. Reusable as the agencies input. |
status |
string | posted, forecasted, closed or archived. |
docType |
string | synopsis or forecast. |
postedDate |
string | Date the opportunity was posted (ISO). |
closeDate |
string | Application deadline (ISO). |
cfdaNumbers |
array | Assistance Listing (CFDA) numbers. |
url |
string | The opportunity on grants.gov. |
description |
string | Full synopsis text, HTML stripped. Only with scrapeDetails. |
awardCeilingUsd |
number | Largest award the agency expects to make. Only with scrapeDetails. |
awardFloorUsd |
number | Smallest award. Only with scrapeDetails. |
costSharingRequired |
boolean | Whether cost sharing or matching is required. Only with scrapeDetails. |
responseDate |
string | Response deadline from the synopsis (ISO). Only with scrapeDetails. |
archiveDate |
string | Date the listing is archived (ISO). Only with scrapeDetails. |
isBaseline |
boolean | True for rows from the first (baseline) run. |
isUpdate |
boolean | True when an already-seen opportunity changed status or deadline. |
Health
100.0% success over 26 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.