# USAspending Federal Awards and Recipient Monitor

> USAspending API tool for US federal contracts, grants and loans. Filter by company, UEI, agency or NAICS. Get new and updated awards between runs.

URL: https://cliqtomedia.com/actors/usaspending-federal-awards-monitor/

Category: Government & open data · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/usaspending-federal-awards-monitor?fpr=cliqto

Find US federal contracts, grants and loans from USAspending.gov. Filter by company, agency or industry code. Run it each week to see what is new or changed.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `contracts` in Award types. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

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.

- 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.

### Good for

- 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 good 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.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.002 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Award record | $0.002 | One federal award row (contract, IDV, grant, loan or other assistance) saved to the Dataset. Unchanged awards skipped by onlyChanges are not charged. |

- One award: about $0.004.
- 1,000 awards: about $2.00.
- Every day 100 awards, for 30 days: about $6.06 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/usaspending-federal-awards-monitor?fpr=cliqto

## Questions

### Can I find open tenders to bid on?

No. These are awards already made. For open bids, use SAM.gov.

### What is the difference between amount and outlays?

The amount is money the agency committed. Outlays are money already paid out.

### Do I need an API key?

No. USAspending is open and free.

### Does monitoring cost extra?

No. Unchanged awards are not saved and not charged.

### 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.

### 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).

## Data fields

- `changeType` (string): Change since the baseline: initial (first monitored run), new, updated or unchanged. null when no monitorKey/previousDatasetId is used.
- `changedFields` (array): For updated awards: which tracked fields changed (awardAmount, totalOutlays, loanFaceValue, loanSubsidyCost, startDate, endDate, lastDateToOrder, lastModifiedDate).
- `previousValues` (object): For updated awards: previous value of each changed field.
- `awardTypeGroup` (string): Award type group the row was searched under. Never mix groups in totals without care: loans and IDVs measure different things.
- `generatedInternalId` (string): Stable USAspending award key, e.g. CONT_AWD_..._9700_... Use it to deduplicate and join.
- `awardId` (string): Display award ID (PIID for contracts, FAIN/URI for assistance).
- `awardType` (string): Award type as published, e.g. DELIVERY ORDER, DEFINITIVE CONTRACT, PROJECT GRANT (B), DIRECT LOAN (E).
- `recipientName` (string): Recipient (awardee) name as published.
- `recipientUei` (string): 12-character Unique Entity ID of the recipient; null for some legacy or redacted awards.
- `recipientId` (string): USAspending recipient hash with level suffix (-C child, -P parent, -R recipient).
- `recipientLocation` (object): Recipient address: city, county, stateCode, stateName, zip5, countryCode, countryName, congressionalDistrict.
- `awardingAgency` (string): Awarding top-tier agency, e.g. Department of Veterans Affairs.
- `awardingAgencyCode` (string): Awarding agency code (e.g. 036).
- `awardingSubAgency` (string): Awarding sub-agency.
- `awardingSubAgencyCode` (string): Awarding sub-agency code.
- `fundingAgency` (string): Funding top-tier agency (may differ from the awarding agency).
- `fundingSubAgency` (string): Funding sub-agency.
- `awardAmount` (number): Total obligated amount over the award life, USD (contracts: total obligation; grants/assistance: federal obligation). Can be negative after de-obligations. null for loans and when not reported — never 0 by default.
- `totalOutlays` (number): Cash actually paid out so far, USD. Separate from awardAmount and never added to it; null when not reported (common for contracts). Value from the search index, which can lag the award page.
- `loanFaceValue` (number): Loans only: face value of the loan, USD.
- `loanSubsidyCost` (number): Loans only: estimated subsidy cost to the government, USD.
- `covid19Obligations` (number): Obligations funded by COVID-19 supplemental appropriations, USD; null when not reported.
- `infrastructureObligations` (number): Obligations funded by the Infrastructure Investment and Jobs Act, USD; null when not reported.
- `currency` (string): Always USD.
- `startDate` (string): Period of performance start (loans: issued date), YYYY-MM-DD; null when not published.
- `endDate` (string): Current period of performance end, YYYY-MM-DD, as published in the USAspending search index. Always null for IDVs (use lastDateToOrder) and loans (not in the search index).
- `lastDateToOrder` (string): IDVs only: last date to place orders, YYYY-MM-DD.
- `baseObligationDate` (string): Date of the base (first) obligation, YYYY-MM-DD.
- `lastModifiedDate` (string): When USAspending last changed the award record (sourceUpdatedAt), YYYY-MM-DDTHH:MM:SS as published, without time zone.
- `naicsCode` (string): NAICS industry code (contracts and IDVs).
- `naicsDescription` (string): NAICS description.
- `pscCode` (string): Product and Service Code (contracts and IDVs).
- `pscDescription` (string): PSC description.
- `assistanceListings` (array): Assistance listings (CFDA) for grants and other assistance: [{number, title}]. Empty for contracts.
- `description` (string): Award description as published (often uppercase, may be truncated by the source).
- `placeOfPerformance` (object): Primary place of performance: city, county, stateCode, stateName, zip5, countryCode, countryName, congressionalDistrict.
- `awardUrl` (string): Award page on USAspending.gov.
- `recipientUrl` (string): Recipient profile on USAspending.gov; null for placeholder recipients such as MULTIPLE RECIPIENTS.
- `source` (object): Provenance: provider, endpoint and fetchedAt (when this Actor read the record).

## Input settings

- `awardTypes` (array): Which kinds of awards to search. Each type is searched separately and maxResults applies per type. Contracts = definitive contracts, purchase and delivery orders; IDVs = indefinite delivery vehicles (GWACs, BPAs, IDIQs); grants = block, formula, project and cooperative agreements; loans = direct and guaranteed loans; direct payments and other assistance = remaining financial assistance. Default: contracts.
- `awardingAgencies` (array): Up to 10 awarding agencies: official name or abbreviation of a department (e.g. Department of Veterans Affairs, VA, DOD) or of a sub-agency (e.g. National Institutes of Health, NIH). Unknown names stop the run with suggestions instead of silently returning nothing. Default: all agencies.
- `recipients` (array): Up to 20 recipient names or 12-character UEIs, e.g. LOCKHEED MARTIN or DT2KS3HH5FP5. Names are matched by USAspending's recipient text search, so check recipientName and recipientUei in the results. Default: all recipients.
- `naicsCodes` (array): Up to 50 NAICS industry codes, 2 to 6 digits, e.g. 541512 or 5415. Only contracts and IDVs carry NAICS: other award types are skipped with a warning. Default: all.
- `pscCodes` (array): Up to 50 Product and Service Codes, 1 to 4 letters/digits, e.g. DA01, R4 or 7030. Contracts and IDVs only. Default: all.
- `keywords` (array): Up to 10 keywords searched in award descriptions and other text fields, e.g. cybersecurity. 3–100 characters each. Default: none.
- `dateFilter` (string): What the date range applies to. Activity (default): awards with any transaction (new award, modification, de-obligation) in the range. New awards only: awards whose first action falls in the range. Last modified: awards whose record changed in the range.
- `lookbackDays` (integer): Date range ending today (or dateTo), 1–3650 days. Ignored when dateFrom is set. Default 30.
- `dateFrom` (string): Optional start date YYYY-MM-DD. USAspending search starts at 2007-10-01; earlier dates are moved to that day.
- `dateTo` (string): Optional end date YYYY-MM-DD. Default: today (UTC).
- `sortBy` (string): Which awards come first when there are more than maxResults: largest amount (loans: face value) or most recently modified.
- `maxResults` (integer): Maximum awards returned for each selected award type, 1–500. Default 100. Each award row written to the dataset is charged; unchanged awards hidden by onlyChanges are not.
- `monitorKey` (string): Optional name, 1–40 letters, digits or dashes, e.g. va-it-contracts. The Actor stores the awards it saw under this key in your account and the next run with the same key marks each award new, updated or unchanged. The first run marks rows initial. Use one key per saved search.
- `previousDatasetId` (string): Optional ID of a dataset from an earlier run of this Actor. Awards are marked new, updated or unchanged against it. Use either this or monitorKey.
- `onlyChanges` (boolean): When comparing (monitorKey or previousDatasetId), skip unchanged awards so you only see and pay for changes. Default true. Has no effect without a comparison.

## Step by step on Apify

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`.

## Use cases

| Task | Input | You get | Key fields |
|---|---|---|---|
| Who wins in my market | `awardingAgencies` + `naicsCodes` or `pscCodes` | contract rows | `recipientName`, `recipientUei`, `awardAmount`, `awardingSubAgency` |
| Company due diligence | `recipients` (name or UEI), several `awardTypes` | all award types of that recipient | `awardTypeGroup`, `awardAmount`, `totalOutlays`, `recipientUrl` |
| Grant research | `awardTypes: ["grants"]` + agency + dates | grant rows | `assistanceListings`, `awardAmount`, `totalOutlays`, `description` |
| Weekly competitor watch | filters + `monitorKey`, on a schedule | only new and updated awards | `changeType`, `changedFields`, `previousValues` |

## Tips

- Use agency short names like VA or NIH. A wrong name stops the run with ideas.
- Use a monitor key to get only new and updated awards.
- New awards can show up days or weeks late. Look a bit back in time.

## 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.

## Sample result

```json
{
  "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"
}
```

## Use it from code

Actor ID: `cliqtomedia/usaspending-federal-awards-monitor`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/usaspending-federal-awards-monitor").call(run_input={
    "awardTypes": [
        "contracts"
    ],
    "awardingAgencies": [
        "Department of Veterans Affairs"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~usaspending-federal-awards-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"awardTypes": ["contracts"], "awardingAgencies": ["Department of Veterans Affairs"]}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/usaspending-federal-awards-monitor")
result = tool.invoke({"run_input": {"awardTypes": ["contracts"], "awardingAgencies": ["Department of Veterans Affairs"]}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/): Know when a company hires, raises money or wins a contract. Reach out at the right moment.

## Similar tools

- [EU TED Tenders Scraper & Monitor](https://cliqtomedia.com/actors/eu-ted-tenders-scraper/)
- [UK Bank Holidays & Business Day Calculator](https://cliqtomedia.com/actors/uk-bank-holidays-business-days/)
- [UK Postcode Lookup](https://cliqtomedia.com/actors/gb-postcode-lookup/)
- [VIN Decoder & Vehicle Recalls](https://cliqtomedia.com/actors/vin-decoder-vehicle-recalls/)
- [FDA Recalls & Enforcement Monitor](https://cliqtomedia.com/actors/fda-recalls-enforcement-monitor/)
- [NASA POWER Historical Weather & Solar Data](https://cliqtomedia.com/actors/nasa-power-climate-data/)
