Grants.gov Scraper: Federal Grant Opportunities Feed
Pricing
from $4.00 / 1,000 opportunities
Grants.gov Scraper: Federal Grant Opportunities Feed
Federal grant database from Grants.gov: grant opportunities by keyword, agency and eligibility, with full details and new grant alerts for nonprofits.
Pricing
from $4.00 / 1,000 opportunities
Rating
0.0
(0)
Developer
Final Dynamics
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Every federal grant the US government opens for applications is posted on Grants.gov, the federal grant database nonprofits, schools and local governments search. This actor pulls those opportunities for the keywords and filters you choose and gives you one row per opportunity: who is offering it, when it opens and closes, and, if you want them, the full description, the award ceiling and floor, the estimated total funding, who is eligible and the program contact. Run it on a schedule with the "new only" mode and each run delivers just the opportunities you have not seen, plus, when you read the details, any whose posting changed.
Built for grant writers and consultants watching a field, nonprofits and universities tracking their funders, city and county staff who need the opportunities open to local governments, newsletter and alert publishers, and anyone who is tired of reading the Grants.gov search page by hand every week.
What you get
One row per opportunity. Every field is flat, so the dataset drops straight into Google Sheets, Airtable or a CRM.
| Field | Example |
|---|---|
opportunityId, opportunityNumber | 363868, O-NIJ-2026-172757 |
title | NIJ FY 2026 Invited to Apply - Adolescent Brain Cognitive Development |
agencyCode, agencyName | USDOJ-OJP-NIJ, National Institute of Justice |
status, docType | posted or forecasted; synopsis or forecast |
openDate, closeDate | 2026-09-16, 2026-09-18 |
cfdaNumbers | 16.560 (Assistance Listing numbers, joined with ;) |
url | Direct link to the opportunity on Grants.gov |
isNewSinceLastRun, isUpdate | Set in the "new only" mode |
scrapedAt | UTC timestamp |
With includeDetails on, each row also carries:
| Field | Example |
|---|---|
description | The full synopsis as plain text |
awardCeilingUsd, awardFloorUsd, estimatedFundingUsd | 1900000, 0, 1900000 |
expectedAwards, costSharing | 3, false |
applicantTypes, eligibilityDescription | County governments; City or township governments, plus notes |
fundingCategories, fundingInstruments | Science and Technology and other Research and Development, Grant |
contactName, contactEmail, contactPhone | The program contact as published |
postedDate, lastUpdatedDate, version | When it was posted and last changed |
forecastPostingDate, forecastResponseDate, forecastAwardDate, forecastProjectStartDate | Estimated dates on forecasted opportunities |
detailFetchFailed | true when the details could not be read after retries; the row is still delivered and not charged for details |
Anything Grants.gov does not publish is null.
How to use it
Pick a keyword and filters, or none, and run. The default delivers everything posted in the last 7 days.
{"keyword": "rural broadband","statuses": ["posted"],"postedWithinDays": 30,"includeDetails": true,"maxResults": 200}
A weekly feed of new and changed opportunities: set postedWithinDays: 14, newOnly: true,
includeDetails: true, create a key-value store in Apify Console and select it as stateStoreId,
then schedule the task weekly. Each run delivers opportunities you have not seen, and any you have
seen whose posting changed (new close date, new funding, revised text), marked isUpdate: true.
Rows a run delivers are remembered even when it stops at maxResults or a spending cap; a run that
fails remembers nothing. Change detection reads the details of opportunities it has already
delivered to see whether they changed, so those reads are charged even when nothing is delivered.
Only what your organisation can apply for: filter by applicant type, for example
"eligibilities": ["01", "02"] for county and city governments, ["12"] for nonprofits with
501(c)(3) status, ["25"] for others. Filter by field with fundingCategories (ED education,
EN energy, HL health, AG agriculture, CD community development, ST science and technology
and so on) and by funder with agencyCodes (HHS-NIH11, USDA-NIFA, DOE-ARPAE...). The codes
are the ones Grants.gov uses in its own search; any combination works, and empty lists mean no
filter.
Forecasts too: add "forecasted" to statuses to see opportunities agencies plan to post, with
their estimated posting, response and award dates, months before they open.
Any Grants.gov search, as a table: leave the filters empty, set postedWithinDays: 0 and
maxResults to what you need. Results come newest first.
Quick start
No code needed; about two minutes from input to spreadsheet. For a longer walkthrough with example output, read the guide Build a federal grant tracker with new grant alerts.
- Open the example "New federal grant opportunities, last 14 days" on this actor's page, or paste one of the inputs above into the input form.
- Click Start and wait until the run shows Succeeded.
- Open the Output tab to see the opportunities as a table.
- Click Export, choose CSV or Excel, and download the file.
- In Google Sheets, choose File > Import > Upload and select the file.
Automate it
A weekly grant feed: keep postedWithinDays in the task (for example 14). Click Save as a new
task, then add a schedule for that task under Schedules in Apify Console (for example every
Monday at 07:00). To get only new and changed opportunities, turn on newOnly and select a
key-value store as stateStoreId, as described above.
Into Google Sheets with n8n: add the Apify node with the On new Apify Event trigger,
choose your task and the succeeded event, then add an Apify node with Get Dataset Items
using the run's defaultDatasetId, and finish with a Google Sheets node that appends the rows.
Every scheduled run then adds its opportunities to the same sheet. Make and Zapier have Apify
integrations that work the same way.
Pricing
Pay per event. There are no platform usage charges on top.
| Event | Price | When |
|---|---|---|
actor-start | $0.01 | Once per run |
opportunity | $0.004 | Per opportunity row delivered |
opportunity-detail | $0.003 | Per opportunity page read, only with includeDetails |
Examples: a week of new opportunities (about 40) without details costs $0.17; with details $0.29. A run that finds nothing costs $0.01.
Set a maximum charge on the run if you want a hard ceiling; the actor stops cleanly at the cap.
Good to know
- The source is the official Grants.gov search API, the same one behind the public site, so what you get matches grants.gov exactly, including agencies' own typos.
- Grants.gov lists federal opportunities only. State, foundation and corporate funding are not on it.
- Dates are Grants.gov's own calendar dates (US Eastern).
postedWithinDayscounts those days, so a run at any hour sees the same window as the site. - Descriptions are plain text with the formatting removed; attachments are not downloaded. The
urlopens the full posting with its documents. - Closed and archived opportunities are searchable with
"statuses": ["closed"]and"statuses": ["archived"], useful for seeing what a funder offered last year. - The actor is not affiliated with Grants.gov or any federal agency. Postings can be corrected or withdrawn after publication; the "new only" mode reports changes it can see.
FAQ
How do nonprofits find federal grants?
Set eligibilities to ["12"] for 501(c)(3) nonprofits, add a keyword for your field, and run.
Schedule it with newOnly to receive new opportunities each week.
Does it include state or foundation grants?
No. Grants.gov lists federal opportunities only.
Can I get alerts for new grant opportunities?
Yes. Turn on newOnly, select a key-value store as stateStoreId, and schedule the task. Each run
delivers opportunities you have not seen, and changed postings when you read details.
Questions or a search that does not behave? Open an issue on the actor page and include the input you used.