Grants.gov Scraper - US Federal Grant Opportunities avatar

Grants.gov Scraper - US Federal Grant Opportunities

Pricing

from $4.00 / 1,000 grants

Go to Apify Store
Grants.gov Scraper - US Federal Grant Opportunities

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

Phupatchara Treenuson

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

FieldMeaning
keywordsReturn grants matching any of these in the title or CFDA/opportunity numbers
excludedKeywordsDrop grants mentioning any of these
statusesposted, forecasted, closed, archived. Default posted
agenciesAgency codes to restrict to, e.g. EPA, DOI, HHS
onlyNewReturn only grants not seen in previous runs. Default true
includeExpiredKeep grants whose close date has passed. Default false
maxResultsCap on grants per run, and therefore on cost

How to monitor new grants daily

  1. Set keywords to your field, for example ["water"] or ["cybersecurity"]
  2. Leave onlyNew on
  3. Schedule the Actor to run each morning
  4. 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.