Grants.gov Federal Funding Opportunities Scraper avatar

Grants.gov Federal Funding Opportunities Scraper

Pricing

from $12.89 / 1,000 opportunity records

Go to Apify Store
Grants.gov Federal Funding Opportunities Scraper

Grants.gov Federal Funding Opportunities Scraper

Search Grants.gov, the official US federal grants database, by keyword and status (posted, forecasted, closed, archived). Get title, agency, open and close dates, CFDA codes, plus optional award ceiling and floor, total funding, eligibility and contact. Export CSV, Excel, JSON. No login.

Pricing

from $12.89 / 1,000 opportunity records

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

RecordsData

Grants.gov Federal Funding Opportunities Scraper

Grants.gov Federal Funding Opportunities Scraper searches Grants.gov, the official US federal grants database, by keyword, status, agency, funding category, who can apply, funding instrument, Assistance Listing number and dates. Each result has title, agency, open and close dates, days until close, status, CFDA codes and a direct link. Optional detail rows add award ceiling and floor, total funding, eligibility, cost sharing, applicant types and attachments, 38 columns in all. Export CSV, Excel or JSON. No login, no API key. Opportunity record: $16.67 per 1,000. Optional monitor mode returns only opportunities you have not seen in earlier runs.

๐Ÿ›๏ธ Grants.gov scraper: what does it do?

This actor queries the public Grants.gov search API and returns every federal grant opportunity that matches your filters, up to your Max results limit. It is built for grant writers, nonprofits, universities and funding researchers who want a clean spreadsheet.

  • Filter by keyword, status, agency, funding category, applicant type, funding instrument, Assistance Listing (CFDA) number and dates, then sort the results.
  • Optionally pull the full detail (award amounts, eligibility, cost sharing, attachments, agency contact), or use monitor mode (onlyNew) to receive only new opportunities.

๐Ÿ“‹ Grants.gov data: what can you extract?

FieldDescriptionRecord type
opportunityIdGrants.gov internal ID (links the two record types)both
opportunityNumber / titleOfficial number and titleopportunity-record
agencyCode / agencyIssuing agency code and nameopportunity-record
openDate / closeDatePosting date and deadline (MM/DD/YYYY)opportunity-record
oppStatus / docTypePosted, forecasted, closed or archived, and document typeopportunity-record
cfdaList / urlAssistance Listing numbers and the opportunity page linkopportunity-record
daysUntilClose / isForecastDays to the deadline (negative if past); Yes or No for forecastsopportunity-record
scrapedAtISO timestamp of the scrapeboth
description / eligibilityDescFull synopsis text and who may applyopportunity-detail-record
awardCeiling / awardFloor / estimatedFunding / numberOfAwardsAward size range, total funding pool, expected number of awardsopportunity-detail-record
agencyContactName / agencyContactEmail / agencyContactPhoneAgency contactopportunity-detail-record
topAgencyCode / topAgencyName / category / costSharingTop-level agency, category, Yes or Noopportunity-detail-record
fundingInstruments / fundingActivityCategories / applicantTypesLists of descriptionsopportunity-detail-record
postingDate / responseDate / archiveDate / lastUpdatedDateISO dates (YYYY-MM-DD)opportunity-detail-record
fundingDescriptionUrl / cfdaPrograms / attachmentsFunding description link, Assistance Listing program titles, attachment foldersopportunity-detail-record

Fields that Grants.gov leaves blank for an opportunity are omitted from that row, so there are no placeholder values.

๐Ÿงพ Grants.gov scraper sample output

Values from a run on 2026-10-03 (keyword "health", status "posted", full details on).

{
"recordType": "opportunity-record",
"opportunityId": 337086,
"opportunityNumber": "CDC-RFA-TP22-2201",
"title": "Public Health Crisis Response Cooperative Agreement",
"agency": "Centers for Disease Control - OPHPR",
"openDate": "01/13/2022",
"closeDate": "02/11/2027",
"oppStatus": "posted",
"cfdaList": ["93.354"],
"url": "https://www.grants.gov/search-results-detail/337086",
"isForecast": "No"
}

Detail records (with includeFullDetails) add description, awardCeiling (for example "22,000,000"), awardFloor, estimatedFunding, numberOfAwards, eligibilityDesc and the agency contact.

๐Ÿ’ฐ How much does it cost to scrape Grants.gov?

The actor uses Pay Per Event pricing. Prices below are the FREE-tier prices live on the actor today; paid Apify plans get lower per-event prices.

EventWhen it is chargedPrice (FREE tier)
opportunity-recordOne per grant opportunity delivered$0.01667 (about $16.67 per 1,000)
opportunity-detail-recordOne per opportunity when "Include full details" is on and the detail has content$0.02 (about $20 per 1,000)

You are never charged for failed detail lookups, empty searches, or runs that fail. For 1,000 results: 1,000 x $0.01667 = $16.67; with full details on, add 1,000 x $0.02 = $20.00, for a total of $36.67. Ten opportunities cost about $0.17 without details and $0.37 with them. The free Apify plan is limited to 10 results per run.

โ–ถ๏ธ How to scrape Grants.gov in 3 steps

  1. Open the Input tab, type a keyword (or leave it empty for everything), choose the opportunity statuses and, if you want, an agency, funding category or close-date limit.
  2. Set Max results and switch on Include full details if you need award amounts and eligibility.
  3. Click Start, then download the dataset as CSV, Excel or JSON.

โš™๏ธ Grants.gov scraper input

FieldTypeDefaultDescription
keywordstringemptySearch term matched against titles and descriptions
oppStatusesarray["posted"]forecasted, posted, closed, archived
agenciesarrayempty163 agency codes; a department code includes its sub-agencies
fundingCategoriesarrayempty25 categories such as Health or Education
eligibilitiesarrayempty17 applicant types such as nonprofits, states, individuals
fundingInstrumentsarrayemptyG grant, CA cooperative agreement, PC procurement contract, O other
cfdaNumbersarray of stringsemptyAssistance Listing numbers, for example 93.847
postedWithinDaysstringempty (any time)3 days up to 8 weeks
openDateFrom / openDateTo / closeDateFrom / closeDateTostringemptyYYYY-MM-DD, checked by the actor on each result; opportunities without a deadline are skipped by close-date filters
sortBystringrelevanceNewest posted, oldest posted, closing soonest, closing latest
maxItemsinteger200Maximum opportunities to return (10 on the free plan)
includeFullDetailsbooleanfalseAdd one detail row per opportunity
onlyNewbooleanfalseMonitor mode: skip opportunities already returned by an earlier run of the same search
stateKeystringemptyOptional monitor name
resetSeenbooleanfalseClear the stored seen list before the run
{
"keyword": "health",
"oppStatuses": ["posted"],
"agencies": ["HHS"],
"fundingCategories": ["HL"],
"closeDateTo": "2026-12-31",
"sortBy": "closeDate|asc",
"maxItems": 10,
"includeFullDetails": false
}

๐Ÿ”” Only new results (monitor mode)

Turn on onlyNew and the actor skips every opportunity this same search already returned, so a scheduled run delivers just what is new, and skipped ones are not charged. A search is identified by its keyword, statuses, stateKey and filters; use stateKey to name monitors and resetSeen to clear the list.

  • The seen list (by opportunityId) lives in a named key-value store, grants-gov-seen, in your own Apify account.
  • An opportunity is marked as seen only after it was saved and charged, so anything not delivered at your cost limit comes back next time.
  • Use a high maxItems on the first run for the full backlog. Runs with zero new opportunities cost nothing.

To schedule a weekly monitor, click Schedules, create one such as every Monday at 08:00 and attach an input with "onlyNew": true.

๐Ÿ“ฆ Grants.gov scraper output

The dataset has one opportunity-record row per match, plus an opportunity-detail-record row per opportunity when full details are on, joined by opportunityId. A search with no matches succeeds and charges nothing.

โš–๏ธ Grants.gov scraper vs alternatives

Competitor features and prices read from their public Apify Store pages on 2026-10-09.

CapabilityThis actorsolidcodeparseforge
Agency, category, eligibilityYes, plus instrument and CFDA numberYes, plus instrumentYes, plus ALN number
Date filtersPosted window, open and close rangesPosted from and toPosted and close ranges
Minimum award filterNot availableNot listedYes
Detail fieldsCost sharing, applicants, attachmentsSimilar, 27 fields totalSimilar, plus related documents
Only-new monitoringYes, named monitorsNot listedNot listed
Fields382744 listed
ExportCSV, Excel, JSON, XMLJSON, CSV, Excel, XML, RSSCSV, JSON, Excel, XML
Price per 1,000$16.67, details +$20Header from $8.00, README $9.60Header from $7.00, README $7.50, details +$5

Both rivals are cheaper per row, and parseforge also offers a minimum award filter and optional AI add-ons that this actor does not have. This actor adds a scheduled only-new mode, sort options and a failed run that never bills. If price per row or a minimum award filter decides your choice, pick a rival.

๐Ÿ’ก Grants.gov scraper use cases

Grant discovery for nonprofits and universities, client pipelines for grant-writing consultancies, policy and funding research, and checking award ceilings and eligibility before applying.

๐Ÿ”Œ Run the Grants.gov scraper via API and integrations

curl -X POST "https://api.apify.com/v2/acts/RecordsData~grants-gov-opportunities-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"health","oppStatuses":["posted"],"maxItems":10}'

Use the Apify API client for JavaScript or Python, schedule runs, or connect Zapier, Make, n8n and Google Sheets.

๐Ÿค– Grants.gov scraper MCP server for AI agents (Claude, Cursor, VS Code)

Connect this actor to any MCP client through the Apify MCP server. Use this URL, which exposes only this actor as a tool:

https://mcp.apify.com?tools=RecordsData/grants-gov-opportunities-scraper

Config for clients that take a JSON MCP config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=RecordsData/grants-gov-opportunities-scraper"
}
}
}

Example agent prompt: "Use the Grants.gov scraper to find posted grants about rural broadband, include full details, and list the five with the largest award ceiling together with their close dates and eligibility."

Choose this tool when an agent needs US federal grant opportunities from Grants.gov as structured rows, with deadlines, award sizes and eligibility. It takes the same input as the actor (keyword, oppStatuses, agencies, maxItems, includeFullDetails, onlyNew and the other filters); set maxItems to keep agent runs small and cheap.

Grants.gov is the US government's official public listing of federal funding opportunities and offers a public search API without login. The actor reads only that public data. You remain responsible for how you use it, including contact details in agency records.

โ“ Grants.gov scraper FAQ

Why did my Grants.gov scraper run return 0 results?

The keyword, status and filter combination matched nothing on Grants.gov. Try a broader keyword, remove a filter such as agency or close date, or add statuses such as forecasted, closed or archived. A search with no matches still ends as succeeded with a clear status message, and you are not charged.

Why do some Grants.gov opportunities have no award ceiling?

Not every federal agency publishes an award ceiling, floor or funding total for each opportunity. The actor returns exactly what Grants.gov provides and omits blank fields instead of filling placeholders, so a missing awardCeiling means the agency left it empty on Grants.gov.

Do I need an API key or login to scrape Grants.gov?

No. The Grants.gov Federal Funding Opportunities Scraper queries the public Grants.gov search API, which needs no login and no API key. The free Apify plan is limited to 10 results per run, enough to test the output and fields before you scale up.

What does "Include full details" cost on the Grants.gov scraper?

Switching on includeFullDetails adds one opportunity-detail-record event per opportunity, priced at $0.02 on the FREE tier. That comes on top of the $0.01667 opportunity record, so one opportunity with details costs about $0.037. The detail row adds description, award amounts, eligibility, cost sharing and attachments.

Can I get only open Grants.gov grants?

Yes. The default oppStatuses value is posted, which means the grant is open for applications now. Add forecasted to also see grants announced in advance, or closed and archived for past opportunities, and add a keyword to narrow the list.

What happens at my cost limit on the Grants.gov scraper?

If you set a maximum cost per run, the actor stops cleanly when it is reached and ends with the message "Stopped at your max charge limit". In monitor mode, opportunities it did not deliver are returned on the next run instead of being lost.

How many Grants.gov results can I get in one run?

The actor pages through all matches, up to 500 opportunities per API page, until it reaches your maxItems limit (default 200). The free plan returns 10 results per run, while paid plans return up to the limit you set, so set maxItems high when you want the full backlog.

How do I get only new Grants.gov grants since my last run?

Set onlyNew to true and schedule the actor. Each run returns only opportunities that the same search (keyword, statuses, filters and stateKey) has not delivered before, and skipped opportunities are not charged. The seen list is stored in a key-value store in your own Apify account.

Are Grants.gov dates in a standard format?

The openDate and closeDate columns come as MM/DD/YYYY, exactly as Grants.gov reports them. The detail row adds ISO dates (YYYY-MM-DD): postingDate, responseDate, archiveDate and lastUpdatedDate. Date inputs always use YYYY-MM-DD, which is easy to sort in a spreadsheet.

How do I filter Grants.gov grants by agency, category or eligibility?

Use the agencies, fundingCategories and eligibilities inputs. Agencies cover 163 codes, and picking a department such as HHS automatically includes its sub-agencies. You can also filter by funding instrument and Assistance Listing number. Leave a filter empty to include everything, and combine several filters to narrow the search.

Can I filter Grants.gov grants by deadline or posting date?

Yes. postedWithinDays limits results to opportunities posted in the last 3 days up to 8 weeks. The open and close date inputs take YYYY-MM-DD and are checked by the actor on every result, because the API has no date-range parameter. Opportunities without a deadline are skipped when a close-date filter is set.

Can I filter Grants.gov grants by minimum award amount?

Not yet. The actor has no minimum award input. Award ceiling and floor come in the detail rows when you switch on includeFullDetails, so you can sort or filter the exported CSV or Excel file on awardCeiling after the run. Some rival actors offer this filter built in.

What new columns does the Grants.gov scraper return?

Every row has url, daysUntilClose, isForecast and scrapedAt. Detail rows add top agency, category, cost sharing, funding instruments, applicant types, five date fields, the funding description link, Assistance Listing programs and attachment folders. In total there are 38 columns, and blank values are left out.

๐Ÿ†˜ Support

Found a bug or need a custom scraper? Open an issue in the Issues tab or write to contact.punkrecordsdata@gmail.com.

Last updated: 2026-10-11