USAspending Federal Awards & Recipient Monitor avatar

USAspending Federal Awards & Recipient Monitor

Pricing

from $2.00 / 1,000 award records

Go to Apify Store
USAspending Federal Awards & Recipient Monitor

USAspending Federal Awards & Recipient Monitor

Track awarded US federal contracts, grants, loans and IDVs from USAspending.gov by recipient, UEI, agency, NAICS or PSC. Obligations and outlays kept separate, award links, and new/updated alerts between runs.

Pricing

from $2.00 / 1,000 award records

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

USAspending Federal Awards & Recipient Monitor finds US federal contracts, grants, loans and other awards in the official USAspending.gov data. Filter by recipient name or UEI, awarding agency, NAICS, PSC, keyword and dates. You get one clean row per award, with the recipient, the agencies, the obligated amount and the outlays as separate numbers, dates, codes and links to USAspending.

It is made for B2G sales and capture teams, due diligence and grant research. Save a monitor key and the next run shows only new and updated awards. No login and no API key are needed. The form example (20 Veterans Affairs IT contracts from the last 30 days) finishes in a few seconds and costs $0.042.

US Federal Awards Monitor: agency, NAICS and date filters in, one row per federal award out with obligated amount and outlays kept apart, plus new and updated awards since the last run

Contents

What it does

The Actor reads the public USAspending API of the U.S. Department of the Treasury. It runs the same award search as the USAspending.gov Award Search page, live, one request at a time.

  • Award search. Pick award types (contracts, IDVs, grants, loans, direct payments, other assistance) and filters. Each award type is searched on its own, and maxResults applies to each type.
  • Clear names. Agency names and abbreviations (VA, NIH, DOD) are checked against the official agency list. A name that does not exist stops the run with suggestions. It does not silently return nothing.
  • Monitoring. With a monitorKey, the Actor saves the awards it saw in your account. The next run marks each award new, updated or unchanged, and by default writes only the new and updated ones.

Awards are money that the government already awarded. They are not open tenders or bids. For open opportunities, use SAM.gov.

Prime awards only. Sub-awards are not included, and IDVs (contract vehicles such as GWACs, BPAs and IDIQs) are their own award type, so the same money is not counted twice.

Good fit

  • See who wins contracts at an agency for your NAICS or PSC codes.
  • List all federal awards of a company or university by name or UEI.
  • Watch an agency, a competitor or a market every week and get only the changes.
  • Find grants or loans of an agency in a period, with the amount obligated and the amount already paid out.

Not a fit

  • Open tenders, solicitations or bid deadlines. This is award data, not SAM.gov.
  • Sub-awards, transaction history or contract officers.
  • A full copy of USAspending. Use the official bulk downloads for that.
  • Phone numbers, emails or company ownership data.

Quick start

  1. Open the Input tab. The form already has an example: contracts of the Department of Veterans Affairs, NAICS 541512 (computer systems design), last 30 days, 20 awards.
  2. Click Start.
  3. Open the Awards view in the Output tab. Check recipientName, awardAmount, totalOutlays and awardUrl.
  4. Change the agency, codes or recipients to your own. To get only changes next time, add a monitorKey such as va-it-contracts.

Expected result: 20 award rows in a few seconds, largest awards first.

Use cases

Buyer jobInputOutputKey fields
Who wins in my marketawardingAgencies + naicsCodes or pscCodescontract rowsrecipientName, recipientUei, awardAmount, awardingSubAgency
Company due diligencerecipients (name or UEI), several awardTypesall award types of that recipientawardTypeGroup, awardAmount, totalOutlays, recipientUrl
Grant researchawardTypes: ["grants"] + agency + datesgrant rowsassistanceListings, awardAmount, totalOutlays, description
Weekly competitor watchfilters + monitorKey, on a scheduleonly new and updated awardschangeType, changedFields, previousValues

Input

All filters are optional and combine with AND. Lists inside one filter combine with OR. Without any filter, the run returns the largest awards of the period.

FieldTypeDefaultAllowed valuesWhat it does
awardTypesarray["contracts"]contracts, idvs, grants, loans, direct_payments, otherWhich kinds of awards to search. Each type is a separate search.
awardingAgenciesarray of stringsall agenciesup to 10Department or sub-agency, full name or abbreviation: Department of Veterans Affairs, VA, National Institutes of Health, NIH. Unknown names stop the run with suggestions.
recipientsarray of stringsall recipientsup to 20Recipient name or 12-character UEI. Names use the USAspending text search, so check recipientName and recipientUei.
naicsCodesarray of stringsallup to 50; 2–6 digitsIndustry codes. Contracts and IDVs only.
pscCodesarray of stringsallup to 50; 1–4 letters or digitsProduct and Service Codes, like DA01. Contracts and IDVs only.
keywordsarray of stringsnoneup to 10; 3–100 charactersWords in the award description and other text fields.
dateFilterstringactivityactivity, new_awards, last_modifiedactivity: any transaction in the range. new_awards: the first action is in the range. last_modified: the record changed in the range.
lookbackDaysinteger301–3650Days back from dateTo. Ignored when dateFrom is set.
dateFrom, dateTodatedateTo = today (UTC)YYYY-MM-DDExact range. Search data starts on 2007-10-01; earlier dates move to that day.
sortBystringamountamount, last_modifiedWhich awards come first when there are more than maxResults. Loans sort by face value.
maxResultsinteger1001–500Maximum awards per award type.
monitorKeystringnone1–40 letters, digits or dashesSaves this run's awards and compares the next run with them. Use one key per saved search.
previousDatasetIdstringnonedataset IDCompares with the dataset of an earlier run of this Actor. Use this or monitorKey, not both.
onlyChangesbooleantrueWith a comparison, skip unchanged awards. You do not pay for skipped awards.

NAICS and PSC exist only on contracts and IDVs. If you add them with other award types, those types are skipped with a warning. If only such types are left, the run stops with INVALID_INPUT.

Input examples

All awards of one company, by UEI:

{
"recipients": ["DT2KS3HH5FP5"],
"awardTypes": ["contracts", "idvs", "grants"],
"lookbackDays": 365,
"maxResults": 200
}

Weekly watch of new NIH grants, only changes:

{
"awardTypes": ["grants"],
"awardingAgencies": ["NIH"],
"dateFilter": "new_awards",
"lookbackDays": 30,
"maxResults": 300,
"monitorKey": "nih-new-grants"
}

Output

Each Dataset row is one award. Use the Awards view for the main fields and the Changes view for monitoring. The key-value store has a RUN_SUMMARY record with the run status and counts.

Fields

FieldMeaningExample
awardTypeGroupThe award type you selected"contracts"
generatedInternalIdStable USAspending award key. Use it to join and compare."CONT_AWD_36C10B21N10150057_3600_VA11816D1015_3600"
awardId, awardTypePIID or FAIN, and the detailed type"36C10B21N10150057", "DELIVERY ORDER"
recipientName, recipientUei, recipientIdRecipient and its IDs"BOOZ ALLEN HAMILTON INC", "KHK6E1JW9C15"
recipientLocationCity, county, state, ZIP, country, congressional district{"city": "EATONTOWN", "stateCode": "NJ", …}
awardingAgency, awardingAgencyCode, awardingSubAgency, awardingSubAgencyCodeAgency that made the award"Department of Veterans Affairs"
fundingAgency, fundingSubAgencyAgency that pays"Department of Veterans Affairs"
awardAmountAmount obligated (committed), in USD. For loans it is null; see the loan fields.753054309.17
totalOutlaysAmount paid out so far, in USD. Kept separate from awardAmount; never added up.561175619.99
loanFaceValue, loanSubsidyCostLoans only: face value and subsidy costnull
covid19Obligations, infrastructureObligationsPart of the obligation from COVID-19 or infrastructure (IIJA) funds1544364.8
currencyAlways USD"USD"
startDate, endDatePeriod of performance (for loans, startDate is the issued date). endDate is always null for IDVs and loans (see Limits)."2021-09-30", "2027-09-23"
lastDateToOrderIDVs only: last date to place ordersnull
baseObligationDateDate of the first obligation"2021-09-29"
lastModifiedDateWhen USAspending last changed the record, as published (no time zone)"2026-09-25T16:41:40"
naicsCode, naicsDescription, pscCode, pscDescriptionContracts and IDVs"541512", "DA01"
assistanceListingsGrants, loans and other assistance: CFDA / Assistance Listing numbers and titles[]
descriptionAward description"THE CONTRACTOR SHALL PROVIDE …"
placeOfPerformanceWhere the work is done{"city": "HERNDON", "stateCode": "VA", …}
awardUrl, recipientUrlUSAspending pages"https://www.usaspending.gov/award/CONT_AWD_…"
sourceProvider, endpoint and fetchedAt
changeTypeinitial (first monitor run), new, updated, unchanged, or null without a comparison"updated"
changedFields, previousValuesFor updated: which fields changed and their old values["totalOutlays"], {"totalOutlays": 540000000}

null means the source has no value. It never means zero. Negative amounts (de-obligations) are kept as published.

An award is updated when one of these fields changes: awardAmount, totalOutlays, loanFaceValue, loanSubsidyCost, startDate, endDate, lastDateToOrder, lastModifiedDate. An award is new when it was not in the saved list; this can also be an older award that has now moved into your top maxResults.

Output example

A trimmed contract row. The award values are real; the change fields show what a monitor run adds when outlays change:

{
"changeType": "updated",
"changedFields": ["totalOutlays", "lastModifiedDate"],
"awardTypeGroup": "contracts",
"awardId": "36C10B21N10150057",
"awardType": "DELIVERY ORDER",
"recipientName": "BOOZ ALLEN HAMILTON INC",
"recipientUei": "KHK6E1JW9C15",
"awardingAgency": "Department of Veterans Affairs",
"awardAmount": 753054309.17,
"totalOutlays": 561175619.99,
"startDate": "2021-09-30",
"endDate": "2027-09-23",
"naicsCode": "541512",
"pscCode": "DA01",
"awardUrl": "https://www.usaspending.gov/award/CONT_AWD_36C10B21N10150057_3600_VA11816D1015_3600"
}

Run summary

RUN_SUMMARY.status is one of:

StatusMeaningRun result
COMPLETERows were written. truncated: true means the source has more awards than maxResults.succeeded
NO_RESULTSThe source answered, and no award matches your filters.succeeded
NO_CHANGESComparison run: no new or updated awards.succeeded
PARTIALSome award types failed or time ran out; the rows you got are correct.succeeded
CAPPEDYour maximum cost per run was reached.succeeded
ERRORUSAspending was not available or changed its format. This is not an empty result.failed
INVALID_INPUTThe input is wrong, or an agency name was not found. message explains why.failed

RUN_SUMMARY also has counts (fetched, written, charged, new, updated, unchanged), one groups entry per award type with its own status, the filters used (with matched agency names), the comparison baseline, warnings and the data source.

Pricing

Pay per event. Platform usage is included.

EventPriceWhen
Actor start$0.002Once per run (per GB of memory; the default 256 MB counts once)
Award record$0.002Each award row written to the Dataset

Unchanged awards hidden by onlyChanges are free. A run with no results, no changes, an input error or a USAspending error costs only the start.

RunExample cost
10 awards$0.022
20 awards (form example)$0.042
100 awards$0.202
1,000 awards (for example 500 contracts + 500 grants)$2.002
Weekly monitor run with 5 changes$0.012
No results or no changes$0.002

Set a maximum cost per run in the run options to cap your spend. The Actor stops before a row that does not fit and reports CAPPED.

Limits

  • Up to 500 awards per award type, so up to 3,000 rows per run with all six types. In our test, 3,000 rows took about 85 seconds.
  • The Actor sends one request at a time, with a pause between requests, and retries when the source is busy. USAspending does not publish a rate limit.
  • Internal time budget is 270 seconds. If time runs out, you get the rows found so far and PARTIAL.
  • If USAspending is down or does not answer (up to 30 seconds per try and about 60 seconds per request in total, at most 3 tries and 2 timeouts), the run stops early and does not ask for the other award types. You get the rows found so far.
  • Monitor snapshots keep up to 20,000 awards per monitorKey. previousDatasetId reads up to 20,000 rows.
  • totalOutlays, endDate and other values come from the USAspending search index. The search index can be behind the award page on USAspending.gov, so outlays on the award page can be higher.
  • endDate is always null for IDVs (use lastDateToOrder) and for loans: the search index does not have it.
  • Loans have no awardAmount in the source. Use loanFaceValue and loanSubsidyCost. For loans, startDate is the loan's issued date.

API and integrations

Start a run with the same JSON input through the Apify API (POST /v2/acts/cliqtomedia~usaspending-federal-awards-monitor/runs), then read the Dataset. Export to CSV, Excel or JSON, or send the rows to Google Sheets, Slack or a webhook with the usual Apify integrations.

For monitoring, save the input as a task with a monitorKey and add an Apify schedule (for example every Monday). Each run then gives only new and updated awards. Join rows on generatedInternalId.

Use with AI agents (MCP)

AI agents can call this Actor through the Apify MCP server: add https://mcp.apify.com?tools=cliqtomedia/usaspending-federal-awards-monitor to your MCP client (Claude, Cursor, VS Code and others). The MCP server needs your Apify account (OAuth sign-in or an Apify API token); USAspending itself needs no key. The agent builds the input from the input schema. The smallest useful input:

{ "recipients": ["JOHNS HOPKINS UNIVERSITY"], "awardTypes": ["grants"], "maxResults": 10 }

Key output fields for an agent: recipientName, awardTypeGroup, awardAmount (obligated), totalOutlays (paid), awardingAgency, startDate, awardUrl, and RUN_SUMMARY.status. A call with 10–100 awards usually finishes in under 10 seconds and costs $0.022–$0.202. Very large runs (thousands of rows) can take over a minute, so the agent may need to poll the run for its result.

Troubleshooting

SymptomCheckAction
INVALID_INPUT, agency not foundRUN_SUMMARY.messageUse one of the suggested names, or the full official name.
NO_RESULTSRUN_SUMMARY.filtersWiden the date range, remove a filter, or try dateFilter: "activity".
Other recipients than expectedrecipientName, recipientUeiName search is text search. Use the UEI for an exact recipient.
Grants missing with NAICSRUN_SUMMARY.warningsNAICS and PSC exist only on contracts and IDVs. Remove them for grants.
truncated: truegroups[].hasMoreAtSourceRaise maxResults (up to 500) or narrow the filters.
Outlays differ from the USAspending award pagetotalOutlaysThe search index can be behind the award page. Open awardUrl for the latest value.
ERRORRUN_SUMMARY.messageUSAspending was down or busy. Run again later. Your monitor snapshot is not changed by a failed run.

FAQ

Are these open tenders I can bid on?

No. These are awards that were already made. For open opportunities, use SAM.gov.

What is the difference between awardAmount and totalOutlays?

awardAmount is the money the agency obligated (committed). totalOutlays is the money already paid out. They are different numbers, so the Actor never adds them up.

Do I need an API key?

No. USAspending is open and free. You only need your Apify account.

How fresh is the data?

Each run reads USAspending live. Agencies report awards to USAspending with some delay, so the newest awards can appear days or weeks after they are made. Each row has lastModifiedDate (source) and source.fetchedAt (our read time).

Does monitoring cost more?

No. Unchanged awards are not written and not charged when onlyChanges is on.

Data source and licence

Data: USAspending.gov API, U.S. Department of the Treasury, Bureau of the Fiscal Service. U.S. federal government data is in the public domain. Recipient business names and addresses can include D&B Open Data. Source of that data: Dun & Bradstreet, Inc. (D&B). USAspending's Limitation on Permissible Use of D&B Data asks you to name D&B when you use it and not to use it in bulk. The Actor does not output DUNS numbers. This Actor is independent and not endorsed by the U.S. Treasury or USAspending.gov.

Support

Use the Issues tab of this Actor. Add the run ID, your input (without private data) and RUN_SUMMARY.status and message. Do not send API tokens.