Grants.gov Scraper: US Federal Grant Opportunities API avatar

Grants.gov Scraper: US Federal Grant Opportunities API

Pricing

$2.00 / 1,000 grant opportunities

Go to Apify Store
Grants.gov Scraper: US Federal Grant Opportunities API

Grants.gov Scraper: US Federal Grant Opportunities API

Search Grants.gov for US federal grant opportunities and funding announcements. Filter by keyword, agency, funding category, eligibility (nonprofits, small businesses, universities, tribes), status or closing date, with deadlines and award amounts. JSON, CSV or Excel. No API key.

Pricing

$2.00 / 1,000 grant opportunities

Rating

0.0

(0)

Developer

Nexus Scrapers

Nexus Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Security

Limited permissions

Share

Grants.gov Scraper - US Federal Grant Opportunities (NOFO) as Clean JSON

Search and export US federal grant opportunities from the official Grants.gov API as clean, normalized JSON, CSV or Excel. Filter by keyword, agency, funding category, eligible applicant type, funding instrument, Assistance Listing (ALN/CFDA) number, posting date, deadline and funding amount. Each result carries the deadline, award ceiling and floor, total funding, number of awards, eligibility, and a link to the PDF announcement. Forecasted (upcoming), posted (open), closed and archived opportunities are all available. No API key, no proxy, no browser and no login needed.

The Actor reads the public Grants.gov REST API (search2 and fetchOpportunity). Each result follows the same tender schema v1 used by the other Actors of this public-money family (EU TED, UK Find a Tender and Contracts Finder), with grant-specific fields prefixed grants, so grants and tenders can be loaded into one table.

Who is it for

  • Grant writers, consultants and nonprofits who want a daily list of new federal opportunities for their sector, with deadline and award size.
  • Universities and research offices tracking NIH, NSF, DOE and other agency notices of funding opportunity (NOFO) in their fields.
  • Startups and small businesses looking for opportunities open to small businesses (SBIR-type programs, innovation grants).
  • Local governments, tribes and school districts filtering by eligible applicant type.
  • Analysts and AI agents (MCP): the dataset schema describes every field, so an agent can query grants in plain language (see API, MCP and AI agents).

What you get

One dataset item per opportunity, with:

  • opportunity id, agency opportunity number, title, status (forecasted, posted, closed, archived) and link to the Grants.gov page
  • the awarding agency (and parent department), posting date and application deadline
  • with includeDetails (on by default): the description, total funding, award ceiling and floor, expected number of awards, cost sharing, funding instruments and categories, eligible applicant types and the free-text eligibility description, ALN numbers with program titles, and the list of attached files with a direct link to the main PDF
  • for forecasts: fiscal year and the estimated posting, application, award and start dates
  • optional agency contact (name, e-mail, phone) as published in the notice, off by default

The full field reference is in ./SCHEMA.md and in the Actor's dataset schema (visible in the Apify UI and to AI agents using MCP).

Use cases

  • Grant alerts: schedule the Actor daily with daysBack: 1 and your keywords or agencies, and send new opportunities to Slack, e-mail or a spreadsheet.
  • Deadline tracking: closingWithinDays: 30 lists open opportunities closing soon, soonest first.
  • Size filtering: minValue / maxValue keep only opportunities in your funding band.
  • Early planning: add the forecasted status to see opportunities before they open.
  • Eligibility search: open to small businesses, individuals, state or local governments, tribal governments, nonprofits and so on.
  • Market and policy research: which agencies fund which categories, how much, and how often.
  • AI agents (MCP): ask in natural language, get structured opportunities back.

Input

All filters are optional and are combined with AND. The defaults return the 20 most recently posted open opportunities, with full details, in a few seconds.

FieldDescription
statusesposted (open, default), forecasted, closed, archived
keywordSearch words, matched by Grants.gov (title, description, opportunity number). Several words narrow the search
agenciesAgency codes: HHS, DOD, USDA, ED (include sub-agencies) or an exact code such as HHS-NIH11, NSF, DOT-NHTSA
fundingCategoriesHealth (HL), Science and Technology (ST), Education (ED), Energy (EN), Environment (ENV), ... any of the selected
eligibilitiesEligible applicants, e.g. 23 Small businesses, 21 Individuals, 00 State governments, 12 501(c)(3) nonprofits
fundingInstrumentsG Grant, CA Cooperative Agreement, PC Procurement Contract, O Other
alnNumberOne Assistance Listing (CFDA) number such as 93.543, or a prefix such as 93
sortBynewest (default) or closing-soon
daysBackPosted in the last N days (0 = no limit)
dateFrom / dateToPosting date range, YYYY-MM-DD (override daysBack)
closingWithinDaysDeadline between today and N days from now (sorted by deadline)
minValue / maxValueFunding band in USD (total program funding, or the award ceiling if no total is given). Needs the detail records, so it reads up to 500 opportunities
includeDetailsFetch the full record of each opportunity (default on). Off = a faster list of title, agency, dates only
includeContactAdd the agency contact published in the notice (default off)
maxItemsMaximum results (default 20, maximum 10,000)

Example: open small-business opportunities in health, closing within 60 days

{
"statuses": ["posted"],
"fundingCategories": ["HL"],
"eligibilities": ["23"],
"closingWithinDays": 60,
"maxItems": 100
}

Example: new NSF and NIH opportunities of the last week

{
"agencies": ["NSF", "HHS-NIH11"],
"daysBack": 7,
"maxItems": 100
}

Example: large opportunities, forecasted or open, about artificial intelligence

{
"statuses": ["forecasted", "posted"],
"keyword": "artificial intelligence",
"minValue": 5000000,
"maxItems": 50
}

Output example

Real record (posted on Grants.gov on 4 November 2026), description shortened:

{
"schemaVersion": "1.0",
"source": "grants-gov",
"sourceId": "364212",
"url": "https://www.grants.gov/search-results-detail/364212",
"documentUrls": {
"html": "https://www.grants.gov/search-results-detail/364212",
"pdf": "https://apply07.grants.gov/grantsws/rest/opportunity/att/download/355535",
"xml": null
},
"noticeType": "contract-notice",
"noticeTypeCode": "synopsis",
"title": "State Process for Informing Consumers of Recalls Program",
"description": "The objective of the State Process for Informing Consumers of Recalls Grant program is to establish a recall notification program in a state to improve traffic safety in the following areas…",
"language": "en",
"buyer": { "name": "National Highway Traffic Safety Administration", "country": "US", "city": null, "nutsCode": null, "buyerType": "central-government" },
"cpvCodes": [],
"estimatedValue": { "amount": 1500000, "currency": "USD" },
"publicationDate": "2026-11-04",
"submissionDeadline": "2027-02-04",
"awardInfo": null,
"scrapedAt": "2026-11-04T22:03:31+00:00",
"grantsOpportunityNumber": "NHTSA-693JJ927R000007-FY27",
"grantsStatus": "posted",
"grantsAgencyCode": "DOT-NHTSA",
"grantsTopAgency": { "code": "DOT", "name": "Department of Transportation" },
"grantsAln": [{ "code": "20.614", "title": "National Highway Traffic Safety Administration (NHTSA) Discretionary Safety Grants and Cooperative Agreements" }],
"grantsCategory": { "code": "D", "description": "Discretionary" },
"grantsFundingInstruments": [{ "id": "G", "description": "Grant" }],
"grantsActivityCategories": [{ "id": "CP", "description": "Consumer Protection" }],
"grantsEstimatedValueBasis": "totalProgramFunding",
"grantsEstimatedTotalFunding": { "amount": 1500000, "currency": "USD" },
"grantsAwardCeiling": { "amount": 1500000, "currency": "USD" },
"grantsAwardFloor": { "amount": 300000, "currency": "USD" },
"grantsExpectedAwards": 5,
"grantsCostSharing": false,
"grantsEligibility": {
"applicantTypes": [{ "id": "00", "description": "State governments" }],
"additionalInfo": "An eligible applicant is a State agency that has the authority to register motor vehicles…"
},
"grantsAttachments": [{ "name": "State Process for Informing Consumers of Recalls Program NOFO_Final 11.4.2026 - 695JJ927R000007.pdf", "folder": "Full Announcement", "mimeType": "application/pdf", "sizeBytes": 4243557, "url": "https://apply07.grants.gov/grantsws/rest/opportunity/att/download/355535" }],
"grantsContact": null,
"grantsDetailsIncluded": true
}

Fields starting with grants are Grants.gov-specific extras (the output shows a subset above; the dataset has more, such as the archive date and the forecast block). All other fields are shared with the other Actors of the family. Fields that make no sense for grants (cpvCodes, lots, awardInfo, placeOfPerformance, procedure and nature) are empty or null, see ./SCHEMA.md for the mapping: the estimated value is the total program funding (or the award ceiling when no total is given), the deadline is the application close date, and the Assistance Listing number replaces the classification code.

Pricing

Pay only for the results you get. Set Maximum results (and the run's maximum cost) to control spending: the Actor stops as soon as either limit is reached. Runs that find no opportunities return no results and charge nothing. See the Pricing tab of this Actor for the current price.

Speed: the list is fast (500 opportunities in about 3 seconds); the full details cost one extra request per opportunity, which the Actor spaces politely (about 5 per second). A run of 20 results with details takes a few seconds, 500 results with details about 2 minutes, and 500 results without details about 3 seconds.

API, MCP and AI agents

Every Apify Actor can be called over the API, and this one is also available as a tool for AI agents.

Apify API (Python)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("nexus-scrapers/grants-gov-opportunities").call(run_input={
"keyword": "cybersecurity", "closingWithinDays": 45, "maxItems": 50,
})
for grant in client.dataset(run["defaultDatasetId"]).iterate_items():
print(grant["submissionDeadline"], grant["buyer"]["name"], grant["title"], grant["estimatedValue"])

Apify API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('nexus-scrapers/grants-gov-opportunities').call({ agencies: ['NSF'], daysBack: 7 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

MCP and AI agents. Apify exposes Actors as MCP tools through the Apify MCP server. Add https://mcp.apify.com (with ?actors=nexus-scrapers/grants-gov-opportunities to load this Actor directly) to Claude, ChatGPT-compatible clients, Cursor, VS Code or any MCP client, authorize with your Apify account, and ask in plain language, for example: "Which open federal grants for small businesses in energy close in the next 60 days, and how big are they?" or "List forecasted NIH opportunities above 5 million dollars". The input and dataset schemas tell the agent every parameter and output field. Also works with LangChain, LlamaIndex, CrewAI and n8n through the Apify integrations.

FAQ

Do I need an API key? No. The search2 and fetchOpportunity endpoints of the Grants.gov API need no key or login; the Actor uses only these.

Is the data official? Yes. It comes straight from the Grants.gov API run by the U.S. Department of Health and Human Services for all federal grant-making agencies. Every record links to the official Grants.gov page.

What do the statuses mean? posted = open for applications; forecasted = announced in advance by the agency, not yet open (a good early signal); closed = deadline passed but still listed; archived = older opportunities.

What is estimatedValue? The total funding of the opportunity when the agency states it, otherwise the award ceiling (the maximum for one award). grantsEstimatedValueBasis tells you which, and the award ceiling, floor and total are always given separately. Amounts are in US dollars, never converted. Many opportunities state no amount (null).

What is an ALN number? The Assistance Listing number (formerly CFDA number) identifies a federal assistance program, for example 93.543. It replaces the CPV code used in tenders; it is in grantsAln.

Why is the deadline a date only? Grants.gov lists a close date; the exact cut-off time (often 11:59 pm Eastern) is in the announcement text, which is linked.

Are awards or winners included? No. Grants.gov lists opportunities, not who won. Award data is published separately by USAspending.gov.

What does includeDetails change? Off, you get title, agency, dates, status and ALN numbers from the search list only, very fast. On (default), each opportunity's full record is fetched: description, amounts, eligibility, attachments. The funding filters (minValue, maxValue) and includeContact switch it on automatically.

Does it include contact details? Only if you ask for them (includeContact): the contact person or mailbox the agency publishes in the notice. It is off by default because it can name a person; if you use it, handle it in line with the privacy rules that apply to you.

How fresh is the data? The Actor queries Grants.gov live, so new opportunities appear as soon as they are published.

How many results can I get? Up to 10,000 per run. With value or deadline filters the Actor examines at most 500 to 2,000 opportunities per run and says in the status message when it stopped early.

Can I get the application forms or packages? No. The Actor returns opportunity data and links to the announcement files; applications are made on Grants.gov.

Data source, attribution and terms

This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.

Data comes from Grants.gov, operated by the U.S. Department of Health and Human Services (HHS), through its public API (search2, fetchOpportunity), which needs no authentication. Use is subject to the Grants.gov API Terms of Service: searching, displaying, analysing and retrieving the data is permitted, the attribution notice above must be shown, the content must not be modified or falsely represented, and Grants.gov may limit or block clients that exceed or circumvent its limits. The Actor does not alter the content (descriptions are converted from HTML to plain text and shortened to 1,500 characters; amounts and dates are reformatted). Federal grant announcements are US government information; the Actor is an independent tool and is not affiliated with HHS or Grants.gov. It accesses the API politely (descriptive User-Agent, request pacing, back-off on rate limits).

Limitations

  • Only opportunities published on Grants.gov are covered. Some agencies post notices only on their own sites, and state, local and private foundation grants are not on Grants.gov.
  • Grants.gov search is run by Grants.gov: the keyword matching (stemming, word logic) is theirs and is not an exact-phrase search.
  • Funding amounts, descriptions, eligibility and attachments exist only in the detail records (includeDetails). Many opportunities state no amount, or the string "none"; the Actor returns null then.
  • minValue / maxValue exclude opportunities without a stated amount, and read at most 500 opportunities per run.
  • The attachment download links point to the Grants.gov attachment service used by its website; they are not part of the documented API and may change.
  • Award results, applicant data and application packages are not available.
  • Archived opportunities number in the tens of thousands; for very broad queries over them, split the search by date range. Date and deadline filters beyond what Grants.gov filters itself are applied by the Actor on at most 2,000 examined opportunities per run.