USAspending — Federal Contracts and Grants Search
Pricing
from $30.00 / 1,000 search runs
USAspending — Federal Contracts and Grants Search
Search every prime federal contract, grant, loan and direct payment recorded by the US Treasury on USAspending.gov. Filter by keyword, agency, recipient, date, amount, NAICS, PSC and place of performance. Free government data, no key, no scraping.
Pricing
from $30.00 / 1,000 search runs
Rating
0.0
(0)
Developer
Benjamin Jerez
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search every prime award the US Treasury publishes on USAspending.gov: contracts, IDVs, grants, loans, direct payments. Filter by keyword, agency, recipient, date, amount, NAICS, PSC and place of performance, and get back structured rows with a link to the public award page.
No API key, no scraping, no rate card. The data is federal open data and the Actor queries it live on every run.
What a search returns
awardType: contracts, keywords: ["quantum computing"], dateFrom: 2024-01-01, dateTo: 2026-09-01, minAmount: 5000000, placeOfPerformanceState: MD returned three awards. The top one:
| Field | Value |
|---|---|
awardId | HR001122F0052 |
recipientName | THE JOHNS HOPKINS UNIVERSITY APPLIED PHYSICS LABORATORY LLC |
recipientUei | C1HBCJ9RMBV3 |
awardingAgency / awardingSubAgency | Department of Defense · Defense Advanced Research Projects Agency |
description | UNDEREXPLORED SYSTEMS FOR UTILITY-SCALE QUANTUM COMPUTING (US2QC) PROGRAM |
awardAmount / obligatedAmount | 31 575 626 |
potentialAmount | 42 470 702 |
startDate / endDate | 2022-06-06 · 2027-10-31 |
naics / psc | 541715 · AC11 |
placeOfPerformance | LAUREL, MD |
awardUrl | https://www.usaspending.gov/award/CONT_AWD_HR001122F0052_9700_HR001122D0001_9700 |
Every run also emits one summary row first, carrying the exact filter object sent to the API, the returned count, how many duplicate records were dropped, which pagination mode was used, and a note that explains a zero result rather than leaving you guessing.
The amount question, answered
This is the field that decides whether a number means anything to you.
awardAmount is money obligated to date — the API's total_obligation. It is not the contract ceiling and not the potential value. For the Johns Hopkins award above, obligated is 31 575 626 while the ceiling is 42 470 702: a 35 per cent difference on one row.
On IDVs the gap is wider still. A NASA schedule held by Leidos shows 965 231 972 obligated against a ceiling of 2 457 479 894, and an FAA vehicle held by L3Harris shows 1 130 368 671 against 2 300 000 000. Reading the first number as "what they won" understates it by more than half.
Turn on Fetch full award detail and each row also gets potentialAmount (base and all options, the ceiling), baseExercisedOptions, totalOutlays (cash actually paid out), dateSigned, subawardCount and totalSubawardAmount. That costs one extra request per award and no extra charge.
Loans work differently: there is no obligation figure at all. awardAmount carries the face loanValue and subsidyCost carries what the subsidy costs the government. A 2026 Department of Energy direct loan to Georgia Power shows loanValue 22 414 694 000 with subsidyCost 0, while one to BlueOval SK shows 17 714 080 000 against a subsidy cost of 130 046 040. Every row states which basis it is on in amountBasis.
What the dates actually filter
USAspending's default date filter is the action date, and it behaves in a way that surprises most people: it returns any award that had a transaction inside your window, then reports that award's lifetime totals.
Searching artificial intelligence contracts in the window 2026-06-01 to 2026-06-30 returns an ECS Federal contract that started 2020-04-23 and runs to 2027-03-11, at its full 120 575 059 obligated. The award is in the result set because it was modified in June 2026, not because anything happened in June 2026 worth 120 million.
Set What the dates mean to new awards only and the same window returns awards that were actually signed in it — Accenture Federal Services starting 2026-07-28, Four Points Technology starting 2026-06-29, MVation Worldwide starting 2026-06-09. Use that when you are tracking new business rather than portfolio activity.
date_signed behaves the same way as new awards only in practice; last_modified_date filters on when the record was edited, which is a data-freshness question rather than a spending one.
The archive starts at 2007-10-01. Earlier start dates are rejected by the API, and the Actor clamps to that date rather than failing.
How keyword search behaves
Keywords are matched against the award description, the recipient name, the recipient UEI and the award ID, not the description alone.
Verified on live data: searching MAVERIS returns MAVERIS LLC rows whose descriptions never contain the word, because the match came from the recipient name. Searching the UEI XYB4JU4PA6T4 returns ECS Federal rows. Searching the contract number W911QX20C0023 returns exactly that one contract.
It is a fuzzy full-text match, not a substring match. MAVERIS also returns a Raytheon contract for MAVERICK missile spares and a Salient CRGT task order named MAVERICK. Expect near-misses on short or unusual terms, and check description and recipientName before treating a row as a hit.
Several keywords are combined with OR, not AND. A search for cybersecurity over 2024 to 2026 returned Lockheed Martin, Amentum, General Dynamics IT, Deloitte, Maveris and Millennium — all plausibly in scope.
One award family per run
The API refuses a request that mixes award families: contracts and grants sit in different tables with different columns, so one result set cannot hold both. Award type is therefore a single choice, and the codes behind each choice are:
| Choice | Codes |
|---|---|
| Contracts | A, B, C, D |
| IDVs | IDV_A, IDV_B, IDV_B_A, IDV_B_B, IDV_B_C, IDV_C, IDV_D, IDV_E |
| Grants | 02, 03, 04, 05, F001, F002 |
| Loans | 07, 08, F003, F004 |
| Direct payments | 06, 10, F006, F007 |
| Other financial assistance | 09, 11, -1, F005, F008, F009, F010 |
The shape of a row follows the family. Contracts and IDVs carry naics, psc and awardType such as DELIVERY ORDER. Grants and direct payments carry assistanceListing instead — a NASA project grant to Wichita State University comes back as 43.014 CONGRESSIONALLY DIRECTED PROGRAMS. IDVs have no end date; they have lastDateToOrder.
Run the Actor twice if you need both contracts and grants.
Who uses this
Government-contracting firms sizing a market before they bid, and tracking which agencies buy what. Competitive-intelligence teams watching a named competitor's award flow by recipient name or UEI. Research and policy groups measuring federal spend on a topic across agencies. Journalists and watchdogs following money to a recipient, a state or a programme. Sales teams at vendors selling into federal agencies, who want the incumbent, the ceiling and the end date on a contract that is coming up for recompete.
Scope and limits
Prime awards only. Subawards exist in USAspending but are a different result shape and are not returned here.
An agency name that does not match returns zero rows, silently. The API does not validate it. The Actor checks your name against the official 111-entry top-tier list before searching and puts the near matches in the summary row — Department of Energery comes back with agencyMatch: no top-tier match and a note suggesting Department of Energy. Sub-agency names such as Department of the Army also work and are sent at both tiers.
Duplicate records exist in the source index. Some awards, mostly Army contracts, are indexed twice under two different internal identifiers with identical amounts. A 300-award run on artificial intelligence hit eight of them. The Actor deduplicates on the public award identifier and reports the count in duplicatesDropped.
Depth. Results are fetched 100 at a time. The API refuses page numbers past 50 000 records, so beyond that the Actor switches to cursor paging and continues; paginationMode in the summary row says which was used.
Source and licence
USAspending.gov, operated by the US Department of the Treasury under the DATA Act, through api.usaspending.gov/api/v2. US federal government works, public domain. The award detail used for potentialAmount comes from the same endpoint the USAspending website itself calls, so the figures match the public award page.
Frequently asked
Why did a search return nothing?
Read the note on the summary row — it names the likely cause. In order of frequency: an agency name USAspending spells differently, a date window that is narrower than you think given the action-date default, and a keyword that appears in no description, recipient name or award identifier.
Why is awardAmount smaller than the value I saw quoted in the press?
Because press figures usually quote the ceiling. awardAmount is obligated to date. Switch on Fetch full award detail for potentialAmount.
Why is naics empty on my grants?
Because assistance awards are classified by assistance listing (CFDA), not by industry code. Use assistanceListing.
Can I get more than 50 000 awards? Yes. Set Maximum awards higher and the Actor pages past the API's page-number ceiling with a cursor.
Is totalOutlays of 0 an error?
No. It means no money has been disbursed against the award yet, which is normal early in a period of performance. A 2023 University of Maryland delivery order for 18 000 000 obligated shows totalOutlays of 0.