Grants.gov Search Scraper avatar

Grants.gov Search Scraper

Pricing

from $1.50 / 1,000 grant opportunity records

Go to Apify Store
Grants.gov Search Scraper

Grants.gov Search Scraper

Search current, forecasted and closed U.S. federal grant opportunities from Grants.gov and export clean, flat records.

Pricing

from $1.50 / 1,000 grant opportunity records

Rating

0.0

(0)

Developer

Nick Randall

Nick Randall

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Search current, forecasted and closed U.S. federal grant opportunities and export clean, flat records.

Get structured grant opportunity data from Grants.gov as JSON, CSV or Excel, or call it as a tool from Claude, Cursor, ChatGPT or any MCP client. Built on the official Grants.gov Search2 API, so it does not break when the website changes. Pay only for the opportunities you receive.

What you get

One record per grant opportunity with the fields people actually filter on: opportunity ID and number, title, awarding agency and agency code, open and close dates, status (posted, forecasted, closed, archived), document type, and the Assistance Listing Numbers (ALN, formerly CFDA numbers) tied to the opportunity. Turn on "Include full opportunity details" to add the description, award ceiling and floor, expected number of awards, estimated total funding, cost sharing requirement, eligible applicant types and funding instrument.

Every result is a flat record with stable field names, so it drops straight into a spreadsheet, a database or an AI agent's context.

Why use this instead of the website

  • Combine keyword, status, agency, funding category, eligibility and ALN filters in one call
  • Pagination handled for you, with automatic retries and polite rate limiting
  • Results in JSON, CSV, Excel or via API, or piped into Zapier, Make, n8n and Google Sheets
  • Works as an MCP tool, so AI agents can look up open grants on demand
  • No browser, no proxies, no personal data: fast runs and a tiny cost per result
  • Monitoring made easy: schedule the Actor daily with a keyword to catch newly posted opportunities

Input

FieldTypeDefaultMeaning
keywordstringFree-text keywords searched across opportunity titles and descriptions
statusesarrayposted, forecastedAny of posted, forecasted, closed, archived
agencyCodesarrayallGrants.gov agency codes, e.g. "USAID" or "DOC-NOAA"
fundingCategoriesarrayallFunding category codes, e.g. "ENV" or "HL"
eligibilitiesarrayallApplicant eligibility codes, e.g. "99" or "25"
alnstringA single Assistance Listing Number (formerly CFDA), e.g. "93.859"
sortBystringopen date, newest firstOpen date, close date, agency or title, ascending or descending
includeDetailsbooleanfalseFetch the full synopsis for each result (one extra request per result)
maxResultsinteger100Cap on opportunities saved. You are charged per opportunity, so this caps your cost.

Example input:

{
"keyword": "renewable energy",
"statuses": ["posted", "forecasted"],
"maxResults": 200
}

Output

Example result (shortened, with includeDetails: true):

{
"id": "356420",
"number": "DE-FOA-0003201",
"title": "Rural and Municipal Renewable Energy Pilot Program",
"url": "https://grants.gov/search-results-detail/356420",
"agencyCode": "DOE",
"agency": "Department of Energy",
"openDate": "08/01/2026",
"closeDate": "10/15/2026",
"oppStatus": "posted",
"docType": "synopsis",
"alnList": ["81.087"],
"description": "This funding opportunity supports pilot-scale renewable energy projects in rural communities...",
"awardCeiling": 2000000,
"awardFloor": 250000,
"expectedNumberOfAwards": 12,
"estimatedFunding": 18000000,
"costSharing": true,
"applicantTypes": ["State governments", "City or township governments", "Nonprofits"],
"fundingInstrument": ["Grant"]
}

Field reference: id, number, title, url, agencyCode, agency, openDate, closeDate, oppStatus, docType, alnList[]. With includeDetails: true, also: description, awardCeiling, awardFloor, expectedNumberOfAwards, estimatedFunding, costSharing, applicantTypes[], fundingInstrument[].

Pricing

Pay per event. You are charged $1.50 per 1,000 opportunities saved to the dataset, plus a fraction of a cent per run start. Nothing is charged for results you do not receive. Set "Max total charge per run" in the run options to cap spending on any run. When a run reaches your cap it stops cleanly and keeps everything it already saved.

Rough guide: 1,000 opportunities cost $1.50 and take about 20 seconds (longer with "Include full opportunity details" turned on, since that adds one request per result).

Use it from an AI agent (MCP)

This Actor is available as an MCP tool through the Apify MCP server. Add it to your client, then ask the agent for the data in plain language.

Claude Desktop, Claude Code or Cursor (mcp.json / claude_desktop_config.json):

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?actors=brightpath-data/grants-gov-search",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

ChatGPT and other clients that support remote MCP servers: add https://mcp.apify.com/?actors=brightpath-data/grants-gov-search as a connector with your Apify token.

Example prompt once connected: "Find posted grant opportunities about renewable energy from the Department of Energy and list the title, close date and estimated funding for each."

Use it from code

curl -X POST "https://api.apify.com/v2/acts/brightpath-data~grants-gov-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"renewable energy","statuses":["posted","forecasted"],"maxResults":100}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("brightpath-data/grants-gov-search").call(run_input={"keyword": "renewable energy", "statuses": ["posted", "forecasted"], "maxResults": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Limits and fair use

  • Up to 5,000 opportunities per run. For larger exports, split by status, agency or funding category.
  • Requests are paced to be polite to the source; runs with "Include full opportunity details" on take roughly twice as long since each result needs a second request.
  • Agency, funding category and eligibility codes must match the codes Grants.gov itself uses; see the code lists on grants.gov if a filter returns nothing.
  • Opportunity contact names and emails are intentionally not collected.

Data comes from Grants.gov, the U.S. government's central listing of federal grant opportunities, through its official public Search2 API, which requires no login or key. The data is U.S. government public domain data. This Actor collects public, non-personal data only and does not bypass logins, paywalls or access controls. You are responsible for how you use the data.

Support

Found a problem or need a field added? Open an issue on the Actor's Issues tab. Fixes for broken runs are prioritized.