Grants Gov Scraper avatar

Grants Gov Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Grants Gov Scraper

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

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Share

Norm Data

πŸ›οΈ 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):

CapabilityThis actorStrongest competitor (full depth)Bulk-extract competitor (metadata only)
Funding amounts, eligibility, contact by defaultyesonly with an extra toggleno
Real per-revision change log (what changed, not just that something did)yesnono
Attachment metadata (announcement documents)yesyesno
A working posted-date filteryesclaimed, not verified to workn/a
Monitor mode (new opportunities on a schedule)yesnono

πŸ“¦ What data you get

EntityUseful fields
OpportunityID, number, title, status, agency, top-level agency, and URL.
DatesPosted date, response deadline, whether the deadline is only estimated, and archive date.
FundingEstimated total funding, award ceiling and floor, and number of awards.
EligibilityWho can apply, both as text and as coded applicant types.
ClassificationFunding instruments, funding categories, and assistance listings, each with its own real description.
Contact & attachmentsAgency contact name, email, and phone, plus real announcement document metadata.
Change trackingTotal 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:

SectionWhat it's for
ModePick Search, Lookup, or Monitor, plus the row cap for the run.
Search / Monitor modeKeyword, agency, funding category and instrument, eligibility, status, posted-date range, and whether to fetch full details.
Lookup modeThe exact opportunity numbers to fetch.
Monitor modeThe 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 planPrice per result
Free0.0211
Bronze0.0158
Silver0.0132
Gold / Platinum / Diamond0.01

Approximate total cost (includes the 0.003 start fee):

Results collectedFreeBronzeSilverGold+
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

  1. Create a free Apify account with $5 in credit.
  2. Open the Grants Gov Scraper.
  3. Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
  4. 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

QuestionAnswer
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 install
bun test # offline: normalization, input parsing (real fixtures)
bun run src/main.ts # reads storage/key_value_stores/default/INPUT.json