USAspending Scraper — Federal Contract & Grant Awards avatar

USAspending Scraper — Federal Contract & Grant Awards

Pricing

from $1.60 / 1,000 awards

Go to Apify Store
USAspending Scraper — Federal Contract & Grant Awards

USAspending Scraper — Federal Contract & Grant Awards

US federal contract and grant awards from USAspending.gov: agency, recipient organisation, amount, dates, NAICS/PSC or assistance listing, place of performance. Filter by keyword, agency, amount, state; flag awards new since your last run. Official API, no login.

Pricing

from $1.60 / 1,000 awards

Rating

0.0

(0)

Developer

Northbell

Northbell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Features

Limited permissions

Share

Search the US government's USAspending.gov by keyword, awarding agency, amount, state or industry code and get one clean row per award: awarding agency and sub-agency, recipient organisation, total amount, start and end dates, NAICS and PSC codes (contracts) or Assistance Listing number (grants and loans), place of performance and award type, with a link to the award on USAspending. $2.00 per 1,000 awards, no login, no API key.

Run it again, or put it on a daily schedule, and every row also tells you whether the award is new since the last run (isNew). Set What to return to Only new and you pay only for the awards you have not seen before. USAspending counted 144,130 new contracts in the 30 days to 16 Oct 2026, so the useful question is what appeared since yesterday; this keeps the list of what you have already seen.

What you get

FieldWhat it is
awardId, uniqueAwardKey, urlthe award's own ID (contract PIID or grant FAIN), USAspending's unique key for it, and the link to its page on USAspending
awardGroup, awardTypecontracts, idvs, grants, direct-payments, loans or other-assistance, and the award type as the source names it (DELIVERY ORDER, PROJECT GRANT (B), DIRECT LOAN (E)…)
isNew, previousRunAttrue / false whether you had not seen this award in your previous run of the same search, and when that run was (null on the first run)
descriptionwhat the award is for, as the agency wrote it, cut at 500 characters (a trailing … marks a cut)
awardingAgency, awardingSubAgency, fundingAgency, fundingSubAgencywho made the award and whose budget it comes from
recipientName, recipientUei, recipientCity, recipientState, recipientCountrythe recipient organisation, its Unique Entity ID and its location
recipientIsIndividualtrue when the recipient may be a person (see Notes): the recipient and place fields and the description are then null
amount, amountKindtotal-obligation = the money obligated to the award so far, or loan-face-value for loans and loan guarantees
totalOutlays, subsidyCostmoney actually paid out so far (where the source states it); the subsidy cost of a loan
awardedOn, startDate, endDate, lastDateToOrder, lastModifiedOnthe date the award was first signed, the period of performance (a loan's issue date is its startDate), the last date a framework agreement can be ordered from, and the day the record last changed
naicsCode, naicsDescription, pscCode, pscDescriptionthe industry (NAICS) and Product and Service Code of a contract
assistanceListingNumber, assistanceListingsthe federal program of a grant, loan or payment (for example 93.671) with its title; an award can sit under several programs, all are listed
placeCity, placeState, placeZip5, placeCountrywhere the work is done
observedAtwhen the row was collected

Run it again and again

  • On a schedule: save your input as a task and add a Schedule: the same search every morning. Send each run to Google Sheets, Slack or email with an integration on the task.
  • Watch for changes: Set What to return to Only awards that are new since the last run.
  • In bulk: Combine Keywords, Awarding agencies, States and NAICS / PSC codes in one run.

Use it for

  • Competitor and market tracking: who wins contracts for what you sell: recipient, agency, amount and period, from a daily Only new feed
  • Lead lists for subcontractors and suppliers: the prime contractors that just won work in your NAICS code or your state
  • Grant landscape: which organisations receive money under a program (assistanceListings), from which agency, and how much
  • Research and journalism: a spreadsheet of awards by agency, keyword or amount range, each linked to the official record

Input

{
"awardType": "contracts",
"keywords": ["cloud"],
"agencies": ["Department of Veterans Affairs"],
"awardedWithinDays": 30,
"minAmount": 100000,
"states": ["VA", "MD"],
"maxResults": 200,
"output": "new"
}
  • All filters are combined with AND; the entries inside one list are combined with OR.
  • awardType: one kind per run, because the source reports different fields for each: contracts, idvs (indefinite-delivery vehicles), grants, direct-payments, loans, other-assistance.
  • keywords: each line is searched as a word or phrase in the award; an award that matches any line is returned.
  • agencies: the official name or abbreviation of the top-level agency (Department of Defense or DOD). A name the Actor cannot find stops the run before anything is charged.
  • awardedWithinDays, startDate, endDate, dateBasis — New awards (default) means the award was first signed in the period. Latest action also returns older awards that were modified in the period.
  • minAmount, maxAmount — in US dollars, on the total obligation (loans: face value).
  • states: the place of performance, two-letter codes.
  • naicsCodes, pscCodes — contracts and IDVs; a shorter code covers its whole branch. assistanceListings — grants, direct payments, loans and other assistance, in the form 10.331.
  • Results are sorted newest first (or largest first), and maxResults (default 100, up to 5,000) cuts the list. With Only new it is the number of new awards to return: the Actor reads down the list, past the awards you have already seen (up to 5,000 awards deep), until it has found that many. Awards below the cut-off are not marked as seen, so they come back as new in your next run.

"Is it new" is remembered per search — the same award type, keywords, agencies, states, codes and amounts — in a named key-value store in your Apify account, so the second run of the same search already shows isNew. Changing Awarded within, Maximum awards or the sort order keeps the same history.

Pricing

$2.00 per 1,000 awards, plus $0.01 per run. Error rows (a search USAspending rejects, USAspending not answering) are free. With Only new, awards you have already seen are skipped and not charged. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing.

Notes

  • Source: the public search API of USAspending.gov, the US Department of the Treasury's federal spending site. The API documents that its endpoints need no authorization, and nothing from behind a login is read. I found no licence or terms-of-use text on USAspending.gov or in its API documentation that restricts reuse of the data, and its API code is published under CC0; the federal data is listed on Data.gov with public access level. The Actor identifies itself in its requests and pauses 0.7 seconds between them. This Actor is not affiliated with or endorsed by the US Department of the Treasury.
  • Recipients who may be people. Awards to individuals (some grants and payments) are already masked in the source as INDIVIDUAL RECIPIENT. In addition, for every page the Actor asks USAspending which of those awards went to a recipient registered as an individual or a sole proprietorship; for those rows recipientName, recipientUei, the recipient and place-of-performance fields and description are null and recipientIsIndividual is true. The check is deliberately broad: it also catches companies that registered as sole proprietorships, so some company names are withheld too (10 of 500 contracts in a live read on 16 Oct 2026, none of 500 grants). If the check cannot be answered, that page is not output (a free error row says so). Free text can still name a person inside an organisation's description, so check descriptions before you republish them.
  • No contact persons, emails or phone numbers are returned; the Actor never asks for them, and emails or international phone numbers that appear inside a description are removed.
  • In a live read of 500 new contracts on 16 Oct 2026: naicsCode and pscCode were filled on all 500, description on 490, recipientUei on 490 and placeState on 487. amount was 0 or less on 9 of the 500, so filter small amounts before you add them up. Of 500 new grants, assistanceListingNumber was filled on all 500, and 293 descriptions were longer than 500 characters and were cut.
  • amount is what has been obligated so far, not the ceiling of a framework agreement. Use Latest action if you want awards that were modified in the period; the same award then shows its current amount.
  • Defense contracts arrive late. In a live count on 16 Oct 2026, awarding agency Department of Defense had 16 new contracts in the last 30 days and 48 in the last 90, against 240,357 in the last 120 days; all agencies together had 144,130 in the last 30 days. For DOD, use a period of 120 days or more.
  • The source cannot search before 2007-10-01.
  • A live read of 500 contracts took 11 seconds and 500 grants 12 seconds on 16 Oct 2026.
  • If USAspending is rate limiting or unavailable, the Actor waits and retries twice. If it still gets no answer it adds a free error row, and the run is marked failed when nothing at all could be read.

For the European equivalent, see EU Tenders Scraper (TED). To find US federal funding you can still apply for, see Grants.gov Scraper. If the winner of an award is a UK company, see UK Companies House Scraper for its register entry.

For AI agents

{"awardType": "contracts", "keywords": ["cloud"], "awardedWithinDays": 30, "maxResults": 5} returns up to 5 rows, newest first, each with agency, recipient organisation, amount and dates. Rows have type: award or error. Fields that do not apply to an award are null (or an empty list), never missing. Schedule the same input daily with "output": "new" to get only what was signed since the previous run.

**Something broke or looks wrong?** Open an issue on this Actor's Issues tab and I'll look at it. **Found it useful?** A short review on the Store page helps other people find it.