Grants.gov Funding Opportunity Alerts avatar

Grants.gov Funding Opportunity Alerts

Pricing

from $2.50 / 1,000 funding opportunity returneds

Go to Apify Store
Grants.gov Funding Opportunity Alerts

Grants.gov Funding Opportunity Alerts

Get new US federal grant and funding opportunities from Grants.gov by keyword, agency, eligibility or status, with a true monitoring mode that only returns and bills for opportunities new since your last run. Alerts to Slack, Discord or Telegram. Export federal grants to Google Sheets or n8n.

Pricing

from $2.50 / 1,000 funding opportunity returneds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Get new US federal grant and funding opportunities from Grants.gov by keyword, agency, eligibility, or status, as soon as they're posted. Search Grants.gov — the US government's own funding opportunity system — by one or more keywords (full-text, matched against the opportunity title and description), agency code, eligibility category, or opportunity status. Turn on monitoring mode and run it on a schedule to get only the opportunities that are new since your last run, charged per opportunity and free on a quiet day.

Works without any key or account — this is a fully public, keyless JSON API (no challenge page, no rate limit observed on this build's probes). This actor covers US federal grants and funding opportunities only, via Grants.gov; it pairs with sam-gov-opportunity-alerts (US federal procurement contracts, a separate system) as the two halves of the US federal funding/contracting radar. It does not cover EU tenders (see eu-tender-alerts) or UK tenders.

Known limitation. A re-published or amended Grants.gov notice keeps its original numeric id, so monitoring mode will not alert again on a revision to a notice you've already seen — only a genuinely new opportunity id triggers a new alert. Also, when you give more than one agencies or eligibilities code, only the first is sent to Grants.gov's server-side filter (its multi-value syntax for those two fields is unverified) — run one search per code for a true OR across several agencies or eligibility categories.

How to use

  1. In the Apify Console. Open the actor page and click Start — the keywords field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~grants-gov-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"keywords":["climate"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"keywords": [
"climate"
]
}

Optional. One keyword per line — matched against the opportunity title and description (Grants.gov's own full-text search, OR-ish: several keywords widen the match, not narrow it). Leave empty to search by agency, eligibility or status alone. Accepted formats: climate, cybersecurity.

One combined search runs per call: keywords are OR-ish (Grants.gov's own full-text search — more keywords widen the match, they don't narrow it), optionally narrowed by oppStatuses (default posted|forecasted), agencies, eligibilities, and postedWithinDays. None of the fields are required — leaving keywords empty searches by status/agency/eligibility alone (e.g. "every newly posted grant from NSF"). oppStatuses, agencies (first code only) and eligibilities (first code only) are applied server-side, confirmed live this build (see "Current status" below); the date window is applied client-side. The search run itself is free; you're billed per opportunity actually returned.

Current status (as probed/built 2026-10-03/04)

  • sortBy=openDate|desc: server-side, confirmed (results come back genuinely newest-first).
  • agencies: server-side, confirmed with one code (NSF: hitCount 44 → 2, both rows agency NSF). Multi-code syntax unverified — only the first code in your list is sent.
  • eligibilities: server-side, confirmed with one code (12: hitCount 44 → 7). Same multi-code caveat as agencies.
  • oppStatuses: server-side, confirmed by arithmetic (hitCount 44 for "climate" with no other filter equals the posted(36)+forecasted(8) facet counts for that keyword).
  • postedWithinDays: client-side (no documented server-side date-range filter on this route).
  • robots.txt (www.grants.gov/robots.txt): Allow: / for all user agents — nothing disallowed.

Output

One row per item, for example:

queryfoundstatussearchSummaryopportunityCountopportunitiesidopportunityNumbertitleagencyCodeagencyopenDatecloseDateoppStatusdocTypecfdaurlmatchedKeywordisNewfirstSeenAtscrapedAt
climatetrueOK<all opportunities (full list)> <agency code><grants.gov notice page><matched keyword (best effort)><is this opportunity new?>1970-01-01T00:00:00.000Z

A miss comes back as a row with "found": false and is never charged.

Pricing

  • Funding opportunity returned: $5 per 1,000 opportunitys

Plus a $0.0015 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.

Example runs

Paste any of these into the Input tab and press Start. All three return rows with no key, no token needed beyond your own Apify API token — Grants.gov's search is fully keyless:

  1. {"keywords":["climate"],"oppStatuses":"posted|forecasted","postedWithinDays":30,"maxResults":10} — climate funding, posted or forecasted, last 30 days. Live-verified this build (see "Live call" below).
  2. {"keywords":["research"],"onlyNewSinceLastRun":true,"deltaName":"research-grants"} — a funding alert: only opportunities new since the last run, named so a schedule can be told apart from another search.
  3. {"agencies":["NSF"],"eligibilities":["12"],"postedWithinDays":14} — National Science Foundation opportunities open to 501(c)(3) nonprofits, last 2 weeks. Both filters confirmed server-side this build (see "Current status" above).

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~grants-gov-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"keywords":["climate"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~grants-gov-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"keywords":["climate"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~grants-gov-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"keywords":["{{search}}"]}, mapping the row's search into the keywords array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Grants.gov funding opportunity alerts by keyword" — the agent will find and run this actor.