Grants.gov Scraper: Federal Grant Opportunities Feed
Pricing
$1.50 / 1,000 grant opportunities
Grants.gov Scraper: Federal Grant Opportunities Feed
New and open U.S. federal grant opportunities from the official Grants.gov API: title, agency, deadline, award ceiling and floor, eligibility, Assistance Listings, full description. Daily feed with dedupe and filters. Not endorsed or certified by HHS.
Pricing
$1.50 / 1,000 grant opportunities
Rating
0.0
(0)
Developer
Scott Williams
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.
This Grants.gov scraper turns the official, keyless Grants.gov API into a clean daily feed of U.S. federal grant opportunities. Each record has the title, agency, posted and closing dates, award ceiling and floor, estimated total funding, expected number of awards, eligible applicants, Assistance Listing (ALN, formerly CFDA) numbers, the full description, the announcement file list and a link to the official opportunity page.
Use it as a federal grant alert for a nonprofit, university research office, city or grant consultant, to watch forecasted grants before they open, to screen opportunities by award size or applicant type, or to feed a funding calendar, CRM or spreadsheet.
What you get
- New and open federal grants: posted (open for applications) and forecasted opportunities by default; closed and archived on request.
- Only new or changed on a schedule: each opportunity is returned once, and again if its status changes (forecast to posted) or its
closing date changes (deadline extension). The memory is kept per
stateKey, so several schedules can run side by side. - Full detail (on by default): one extra API call per opportunity adds the description, eligibility text, award ceiling and floor, funding totals, forecast dates and attachments. Turn it off for a fast list of search fields only.
- Filters: keyword, agencies (a top-level code such as
HHSincludes every sub-agency;HHS-NIH11is one office), applicant types, funding categories, funding instruments (grant, cooperative agreement, procurement contract, other), ALN numbers, open-for-applications only, minimum award ceiling and minimum total funding. - Polite by design: at most 2 requests a second, back-off on 429 and 5xx responses, and an immediate stop on 403.
Input example
{"statuses": ["posted", "forecasted"],"postedWithinDays": 7,"agencies": ["HHS", "NSF"],"eligibilities": ["12", "06"],"minAwardCeiling": 100000,"openForApplicationsOnly": true,"maxItems": 500}
postedWithinDays(default 7, U.S. Eastern dates) keeps daily runs small. Set 0 for the whole list.- Eligibility codes:
12= 501(c)(3) nonprofits,06= public universities,20= private universities,23= small businesses,00= state governments. The full lists are in the input form. minAwardCeilingandminTotalFundinguse the detail fields, so they needincludeDetailson (the default).
Output example
A record from a run on 2026-10-31 (description, eligibility text and attachments shortened here):
{"source": "Grants.gov","opportunityId": "364178","opportunityNumber": "G27AS00081","title": "Cooperative Agreement for affiliated Partner with the Californian Cooperative Ecosystem Studies Unit","status": "posted","docType": "synopsis","agencyCode": "DOI-USGS1","agencyName": "Geological Survey","topAgencyCode": "DOI","topAgencyName": "Department of the Interior","postedDate": "2026-10-30","closeDate": "2026-11-30","alnNumbers": ["15.808"],"alnPrograms": ["U.S. Geological Survey Research and Data Collection"],"category": "Discretionary","fundingInstruments": ["Cooperative Agreement"],"fundingCategories": ["Science and Technology and other Research and Development"],"eligibilityText": "This financial assistance opportunity is being issued under a Cooperative Ecosystem Studies Units (C ...","description": "This Notice of Funding Opportunity (NOFO) is for a U.S. Geological Survey (USGS) National and Regional Climate ...","estimatedTotalFunding": 480000.0,"awardCeiling": 480000.0,"awardFloor": 1.0,"expectedAwards": 1,"costSharing": false,"lastUpdatedDate": "2026-10-30","attachments": [{"folder": "Full Announcement", "fileName": "G27AS00081.docx"}],"url": "https://www.grants.gov/search-results-detail/364178","detailFetched": true,"parseError": null}
sample_output.json has more full records (a posted grant, a forecast, one with the agency contact on, and one without details).
All fields: source, opportunityId, opportunityNumber, title, status, docType, agencyCode, agencyName,
topAgencyCode, topAgencyName, postedDate, closeDate, alnNumbers, alnPrograms, category, fundingInstruments,
fundingCategories, eligibleApplicants, eligibilityText, description, estimatedTotalFunding, awardCeiling,
awardFloor, expectedAwards, costSharing, fiscalYear, estimatedPostDate, estimatedCloseDate, estimatedAwardDate,
estimatedProjectStartDate, archiveDate, lastUpdatedDate, version, additionalInfoUrl, attachments, url,
detailFetched, parseError, scrapedAt, plus agencyContact when includeAgencyContact is on.
- Dates are
YYYY-MM-DD. Money is in U.S. dollars. A missing value isnull, never0. - Forecasts have no
closeDate; useestimatedCloseDateand the other estimated dates. - Agency contact:
includeAgencyContactaddsagencyContact(the grants officer or help desk the agency publishes for applicants: name, e-mail, phone). It is off by default.
Each run also writes a RUN_SUMMARY record: read, saved, skipped as already seen, filtered out, HTTP requests and why it stopped.
Price
Pay per event: $0.0015 per grant opportunity saved ($1.50 per 1,000). The Actor sets no start fee or other events. Records that could not be parsed are saved free.
Empty input {} and the prefilled input stop at 6 opportunities (the maxItems default), so they cost at most $0.009.
Raise maxItems for a full daily feed. maxItems and the run's maximum cost setting cap your spend.
FAQ and limits
- Is there a Grants.gov API key to get? No. The
search2andfetchOpportunityendpoints are public and keyless. - Why is
awardCeilingnull? The agency did not set one. That is common, and the minimum-ceiling filter drops those records. - The ALN filter: Grants.gov's documented
alnsearch field is ignored by the API, so this Actor sends the workingcfdafield. API callers may passaln(a string, comma list or array) as an alias foralnNumbers; both are merged. - Closed and archived opportunities are available, but a large archive pull is slow at 2 requests a second. Turn off details for big historical lists.
- Grants.gov sometimes republishes one opportunity under a new id; those appear as separate records.
- Source down: if Grants.gov is unreachable or keeps answering with errors and no records were saved, the run writes one free status record (
recordType: "status", not charged) instead of failing. - Nothing new: if "only new since last run" is on and every opportunity found was already delivered by an earlier run with the same
stateKey, the run writes one free status record (recordType: "status",status: "warning", message starting "Not charged: no new items since last run") instead of an empty dataset. - Invalid input: if the input cannot be used (for example an unknown status, an agency or Assistance Listing code in the wrong format, or a field of the wrong type), nothing is fetched and the run still ends SUCCEEDED with one free record
{"recordType": "status", "type": "status", "status": "error", "statusRow": true, "charged": false, "message": "Invalid input, nothing was fetched or charged: <reason>", ...}. No opportunities are charged.
Data source and attribution
Data comes from the Grants.gov search2 and fetchOpportunity APIs. This product uses the Grants.gov API but is not endorsed or
certified by the U.S. Department of Health and Human Services. Content is passed on unchanged except for formatting (HTML to plain
text, dates to ISO format). Text is complete unless you set descriptionMaxChars, which trims it and marks the cut with " ...".