Grants.gov API: Search grant opportunities
Finds U.S. federal grant opportunities by topic, agency, applicant type and status, with funding and eligibility details. Open results exclude opportunities whose closing date has passed.
Unofficial. Not affiliated with or endorsed by Grants.gov.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Agency optional
agency Agency name in words, for example Department of Energy.
Department of Commerce
- Status optional
status Opportunity status, for example open. Defaults to open.
open
One of
open,forecasted,closed. Defaultopen.- Keywords, required
keywords Words describing the grant topic, for example rural broadband.
rural broadband
- Max Results optional
max_results Maximum number of grants to return, for example 25 (up to 100).
2
Whole number from 1 to 100. Default
25.- Who Can Apply optional
who_can_apply Eligible applicant type, for example nonprofits. Defaults to anyone.
tribal_governments
One of
anyone,nonprofits,small_businesses,state_governments,city_or_county_governments,tribal_governments,universities,individuals. Defaultanyone.
Input as JSON
{ "agency": "Department of Commerce", "status": "open", "keywords": "rural broadband", "max_results": 2, "who_can_apply": "tribal_governments"}Output
{ "grants": [ { "link": "https://www.grants.gov/search-results-detail/363929" , "title": "John H. Prescott Marine Mammal Rescue Assistance Grant", "agency": "DOC NOAA - ERA Production", "status": "open", "close_date": "2026-12-01", "eligibility": "Native American tribal organizations (other than Federally recognized tribal governments), City or township governments, Individuals, For profit organizations other than small businesses, Native American tribal governments (Federally recognized), Public and State controlled institutions of higher ed…", "posted_date": "2026-09-23", "opportunity_id": "363929", "award_floor_usd": 1, "funding_category": "Natural Resources, Science and Technology and other Research and Development", "award_ceiling_usd": 150000, "short_description": "NOAA/National Marine Fisheries Service’s (NMFS) Marine Mammal Health and Stranding Response Program (MMHSRP) is authorized under the Marine Mammal Protection Act (MMPA) to facilitate collecting and disseminating reference data on stranded marine mammals (cetaceans and pinnipeds, excluding walrus) an…" , "opportunity_number": "NOAA-NMFS-PRPO-2026-31863", "assistance_listing_number": "11.061", "expected_number_of_awards": null, "estimated_total_program_funding_usd": null }, { "link": "https://www.grants.gov/search-results-detail/363729" , "title": "SEFSC Bluefin Tuna Research Program", "agency": "DOC NOAA - ERA Production", "status": "open", "close_date": "2026-12-31", "eligibility": "County governments, Nonprofits that do not have a 501(c)(3) status with the IRS, other than institutions of higher education, Public and State controlled institutions of higher education, For profit organizations other than small businesses, Special district governments, Nonprofits having a 501(c)(3…", "posted_date": "2026-08-27", "opportunity_id": "363729", "award_floor_usd": 25000, "funding_category": "Environment, Science and Technology and other Research and Development", "award_ceiling_usd": 300000, "short_description": "The objective of the program is to provide a basis for advancing science-based fisheries management for Atlantic bluefin tuna. Such advancement will depend upon improvements in understanding of the fisheries, total abundance, and biology of bluefin tuna, especially regarding the effects of mixing an…", "opportunity_number": "NOAA-NMFS-SE-2027-33642", "assistance_listing_number": "11.058", "expected_number_of_awards": 5, "estimated_total_program_funding_usd": 600000 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"grants.gov/search_grants","input":{"agency":"Department of Commerce","status":"open","keywords":"rural broadband","max_results":2,"who_can_apply":"tribal_governments"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "grants.gov/search_grants" , "input": { "agency": "Department of Commerce", "status": "open", "keywords": "rural broadband", "max_results": 2, "who_can_apply": "tribal_governments" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "grants.gov/search_grants" , "input": { "agency": "Department of Commerce", "status": "open", "keywords": "rural broadband", "max_results": 2, "who_can_apply": "tribal_governments" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run grants.gov/search_grants# with {"agency":"Department of Commerce","status":"open","keywords":"rural broadband","max_results":2,"who_can_apply":"tribal_governments"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "keywords" ], "properties": { "agency": { "type": "string", "description": "Agency name in words, for example Department of Energy." }, "status": { "enum": [ "open", "forecasted", "closed" ], "type": "string", "default": "open", "description": "Opportunity status, for example open. Defaults to open." }, "keywords": { "type": "string", "minLength": 1, "description": "Words describing the grant topic, for example rural broadband." }, "max_results": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Maximum number of grants to return, for example 25 (up to 100)." }, "who_can_apply": { "enum": [ "anyone", "nonprofits", "small_businesses", "state_governments", "city_or_county_governments", "tribal_governments", "universities", "individuals" ], "type": "string", "default": "anyone", "description": "Eligible applicant type, for example nonprofits. Defaults to anyone." } }}Output schema
{ "type": "object", "required": [ "grants" ], "properties": { "grants": { "type": "array", "items": { "type": "object", "required": [ "title", "agency", "opportunity_number", "status", "posted_date", "close_date", "award_ceiling_usd", "award_floor_usd", "estimated_total_program_funding_usd", "expected_number_of_awards", "eligibility", "funding_category", "short_description", "link", "opportunity_id", "assistance_listing_number" ], "properties": { "link": { "type": "string", "format": "uri", "description": "Link to the opportunity on Grants.gov." }, "title": { "type": "string", "description": "Grant title." }, "agency": { "type": "string", "description": "Publishing agency." }, "status": { "type": "string", "description": "Opportunity status." }, "close_date": { "type": [ "string", "null" ], "format": "date", "description": "Application closing date, if supplied." }, "eligibility": { "type": [ "string", "null" ], "description": "Eligible applicants and additional eligibility conditions." }, "posted_date": { "type": [ "string", "null" ], "format": "date", "description": "Posting date." }, "opportunity_id": { "type": "string", "description": "Grants.gov opportunity identifier." }, "award_floor_usd": { "type": [ "number", "null" ], "description": "Lowest award amount in U.S. dollars, if given." }, "funding_category": { "type": [ "string", "null" ], "description": "Funding activity category in words." }, "award_ceiling_usd": { "type": [ "number", "null" ], "description": "Highest award amount in U.S. dollars, if given." }, "short_description": { "type": [ "string", "null" ], "description": "Short description of the opportunity." }, "opportunity_number": { "type": "string", "description": "Opportunity number." }, "assistance_listing_number": { "type": [ "string", "null" ], "description": "Assistance listing (CFDA) number, or multiple numbers separated by commas." }, "expected_number_of_awards": { "type": [ "integer", "null" ], "description": "Expected number of awards, if given." }, "estimated_total_program_funding_usd": { "type": [ "number", "null" ], "description": "Estimated total funding in U.S. dollars, if given." } }, "additionalProperties": false }, "description": "Matching opportunities, soonest closing date first; undated opportunities last." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
grants.gov/search_grants- Returns
- title, agency, opportunity number, status, dates, award amounts, eligibility, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method grants.gov/search_grants with the inputs above.
Ask your agent
- Find open federal grants for rural broadband expansion from the Department of Agriculture that nonprofits can apply for
- Show me forecasted NSF grant opportunities on quantum computing research for universities
- Any closed grants from the Department of Energy about solar storage that small businesses could have applied to? Return up to 10
- I need open federal funding for tribal housing projects, limited to tribal governments, with award amounts and deadlines
- What grant opportunities on grants.gov are currently open for community health outreach that city or county governments can apply for?
See more
Finds NIH research grants by topic, organisation, or researcher name. Searches the last five fiscal years by default.
reporter.nih.gov/search_grantsSearches USAspending federal awards by keywords, awarding agency, state of performance and date across contracts, grants, loans and direct payments. Searches from October 1, 2007 onward.
usaspending.gov/search_federal_awardsFinds active federal contract notices on SAM.gov that match keywords, agency, place of performance, set-aside, notice type and posting period.
sam.gov/search_contract_opportunitiesFind Federal Register rules, proposed rules, notices, and presidential documents by topic, agency, publication dates, and comment status. Significant means designated significant by the source; documents without that designation show no.
federalregister.gov/search_rulesSearches USAJOBS federal jobs by keywords, location, salary threshold and applicant group, in website relevance order. Salary ranges may start below the threshold; annual pay or remote status is null when the announcement does not state it.
usajobs.gov/search_jobsGets a federal agency's fiscal-year budgetary resources, obligations, share of federal obligations, new award count, top recipients and spending classes from USAspending.
usaspending.gov/get_agency_spendingFinds open UK public-sector tender notices on Find a Tender matching keywords, optionally filtered by contract region, estimated value and closing date, newest first.
find-tender.service.gov.uk/search_tendersReturns federal obligations and distinct awards for a company or organization, including its parent and child recipient records. Covers the selected fiscal year or the last five fiscal years.
usaspending.gov/get_company_federal_awards