Grants.gov Scraper - Federal Grants avatar

Grants.gov Scraper - Federal Grants

Pricing

from $1.40 / 1,000 opportunities

Go to Apify Store
Grants.gov Scraper - Federal Grants

Grants.gov Scraper - Federal Grants

Grants.gov search returns a title, an agency and a date. Award size, whether you must match funds, and who may actually apply live on a second endpoint that nothing on the store joins up. This does, and its deadline radar correctly excludes forecasts, which have no closing date yet by design.

Pricing

from $1.40 / 1,000 opportunities

Rating

0.0

(0)

Developer

Datalayer

Datalayer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Categories

Share

Grants.gov Scraper — Federal Grant Opportunities

Scrape every US federal grant opportunity from Grants.gov, joined to the detail endpoint the search results hide.

The search gives you a title, an agency and a closing date. Everything that decides whether an application is worth two weeks of work — how large the award is, whether you must put up matching funds, who is actually eligible — lives on a second endpoint, one request per opportunity. Nothing on the store joins the two.

What you get that a search wrapper cannot give you

The award range. awardCeiling and awardFloor: the largest and smallest single award the agency will make. This is the size signal — but coverage varies sharply by agency, so read the honest numbers below before relying on it.

The cost-share flag. requiresCostSharing — you must supply matching funds. The most reliably published field on the detail endpoint, and for a small nonprofit it single-handedly decides whether a programme is reachable. It is not in the search results at all.

Decoded eligibility. The search filter takes numeric codes (25, 12, 20). The output gives you plain English — "Private institutions of higher education", "County governments" — plus the agency's own eligibility narrative, which usually narrows things further than the codes suggest.

A closing-soon radar that understands forecasts. A forecasted opportunity has an empty close date, because the deadline does not exist yet. Treating that as a date puts every forecast at the top of a deadline list. Here they are flagged hasNoDeadlineYet and kept off the radar — while still being returned, because a forecast is early warning a competitor watching only posted opportunities will miss.

The programme contact. Name and email of the person to ask before you write anything.

An honest note on award size

An earlier version of this actor led on average award — estimated funding divided by expected number of awards. Then it got measured:

FieldSpread across 39 agenciesDefault run (NIH-heavy)
costSharing100%92%
awardCeiling80%30%
awardFloor76%13%
estimatedFunding38%
expectedNumberOfAwards0%0%

Both measured 2026-08-16: 66 opportunities sampled across 39 agencies, and 100 enriched on a default run.

Two things follow, and neither is hidden here:

  1. expectedNumberOfAwards is populated on nothing, so an average award is not computable. The field is still returned and will populate if agencies start filing it, but it is null today. Use awardCeiling and awardFloor.
  2. Ceiling coverage depends heavily on which agencies you pull. A broad sweep across 39 agencies publishes ceilings 80% of the time; an NIH-dominated default run only 30%. NIH rarely publishes them. If award size matters to you, filter by agency and check opportunitiesWithAwardRange in the summary before drawing conclusions.

Who uses this

  • Nonprofits and universities — building a deadline pipeline instead of checking a website.
  • Small businesses chasing SBIR/STTR — filtering to programmes they can actually win, at a size worth the effort.
  • Grant consultants — watching named agencies for new programmes.
  • Anyone already using our USAspending actor — this is money going out; that one is money already spent. cfdaNumbers joins them.

Input

FieldTypeDefaultNotes
keywordstring""Free text across titles and descriptions
statusesarray["posted","forecasted"]Open now, plus announced-but-not-open
closingWindowDaysinteger30What counts as closing soon
closingSoonOnlybooleanfalseDrop rows outside the window
agenciesarray[]Agency codes, e.g. HHS-NIH, USDA-NIFA
eligibilitiesarray[]Applicant-type codes, e.g. 25, 12
fundingCategoriesarray[]e.g. HL health, ED education
minAwardCeilinginteger0Drops rows with no published ceiling
excludeCostSharingbooleanfalseDrop programmes needing matching funds
enrichbooleantrueThe second request. Off = titles only
maxEnrichedinteger100Runs deadline-first, so a capped run enriches what matters

Agency summaries are always built from everything collected, even with a filter on — otherwise the funding totals would describe your filter rather than the agency.

Output

opportunitytitle, agency, status, closeDate, daysUntilClose, isForecast, awardCeiling, awardFloor, estimatedTotalFunding, requiresCostSharing, applicantTypes, eligibilitySummary, agencyContactEmail, cfdaNumbers, opportunityUrl.

closing_soon — the deadline-driven subset, soonest first.

agency_summaryopportunities, forecasts, closingSoon, soonestCloseDate, totalFundingAdvertised, medianAwardCeiling, largestAwardCeiling, opportunitiesWithAwardRange, opportunitiesRequiringCostShare, topApplicantTypes.

Reliability

  • awardCeiling arrives as the literal string "none" when absent. Number("none") is NaN and if (awardCeiling) passes on it, so a naive parse silently emits NaN. Resolved to null here.
  • Dates are MM/DD/YYYY, converted to ISO.
  • isEnriched tells you whether the detail fields are absent because the cap was reached or because the agency did not publish them. Those are different.
  • One opportunity failing to enrich never costs the run.

Pricing

Pay per event. $0.002 per opportunity, $0.01 per closing-soon row, $0.05 per agency summary.