Grants.gov Scraper - US Federal Grant Opportunities
Pricing
from $4.00 / 1,000 grants
Grants.gov Scraper - US Federal Grant Opportunities
Scrape US federal grant opportunities from grants.gov. Filter by keyword, agency, and status. Remembers what it already returned, so scheduled runs deliver only new grants instead of the same list every time.
Pricing
from $4.00 / 1,000 grants
Rating
0.0
(0)
Developer
Phupatchara Treenuson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Grants.gov Scraper — US Federal Grant Opportunities
Scrape US federal grant opportunities from grants.gov, the official government grant database. Filter by keyword, agency, and opportunity status. Export to JSON, CSV, or Excel.
Unlike other grants.gov scrapers, this one remembers what it already returned. Schedule it daily and you receive only the grants posted since your last run — not the same list every morning with the diffing left to you.
What this Actor does
- Scrape federal grant opportunities from the official grants.gov search API
- Get only new grants — built-in deduplication across scheduled runs
- Filter grants by keyword, so you see only funding matching your work
- Filter by agency — EPA, DOI, HHS, and any other agency code
- Include forecasted grants that are announced but not yet accepting applications
- Drop expired opportunities automatically
Who uses this
- Nonprofits and grant writers tracking new funding opportunities in their field
- Researchers monitoring agency funding calls
- Small businesses looking for federal assistance programmes
- AI agents that need federal grant data as a callable tool
Example output
{"uid": "9c4e1f70a2b83d55","source": "grants.gov","source_id": "363400","title": "Water Quality Monitoring Grant","buyer": "Environmental Protection Agency","country": "US","published": "2026-08-01","deadline": "2026-10-15","categories": ["66.419", "66.461", "EPA-R9-2026"],"url": "https://grants.gov/search-results-detail/363400"}
Input parameters
| Field | Meaning |
|---|---|
keywords | Return grants matching any of these in the title or CFDA/opportunity numbers |
excludedKeywords | Drop grants mentioning any of these |
statuses | posted, forecasted, closed, archived. Default posted |
agencies | Agency codes to restrict to, e.g. EPA, DOI, HHS |
onlyNew | Return only grants not seen in previous runs. Default true |
includeExpired | Keep grants whose close date has passed. Default false |
maxResults | Cap on grants per run, and therefore on cost |
How to monitor new grants daily
- Set
keywordsto your field, for example["water"]or["cybersecurity"] - Leave
onlyNewon - Schedule the Actor to run each morning
- Connect the dataset to email, Slack, or a webhook
Each run delivers only opportunities posted since the last one.
Behaviour worth knowing
Award amounts and descriptions are always null. grants.gov does not include them in
search results — they live on a separate detail endpoint that would require one extra
request per grant, multiplying both run time and cost. Follow the url for full details.
Grants with no close date are kept. Some opportunities publish none, and missing live funding is worse than seeing one extra row.
API errors are surfaced, not swallowed. grants.gov answers with HTTP 200 even when it rejects a request, so the Actor checks the error code in the body and logs the real reason rather than reporting "no results".
State commits only after delivery. A run that fails before pushing results re-reports them next time rather than losing them.
Seen-state is forgotten after 180 days, so stored state cannot grow without bound.
Data source
grants.gov search2 API — official, public, and free. No key or authentication required, because its purpose is to expose publicly available funding opportunities.
Pricing
Pay per event: you are charged per grant delivered. A run that finds nothing new costs
nothing beyond platform compute. Cap your spend with maxResults.
Development
python -m venv .venv./.venv/bin/pip install pytest httpx./.venv/bin/python -m pytest tests/ -q
Parsing, filtering, and deduplication are pure functions with no network access. Only
src/main.py touches the network.