Grants Gov Scraper
Pricing
from $10.00 / 1,000 results
Grants Gov Scraper
Scrape US federal grant opportunities from Grants.gov: full funding amounts, eligibility, agency contact, and attachments - by keyword, agency, or opportunity number. The only Grants.gov Actor with a real per-revision change log showing exactly what changed on a listing.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share

ποΈ Grants.gov Scraper
Get real US federal grant opportunity data from Grants.gov, no login needed: full funding amounts, eligibility, agency contact, attachments, and a real per-revision change log showing exactly what changed on a listing.
Search the live opportunity board, look up specific opportunities by number, or monitor for new postings on a schedule.
π― Who uses it?
π Universities & nonprofits
Track new funding opportunities by category, agency, or eligibility as soon as they post.
βοΈ Grant-writing consultancies
Build a filtered, always-current feed for clients in a specific field: health, education, research, or rural development.
π Compliance & deadline trackers
Catch a due-date push or an eligibility rewrite on an opportunity you're already tracking, straight from the real per-revision change log.
π Federal funding researchers
Analyze award ceilings, funding instruments, and agency spending patterns across a whole funding category.
β¨ What it does
Reads Grants.gov's own public data directly and normalizes it into clean, flat rows.
- Search: filters the live opportunity board by keyword, agency, funding category, funding instrument, eligibility, status (forecasted, posted, closed, archived), and posted-date range.
- Lookup: fetches specific opportunities by their public opportunity number.
- Monitor: returns opportunities posted since a given date, built to run on a schedule and catch new opportunities as they're published.
Every row can include full funding amounts (estimated total, award ceiling and floor, award count), eligibility text and applicant-type codes, agency contact info, attachment metadata, and exactly which fields changed in the opportunity's most recent revision. Missing source values are returned as null, never invented.
π Why this scraper
- A real per-revision change log, not just a bare listing. Grants.gov's own data tracks exactly which fields changed each time an opportunity is revised: a due-date push, an eligibility rewrite, a funding-amount update. This Actor surfaces that directly. No other Grants.gov actor on Apify does.
- Full depth by default, not an expensive add-on. The strongest existing competitor requires an extra toggle just to get funding amounts, eligibility, and contact info at all.
- Real filters that actually filter. Every filter this Actor exposes was checked directly against live results, including catching that Grants.gov's own posted-date filters are silently ignored server-side, so this Actor applies that filter itself instead of shipping a broken one.
- No API key, no login, no browser.
βοΈ How it compares
Checked directly against the real Grants.gov actors on Apify (their own declared input and output):
| Capability | This actor | Strongest competitor (full depth) | Bulk-extract competitor (metadata only) |
|---|---|---|---|
| Funding amounts, eligibility, contact by default | yes | only with an extra toggle | no |
| Real per-revision change log (what changed, not just that something did) | yes | no | no |
| Attachment metadata (announcement documents) | yes | yes | no |
| A working posted-date filter | yes | claimed, not verified to work | n/a |
| Monitor mode (new opportunities on a schedule) | yes | no | no |
π¦ What data you get
| Entity | Useful fields |
|---|---|
| Opportunity | ID, number, title, status, agency, top-level agency, and URL. |
| Dates | Posted date, response deadline, whether the deadline is only estimated, and archive date. |
| Funding | Estimated total funding, award ceiling and floor, and number of awards. |
| Eligibility | Who can apply, both as text and as coded applicant types. |
| Classification | Funding instruments, funding categories, and assistance listings, each with its own real description. |
| Contact & attachments | Agency contact name, email, and phone, plus real announcement document metadata. |
| Change tracking | Total revisions, and exactly which fields changed most recently. |
π‘ Use cases
π Search by keyword
{ "mode": "search", "keyword": "rural broadband" }
π’ Search by agency and category
{ "mode": "search", "agencies": ["HHS-OPHS"], "fundingCategories": ["HL"] }
π Look up specific opportunities
{ "mode": "lookup", "opportunityNumbers": ["PA-FPH-27-001"] }
π Monitor new postings daily
{ "mode": "monitor", "postedSince": "1 day", "fundingCategories": ["ED"] }
βοΈ How the input is organised
The input form is split into four sections:
| Section | What it's for |
|---|---|
| Mode | Pick Search, Lookup, or Monitor, plus the row cap for the run. |
| Search / Monitor mode | Keyword, agency, funding category and instrument, eligibility, status, posted-date range, and whether to fetch full details. |
| Lookup mode | The exact opportunity numbers to fetch. |
| Monitor mode | The posted-since date or relative window for a scheduled run. |
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
π° Pricing
Pay-per-event: a one-time 0.003 when the run starts, plus a price per result saved to your dataset. The price depends on your Apify plan tier:
| Your Apify plan | Price per result |
|---|---|
| Free | 0.0211 |
| Bronze | 0.0158 |
| Silver | 0.0132 |
| Gold / Platinum / Diamond | 0.01 |
Approximate total cost (includes the 0.003 start fee):
| Results collected | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| 100 | $2.11 | $1.58 | $1.32 | $1.00 |
| 1,000 | $21.10 | $15.80 | $13.20 | $10.00 |
| 10,000 | $211.00 | $158.00 | $132.00 | $100.00 |
New Apify accounts start with $5 in free credit.
π Run it
- Create a free Apify account with $5 in credit.
- Open the Grants Gov Scraper.
- Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.
π€ Use with AI agents (MCP)
Give an AI agent live access to the Grants Gov Scraper through the Model Context Protocol:
claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/grants-gov-scraper"
Then prompt it in plain language to run the scraper and read back the results.
π§ Troubleshooting
An opportunity number returned an error: "not found" row.
Check the number as shown on Grants.gov (e.g. HHS-2025-ACF-...). The row is kept so your output matches your input.
The deadline or amount looks provisional.
Forecasted opportunities carry deadline_is_estimated: true, Grants.gov's own estimates until the opportunity is posted.
My search returned 0 results. Filters combine with AND. Remove eligibility or instrument type first, and check the opportunity status filter.
β FAQ
| Question | Answer |
|---|---|
| Can I catch new grants as they're posted? | Yes, Monitor mode with "Posted since", run on a schedule. |
| Does it include eligibility and contacts? | Yes, with "Fetch full details" on. |
| Does it track changes? | Yes, a per-revision change log shows what changed between versions. |
| Do I need an API key? | No. |
π‘οΈ Limits & responsible use
This Actor reads only Grants.gov's own public data. It never signs in and never accesses anything gated behind an account.
An unresolved lookup number still writes one error: "not found" row rather than failing the whole run. A forecasted opportunity carries deadline_is_estimated: true, since its deadline, funding amount, and eligibility are Grants.gov's own real estimates ahead of the formal posting; look it up again once the real solicitation posts for the confirmed figures. Monitor mode catches new postings reliably, but there is no working modified-date sort to walk from for older opportunities that were recently revised; every row in any mode still carries its own latest change log, so a tracked opportunity's revision is never hidden.
Read live from Grants.gov on every run. It is not cached.
Is this an official Grants.gov tool? No. Independent, not affiliated with Grants.gov or the US government. It reads only publicly available data.
π§ Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
π§ͺ Local development
bun installbun test # offline: normalization, input parsing (real fixtures)bun run src/main.ts # reads storage/key_value_stores/default/INPUT.json