Grants.gov Opportunities Scraper
Pricing
from $2.45 / 1,000 item extracteds
Grants.gov Opportunities Scraper
Search official Grants.gov opportunities and export eligibility, deadlines, synopsis, Assistance Listings, award details, and source links.
Pricing
from $2.45 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search official Grants.gov opportunities and export normalized US federal funding records for recurring grant discovery, deadline monitoring, and data analysis.
The Actor uses anonymous public Grants.gov JSON endpoints. It enriches every saved search hit with the full public synopsis, applicant eligibility, Assistance Listings, award amounts, contacts, and canonical source links. No Grants.gov login, browser, or proxy is required.
What does Grants.gov Opportunities Scraper do?
The Actor turns Grants.gov search results into stable dataset rows.
It can:
- search by keyword;
- filter by forecasted, posted, closed, or archived status;
- restrict results to agency codes such as
NSF; - filter by Assistance Listing numbers (formerly CFDA);
- use eligibility, funding instrument, and funding category codes;
- keep only opportunities inside a close-date window;
- enrich list results with the official opportunity detail response;
- stop at a user-controlled result limit;
- produce source-linked records ready for schedules and integrations.
The Actor does not submit grant applications or rank applicant suitability. It provides public source data for your own research and monitoring process.
Who is this federal funding scraper for?
Grant consultants can build a repeatable feed of opportunities matching client sectors.
Nonprofits and universities can monitor agency programs and upcoming deadlines without manually copying Grants.gov pages.
Small-business support teams can collect relevant federal notices for internal review.
Research administrators can export Assistance Listings, eligibility, award limits, and contacts into a tracking system.
Data teams can load normalized grant records into a warehouse, spreadsheet, CRM, or alerting pipeline.
Why use this Actor?
Grants.gov search cards contain only part of the information needed to evaluate an opportunity. This Actor combines search and detail data in one run.
Useful differences include:
- official API data rather than brittle page selectors;
- a stable
opportunityIdfor change detection; - plain-text synopsis and eligibility fields;
- structured award floor, ceiling, expected awards, and estimated funding;
- both canonical human-readable and API source links;
- deterministic item limits and deadline filters;
- one default dataset that works with standard Apify integrations.
What data can you extract?
| Field | Meaning |
|---|---|
opportunityId | Stable Grants.gov identifier |
opportunityNumber | Agency funding notice number |
title | Public opportunity title |
agencyCode, agencyName | Publishing federal agency |
status | Forecasted, posted, closed, or archived state |
opportunityCategory | Opportunity category from Grants.gov |
assistanceListings | Assistance Listing numbers and program titles |
eligibility | Structured applicant type codes and labels |
eligibilityDescription | Detailed applicant eligibility text |
fundingInstruments | Grant or cooperative-agreement classifications |
fundingCategories | Funding activity classifications |
openDate, closeDate, archiveDate | Normalized source dates |
synopsis | Plain-text funding synopsis |
awardFloor, awardCeiling | Published award range in US dollars |
estimatedFunding | Estimated total program funding |
expectedAwards | Published expected award count |
awardCriteria | Cost-sharing and response-date details exposed by the source |
contactName, contactEmail, contactPhone | Published agency contact details |
sourceUrl | Canonical Grants.gov detail page |
lastUpdatedAt, scrapedAt | Source update and collection dates |
Fields remain null when Grants.gov does not publish a value.
The Actor never fabricates missing award or deadline data.
How to search Grants.gov opportunities
- Open the Actor input page.
- Enter a keyword such as
educationorsmall business. - Choose one or more statuses.
- Add agency or Assistance Listing filters when needed.
- Optionally enter a close-date range in
YYYY-MM-DDformat. - Set
maxItemsto control the maximum dataset size. - Click Start.
- Open the default dataset or export it as JSON, CSV, Excel, XML, or RSS.
A useful first run is:
{"keyword": "education","statuses": ["posted"],"maxItems": 10}
Input parameters
keyword
Optional text search passed to the official Grants.gov search service. Leave it empty to browse by structured filters.
statuses
One or more of forecasted, posted, closed, and archived.
The default is forecasted plus posted.
agencies
Optional Grants.gov agency codes.
For example, use NSF for the U.S. National Science Foundation.
assistanceListings
Optional Assistance Listing numbers, such as 47.076.
These identifiers were formerly called CFDA numbers.
eligibilities
Optional Grants.gov applicant eligibility codes. Use source codes, not free-text applicant descriptions.
fundingInstruments
Optional funding instrument codes such as G for Grant or CA for Cooperative Agreement.
fundingCategories
Optional Grants.gov funding activity category codes.
closeDateFrom and closeDateTo
Optional inclusive close-date bounds in YYYY-MM-DD format.
Records without a published close date do not match an active date bound.
maxItems
Maximum enriched records saved to the dataset. The default is 25 and the supported range is 1–5,000.
Output example
A current result has this shape:
{"opportunityId": "334326","opportunityNumber": "21-595","title": "Tribal Colleges and Universities Program","agencyCode": "NSF","agencyName": "U.S. National Science Foundation","status": "posted","assistanceListings": [{"number": "47.076","title": "Education and Human Resources"}],"openDate": "2021-06-24","closeDate": "2026-09-01","awardFloor": 100000,"awardCeiling": 3500000,"estimatedFunding": 10799836,"expectedAwards": 55,"sourceUrl": "https://www.grants.gov/search-results-detail/334326"}
The full row also includes synopsis, eligibility, funding classifications, award criteria, contacts, and timestamps.
Monitoring new and changed opportunities
Create an Apify Schedule to run the same input daily or weekly.
Use opportunityId as the stable key in your destination.
Compare status, closeDate, lastUpdatedAt, award fields, or synopsis text with the previous snapshot.
The Actor emits the current matching snapshot. It does not keep a cross-run change database or send alerts by itself. Use an integration, webhook, or your own database to perform change detection and notifications.
Useful recurring workflows include:
- Track posted NSF opportunities each morning.
- Watch a set of Assistance Listings for new notices.
- Export deadlines in the next quarter to a calendar process.
- Feed enriched opportunities into an internal grant qualification workflow.
How much does it cost to extract Grants.gov opportunities?
This Actor uses pay-per-event pricing. A run has a one-time Start charge plus one Item processed charge for each saved opportunity. Empty or filtered-out records do not incur the item event.
Current source configuration starts at $0.005 per run and the BRONZE item rate is $0.00408 per saved opportunity. Higher Apify plans receive lower per-item rates shown on the Actor pricing tab.
Example BRONZE calculations:
- 10 opportunities: $0.005 start + $0.0408 items = $0.0458;
- 100 opportunities: $0.005 start + $0.408 items = $0.413;
- 1,000 opportunities: $0.005 start + $4.08 items = $4.085.
Platform compute is covered by the active Actor pricing model. Always check the pricing tab for the rate attached to your account plan.
Export and integration workflows
The default dataset works with Apify's standard export formats and integrations.
You can:
- download JSON, JSONL, CSV, Excel, XML, or RSS;
- send finished-run webhooks;
- connect datasets to Google Sheets;
- import records into Make or Zapier;
- consume the dataset through the Apify API;
- load snapshots into a data warehouse;
- pass records to an AI classification or summarization step.
For large recurring jobs, keep filters specific and select a practical maxItems.
Run with the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~grants-gov-funding-opportunities-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"education","statuses":["posted"],"maxItems":10}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/grants-gov-funding-opportunities-scraper').call({keyword: 'education',statuses: ['posted'],maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/grants-gov-funding-opportunities-scraper").call(run_input={"keyword": "education","statuses": ["posted"],"maxItems": 10,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/grants-gov-funding-opportunities-scraper"
Claude Desktop, Cursor, and VS Code setup
Claude Desktop, Cursor, and VS Code can use this equivalent MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/grants-gov-funding-opportunities-scraper"}}}
Example prompts:
- “Find 20 currently posted federal education funding opportunities and summarize the eligibility.”
- “Export current NSF opportunities with deadlines and Assistance Listings.”
- “Collect small-business grant notices closing before the end of 2027.”
AI-generated assessments should always link back to sourceUrl for verification.
Data quality and limitations
Results reflect the public Grants.gov API at run time. Agency publishers control the completeness and wording of every notice.
Important limitations:
- some opportunities have no single close date;
- award ranges and expected award counts may be absent;
- eligibility details can be long and may refer to attached documents;
- source records can be revised, closed, archived, or removed;
- Grants.gov may throttle or temporarily fail requests;
- keyword relevance follows the official search behavior;
maxItemslimits saved matches, not the source's total hit count;- close-date filtering can require scanning more search hits than are saved.
Transient API failures are retried three times with backoff. A persistent upstream failure ends the run with a non-zero status rather than returning fabricated data.
Legality and responsible use
Grants.gov publishes these records for public funding discovery. Use the data responsibly and verify material eligibility, deadline, and application requirements on the canonical Grants.gov page and attached notice documents.
This Actor is not affiliated with Grants.gov or any federal agency. It does not provide legal, financial, or grant-writing advice. Do not treat a dataset row as an award decision or guarantee of eligibility.
Contact fields are official program contacts. Use them only for relevant questions and do not send unsolicited bulk messages.
Troubleshooting
My run returns no records
Broaden the keyword, remove optional codes, expand the date range, or include another status. A valid zero-result search completes successfully and creates no item charge.
A record has a null deadline or award amount
The publishing agency did not provide that field in the current public synopsis.
Open sourceUrl and review the linked notice documents.
The run fails with a Grants.gov API error
Check the run log and retry later if the official service is unavailable. The Actor already retries transient responses, so repeated immediate runs are unlikely to help.
An agency filter returns unexpected results
Use the exact Grants.gov agency code rather than a display name. Test a small run before scheduling a large export.
Why are HTML tags absent from synopsis text?
The Actor converts the public HTML synopsis and eligibility descriptions to plain text for easier export and comparison.
FAQ
Does it require a Grants.gov API key?
No. The implemented official endpoints are anonymously accessible.
Does it scrape grants for college or private scholarships?
It searches federal opportunities published on Grants.gov. A keyword may find relevant federal education programs, but the Actor does not scrape private scholarship directories.
Can it search farm grants?
Yes, when those opportunities are published on Grants.gov.
Use a keyword such as farm and optionally add agency, status, or deadline filters.
Can I monitor changes?
Yes.
Schedule repeat runs and compare rows by opportunityId in your destination.
The Actor returns snapshots; it does not send built-in change alerts.
Can I submit applications with this Actor?
No. Application submission remains on the official Grants.gov workflow.
How many records can one run save?
Between 1 and 5,000, controlled by maxItems.
Source availability and filters determine the actual count.
Related Automation Lab actors
For federal award and compliance research, consider:
- Federal Audit Clearinghouse Scraper for public single-audit submissions and federal award details;
- NSF Research Awards Scraper for funded NSF research award records;
- SAM.gov Government Contracts Scraper for federal procurement opportunities rather than grants.
Use this Actor for current Grants.gov funding opportunities and deadlines. Use the related Actors when the buyer job is awarded-project analysis, audit research, or contract opportunity monitoring.