USAspending API: Search federal awards
Searches 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.
Unofficial. Not affiliated with or endorsed by USAspending.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Sort optional
sort Order by largest amount or newest award, for example newest.
largest_amount (default)
One of
largest_amount,newest.- State optional
state State where the work is performed, for example California or CA.
Not set
- Agency optional
agency Awarding agency name, for example Department of Energy.
Not set
- End Date optional
end_date Last date to search in YYYY-MM-DD, for example 2026-09-29. Defaults to today.
Not set
- Keywords, required
keywords Topic to search for, for example wildfire prevention.
wildfire
- Award Type optional
award_type Award kinds to include, for example grants.
contracts
One of
all,contracts,grants,loans,direct_payments. Defaultall.- Start Date optional
start_date First date to search in YYYY-MM-DD, for example 2025-10-01. Defaults to 12 months before end date.
Not set
- Max Results optional
max_results Maximum awards to return, for example 25.
100
Whole number from 1 to 100. Default
25.
Input as JSON
{ "keywords": "wildfire", "award_type": "contracts", "max_results": 100}Output
{ "awards": [ { "amount": 735420508.05, "award_id": "W912PL25F0041", "end_date": "2026-01-07", "award_link": "https://www.usaspending.gov/award/CONT_AWD_W912PL25F0041_9700_W912EK23D0011_9700" , "award_type": "DELIVERY ORDER", "start_date": "2025-02-10", "description": "CALIFORNIA WILDFIRES 2025 PPDR EATON. ISSUED BY USACE IN SUPPORT OF FEMA PER THE STAFFORD ACT.", "currency_code": "USD", "recipient_uei": "LJPLMV3GCYE7", "recipient_name": "ECC CONSTRUCTORS LLC", "awarding_agency": "Department of Defense", "place_of_performance_city": "ALTADENA", "place_of_performance_state": "California" }, { "amount": 614335065.02, "award_id": "W912PL25F0042", "end_date": "2026-01-07", "award_link": "https://www.usaspending.gov/award/CONT_AWD_W912PL25F0042_9700_W912EK23D0011_9700" , "award_type": "DELIVERY ORDER", "start_date": "2025-02-10", "description": "CALIFORNIA WILDFIRES 2025 PPDR PACIFIC PALISADES. ISSUED BY USACE IN SUPPORT OF FEMA PER THE STAFFORD ACT.", "currency_code": "USD", "recipient_uei": "LJPLMV3GCYE7", "recipient_name": "ECC CONSTRUCTORS LLC", "awarding_agency": "Department of Defense", "place_of_performance_city": "PACIFIC PALISADES", "place_of_performance_state": "California" }, { "amount": 373314199.4, "award_id": "W9128A24F0011", "end_date": "2026-02-25", "award_link": "https://www.usaspending.gov/award/CONT_AWD_W9128A24F0011_9700_W912EK22D0004_9700" , "award_type": "DELIVERY ORDER", "start_date": "2024-01-05", "description": "DEBRIS REMOVAL & DISPOSAL OPERATIONS FOR 268 PROPERTIES IN LAHAINA, HI DUE TO THE HAWAII WILDFIRE IN AUGUST 2023.", "currency_code": "USD", "recipient_uei": "LJPLMV3GCYE7", "recipient_name": "ECC CONSTRUCTORS LLC", "awarding_agency": "Department of Defense", "place_of_performance_city": "LAHAINA", "place_of_performance_state": "Hawaii" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"usaspending.gov/search_federal_awards","input":{"keywords":"wildfire","award_type":"contracts","max_results":100}}' # 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": "usaspending.gov/search_federal_awards" , "input": { "keywords": "wildfire", "award_type": "contracts", "max_results": 100 }})# 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": "usaspending.gov/search_federal_awards" , "input": { "keywords": "wildfire", "award_type": "contracts", "max_results": 100 } }), 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 usaspending.gov/search_federal_awards# with {"keywords":"wildfire","award_type":"contracts","max_results":100}"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": { "sort": { "enum": [ "largest_amount", "newest" ], "type": "string", "default": "largest_amount", "description": "Order by largest amount or newest award, for example newest." }, "state": { "type": "string", "description": "State where the work is performed, for example California or CA." }, "agency": { "type": "string", "description": "Awarding agency name, for example Department of Energy." }, "end_date": { "type": "string", "description": "Last date to search in YYYY-MM-DD, for example 2026-09-29. Defaults to today." }, "keywords": { "type": "string", "minLength": 1, "description": "Topic to search for, for example wildfire prevention." }, "award_type": { "enum": [ "all", "contracts", "grants", "loans", "direct_payments" ], "type": "string", "default": "all", "description": "Award kinds to include, for example grants." }, "start_date": { "type": "string", "description": "First date to search in YYYY-MM-DD, for example 2025-10-01. Defaults to 12 months before end date." }, "max_results": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Maximum awards to return, for example 25." } }}Output schema
{ "type": "object", "required": [ "awards" ], "properties": { "awards": { "type": "array", "items": { "type": "object", "required": [ "recipient_name", "amount", "currency_code", "awarding_agency", "description", "award_type", "start_date", "end_date", "place_of_performance_city", "place_of_performance_state", "award_link", "award_id", "recipient_uei" ], "properties": { "amount": { "type": [ "number", "null" ] }, "award_id": { "type": [ "string", "null" ], "x-fous-developer": true }, "end_date": { "type": [ "string", "null" ], "format": "date" }, "award_link": { "type": [ "string", "null" ] }, "award_type": { "type": [ "string", "null" ] }, "start_date": { "type": [ "string", "null" ], "format": "date" }, "description": { "type": [ "string", "null" ] }, "currency_code": { "type": "string" }, "recipient_uei": { "type": [ "string", "null" ], "x-fous-developer": true }, "recipient_name": { "type": [ "string", "null" ] }, "awarding_agency": { "type": [ "string", "null" ] }, "place_of_performance_city": { "type": [ "string", "null" ] }, "place_of_performance_state": { "type": [ "string", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
usaspending.gov/search_federal_awards- Returns
- recipient, amount, agency, description, award type, dates, place of performance, award link, award ID, recipient UEI
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 usaspending.gov/search_federal_awards with the inputs above.
Ask your agent
- Find the largest federal grants awarded for wildfire prevention in California since 2022, showing recipient, amount and place of performance.
- Show me the newest contracts the Department of Energy awarded for battery storage research in 2025.
- List federal loans and direct payments tied to rural broadband in Montana between 2019 and 2024, sorted by amount.
- On usaspending.gov, pull up awards for water infrastructure in Texas from October 2023 through September 2025, limited to 50 results.
- Which recipients got the biggest federal awards for veteran housing programs in Ohio over the past year? I need recipient UEI and award IDs.
See more
All USAspending methodsReturns 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_awardsGets 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 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.
grants.gov/search_grantsFinds 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_opportunitiesFinds NIH research grants by topic, organisation, or researcher name. Searches the last five fiscal years by default.
reporter.nih.gov/search_grantsSearches 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_jobsFinds published EU contract award notices on Tenders Electronic Daily by contract topic or winning company, newest publication first, optionally limited to a buyer country and a start date. Values and tender counts are included when published; counts across lots are summed.
ted.europa.eu/search_contract_awardsFind 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_rules