Grants.gov Funding Opportunities Scraper avatar

Grants.gov Funding Opportunities Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Grants.gov Funding Opportunities Scraper

Grants.gov Funding Opportunities Scraper

Search open and forecasted federal grants by keyword, category and eligibility, with agency, deadline and award ceiling in every record. Pay only per result returned.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

M Usama

M Usama

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

What does Grants.gov Funding Opportunities Scraper do?

It returns open and forecasted U.S. federal grant opportunities from Grants.gov: title, agency, status, posted date, due date, award ceiling, award floor, eligible applicant types and a plain text description. Grant writers, nonprofits, universities, small businesses and consultants use it to monitor new funding by keyword, category and eligibility without browsing Grants.gov by hand. Filters keep each run small, and you only pay for the results returned.

Data source

Reads the public JSON API that grants.gov's own search page calls in the browser (api.grants.gov/v1/api/search2 for listings, fetchOpportunity for details), so results are as fresh as the live site and require no login or key.

Why use it?

  • Monitor new grants in a category (health, education, environment, and so on) as they post.
  • Build a lead list of open opportunities a specific applicant type (small business, nonprofit, tribal government, university) is eligible for.
  • Track deadlines and award ceilings across many agencies in one feed instead of checking Grants.gov by hand.
  • Feed a spreadsheet, CRM or Slack channel through a Schedule and an Integration instead of a manual weekly search.

How to use it

  1. Open the Actor and set the filters: keyword, opportunity status, funding category, eligibility, and how recently it was posted.
  2. Click Start. Download results as JSON, CSV or Excel, or read them through the API.
  3. Add a Schedule and an Integration (Slack, Google Sheets, webhook) to get new opportunities automatically.

Input

FieldDescription
keywordSearch terms matched against the title and description. Blank returns all opportunities that match the other filters.
oppStatusesWhich statuses to include: posted, forecasted, closed, archived. Default is posted and forecasted.
fundingCategoryLimit to one funding activity category (Health, Education, Environment, and so on). Default is any category.
eligibilityLimit to opportunities open to one applicant type (small business, nonprofit, state government, and so on). Default is any applicant.
postedInLastDaysOnly include opportunities posted within this many days. Default is no limit.
maxResultsHard stop for the run. You are billed per result, so this caps the cost.
proxyConfigurationApify proxy is recommended for larger runs.

Example input:

{
"keyword": "health",
"oppStatuses": ["posted", "forecasted"],
"fundingCategory": "",
"eligibility": "",
"postedInLastDays": "0",
"maxResults": 60
}

Output

Every record has the same shape:

{
"id": "grants:357658",
"opportunityNumber": "PAR-25-155",
"title": "Limited Competition: Small Grant Program for the NCATS Clinical and Translational Science Award (CTSA) Program (R03 Clinical Trial Optional)",
"agency": "National Institutes of Health",
"status": "posted",
"postedDate": "2024-12-11T05:00:00.000Z",
"dueDate": "2026-10-19T04:00:00.000Z",
"awardCeiling": 50000,
"awardFloor": null,
"estimatedTotalFunding": null,
"numberOfAwards": null,
"eligibleApplicants": ["Small businesses", "State governments", "Nonprofits having a 501(c)(3) status with the IRS, other than institutions of higher education"],
"fundingCategory": ["Health"],
"fundingInstrument": ["Grant"],
"costSharingRequired": false,
"cfdaNumbers": ["93.350"],
"description": "The purpose of this NOFO is to enhance the capability of NCATS CTSA Program KL2 scholars...",
"url": "https://www.grants.gov/search-results-detail/357658",
"announcementUrl": "http://grants.nih.gov/grants/guide/pa-files/PAR-25-155.html",
"scrapedAt": "2026-09-24T08:47:12.513Z"
}
FieldMeaning
idStable key (grants:<opportunityId>), safe for deduplication between runs
opportunityNumberGrants.gov solicitation or NOFO number
titleOpportunity title
agencyPublishing agency name
statusposted, forecasted, closed or archived
postedDateISO date the opportunity was or will be posted
dueDateISO date applications are due
awardCeilingMaximum award amount in USD, or null if not published
awardFloorMinimum award amount in USD, or null if not published
estimatedTotalFundingTotal program funding, or null if not published (forecast opportunities only)
numberOfAwardsExpected number of awards, or null if not published
eligibleApplicantsApplicant types allowed to apply
fundingCategoryFunding activity categories
fundingInstrumentGrant, cooperative agreement or other instrument type
costSharingRequiredWhether cost sharing or matching funds are required
cfdaNumbersAssistance Listing (CFDA) numbers
descriptionPlain text summary of the opportunity
urlGrants.gov opportunity detail page
announcementUrlLink to the full agency announcement, if the agency publishes one

Pricing

Pay per event: a small fee when a run starts, then a fixed price per result returned. You only pay for records that pass your filters. Set maxResults to cap any run.

Limitations

  • Covers Grants.gov listings only, not agency specific systems that never publish to Grants.gov.
  • Some opportunities do not publish an award ceiling, floor or estimated total funding; those fields are null rather than guessed.
  • eligibility and fundingCategory filter by the codes Grants.gov itself uses, so unusual combinations may return zero results if the opportunity was not tagged with that exact code.

FAQ

Is this legal? The Actor reads the same public JSON API the Grants.gov search page calls in any visitor's browser, with no login and no personal data. You are responsible for how you use the data.

Something is missing or broken? Open an issue in the Issues tab; response time is usually under a day.