# USAspending Federal Awards – New Contracts & Grants Leads (`yuvalstudios/usaspending-awards`) Actor

New US federal contract and grant awards from USAspending.gov: recipient, UEI, amount, agency, NAICS, PSC, state. Filter by agency, NAICS, state and amount. 'New since last run' mode. No API key.

- **URL**: https://apify.com/yuvalstudios/usaspending-awards.md
- **Developed by:** [Yuval Gabay](https://apify.com/yuvalstudios) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 award results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## USAspending Federal Awards – New Contracts & Grants Leads

New US federal contract and grant awards from USAspending.gov: recipient, UEI, amount, agency, NAICS, PSC, state. Filter by agency, NAICS, state and amount. 'New since last run' mode. No API key.

**Who it's for:** Gov-con BD teams, subcontractor prospecting (who just won a prime?), B2B sales to newly funded contractors, journalists and analysts.

### Why this actor

- Official public API (https://api.usaspending.gov/api/v2/search/spending_by_award/), so there's no scraping, no proxies and no key. It's fast and cheap.
- Clean, flat records with direct links, ready for a CRM, Sheets or Slack.
- **New since last run:** schedule it daily and get only new records, which makes it work as an alert feed.
- Pay only per result. Empty runs cost almost nothing.

### Input

| Field | Description |
|---|---|
| `daysBack` | Used when no dates are set: look at the last N days. Grants are published with a delay of a few weeks and DoD contracts with a 90-day delay, so use 30 days or more. |
| `dateFrom` | Start of the date range, format YYYY-MM-DD. Overrides Days back. |
| `dateTo` | End of the date range, format YYYY-MM-DD. The default is today. |
| `newAwardsOnly` | On: only awards whose first action falls in the range (new awards). Off: any award with a transaction in the range, which includes modifications. |
| `awardTypes` | Award categories to fetch: contracts, idvs, grants, loans, directPayments, other. |
| `agencies` | Top-tier awarding agency names exactly as USAspending lists them, e.g. "Department of Veterans Affairs". Leave empty for all. |
| `naicsCodes` | NAICS codes or prefixes (contracts only), e.g. 541511 or 54. Leave empty for all. |
| `states` | 2-letter US state codes of the recipient's location, e.g. VA, MD. Leave empty for all. |
| `keywords` | Keywords to match in award descriptions or recipient names. |
| `minAmount` | Only awards with an amount of at least this many US dollars. |
| `maxAmount` | Only awards with an amount of at most this many US dollars. |
| `maxItems` | Maximum number of records to output (and charge for) in this run. |
| `newSinceLastRun` | Remember the records already returned and output only new ones on later runs. Use it on a schedule for alerts. |
| `stateKey` | Name of the memory used by 'new since last run'. Use a different key for each saved search so they don't share memory. |

### Output example

```json
{
  "awardId": "70Z05026F43000039",
  "awardCategory": "contracts",
  "awardType": "DELIVERY ORDER",
  "recipientName": "TUTOR PERINI CORPORATION",
  "recipientUei": "MT9AATHS7ZB5",
  "amount": 315000000,
  "totalOutlays": null,
  "description": "THE PURPOSE OF THIS DESIGN BUILD TO BUDGET AWARD IS FOR THE DESIGN AND CONSTRUCTION OF A FUEL PIER AND MAJOR CUTTER MOORING AT USCG BASE KODIAK, AK.",
  "awardingAgency": "Department of Homeland Security",
  "awardingSubAgency": "U.S. Coast Guard",
  "fundingAgency": "Department of Homeland Security",
  "startDate": "2026-09-11",
  "endDate": "2030-09-30",
  "baseObligationDate": "2026-09-11",
  "lastModified": "2026-09-15 13:33:39",
  "naicsCode": "236220",
  "naicsDescription": "COMMERCIAL AND INSTITUTIONAL BUILDING CONSTRUCTION",
  "pscCode": "Y1JZ",
  "pscDescription": "CONSTRUCTION OF MISCELLANEOUS BUILDINGS",
  "assistanceListing": null,
  "placeOfPerformanceState": "AK",
  "awardUrl": "https://www.usaspending.gov/award/CONT_AWD_70Z05026F43000039_7008_70Z04723DPCNI0004_7008",
  "recipientUrl": "https://www.usaspending.gov/recipient/655f88c1-de1a-f9fa-0855-037592b2db30-C/latest",
  "internalId": "CONT_AWD_70Z05026F43000039_7008_70Z04723DPCNI0004_7008",
  "source": "USAspending.gov"
}
```

### Tips

- For alerts, schedule a daily run with `newSinceLastRun: true`, and give each saved search its own `stateKey`.
- Export as CSV, Excel or JSON, or connect through Zapier, Make or webhooks.

### How to use

1. Click **Try for free** (or **Start**) — the form is pre-filled with a small working example.
2. Adjust the filters and **Max results**, then run. Most runs finish in under a minute.
3. Open the **Output** tab to view the table, or export CSV, Excel or JSON, or pull it via the API, Zapier, Make, Google Sheets or webhooks.
4. For alerts, save the input as a task, turn on **New since last run**, and schedule it daily or weekly.

### What's new (October 2026)

- **Track a competitor or partner:** *Recipient name contains* filter.
- **Small-business set-asides:** filter contracts by set-aside code (SBA, 8A, HUBZone, SDVOSB, WOSB...).

### Pricing

Pay per result: **$0.002 per award ($2 per 1,000)**. 500 new awards cost about $1.00. You only pay for rows you receive; a run that finds nothing costs almost nothing. Set **Max results** or a maximum cost per run to cap spend — the actor stops cleanly at the limit.

### FAQ

**Where does the data come from?** From the official USAspending.gov API. No login or API key is needed.

**How fresh is it?** USAspending is updated daily; grants appear with a lag of a few weeks and DoD contracts with a 90-day delay.

**Is it legal to use?** The data is public government data (or public DNS records). You are responsible for how you use it, e.g. CAN-SPAM/GDPR rules when contacting businesses.

**What happens if the source is slow or down?** Requests are retried with backoff. If the source fails mid-run, results already collected are kept and the run finishes with a clear status message instead of crashing. The run also stops cleanly before its timeout.

**Where is the run summary?** In the key-value store record `OUTPUT_SUMMARY` (counts, filters applied, why the run stopped).

**I need a field or filter that's missing.** Open an issue on the Issues tab.

### Related actors

- [FDA Recalls: food, drug & device enforcement reports](https://apify.com/yuvalstudios/fda-recalls)
- [Grants.gov Federal Grant Opportunities](https://apify.com/yuvalstudios/grants-gov-opportunities)
- [SEC Form D private offerings (startup funding)](https://apify.com/yuvalstudios/sec-form-d)
- [UK New Companies (Companies House)](https://apify.com/yuvalstudios/uk-new-companies)
- [FMCSA new trucking carriers](https://apify.com/yuvalstudios/fmcsa-carriers)
- [Bulk DMARC, SPF & DKIM Checker](https://apify.com/yuvalstudios/dmarc-spf-dkim-checker)
- [Israel Open Data (data.gov.il)](https://apify.com/yuvalstudios/israel-open-data)

Data is public US government data. This actor is not affiliated with the US government.

### Data source & disclaimer

- **Source:** [USAspending.gov](https://www.usaspending.gov) official API ([api.usaspending.gov](https://api.usaspending.gov)), run by the U.S. Department of the Treasury.
- **How fresh:** agencies report daily; contract awards can appear up to about 30–90 days after signing (DoD has a built-in 90-day delay). Each row has `scrapedAt` (when this run fetched it) and `lastModified` (the source's last update to the award).
- **Licence & attribution:** U.S. federal government data, public domain (17 U.S.C. § 105). No attribution required; we credit "Source: USAspending.gov".
- **Disclaimer:** Data is provided **as is** from public records, without warranty of any kind. Records can contain errors, omissions or delays from the source or from processing, so check anything important against the official source. This actor and its output are **not legal, financial, compliance or medical advice**. You are responsible for using the data lawfully: for example CAN-SPAM, TCPA, GDPR and local marketing rules when you contact recipients. This actor is independent and **not affiliated with or endorsed by** USAspending.gov, the U.S. Treasury or any U.S. government agency.
- **Last verified:** 2026-10-19.

# Actor input Schema

## `daysBack` (type: `integer`):

Used when no dates are set: look at the last N days. Grants are published with a delay of a few weeks and DoD contracts with a 90-day delay, so use 30 days or more.

## `dateFrom` (type: `string`):

Start of the date range, format YYYY-MM-DD. Overrides Days back.

## `dateTo` (type: `string`):

End of the date range, format YYYY-MM-DD. The default is today.

## `newAwardsOnly` (type: `boolean`):

On: only awards whose first action falls in the range (new awards). Off: any award with a transaction in the range, which includes modifications.

## `awardTypes` (type: `array`):

Award categories to fetch: contracts, idvs, grants, loans, directPayments, other.

## `agencies` (type: `array`):

Top-tier awarding agency names exactly as USAspending lists them, e.g. "Department of Veterans Affairs". Leave empty for all.

## `naicsCodes` (type: `array`):

NAICS codes or prefixes (contracts only), e.g. 541511 or 54. Leave empty for all.

## `states` (type: `array`):

2-letter US state codes of the recipient's location, e.g. VA, MD. Leave empty for all.

## `keywords` (type: `array`):

Keywords to match in award descriptions or recipient names.

## `recipientNames` (type: `array`):

Only awards to recipients whose name (or UEI) matches any of these, e.g. a competitor or partner. Leave empty for all.

## `setAsideTypes` (type: `array`):

Contracts only. Federal set-aside codes, e.g. SBA (small business), 8A, 8AN, HZC (HUBZone), SDVOSBC (service-disabled veteran), WOSB, EDWOSB. Leave empty for all.

## `minAmount` (type: `integer`):

Only awards with an amount of at least this many US dollars.

## `maxAmount` (type: `integer`):

Only awards with an amount of at most this many US dollars.

## `maxItems` (type: `integer`):

Maximum number of records to output (and charge for) in this run.

## `newSinceLastRun` (type: `boolean`):

Remember the records already returned and output only new ones on later runs. Use it on a schedule for alerts.

## `stateKey` (type: `string`):

Name of the memory used by 'new since last run'. Use a different key for each saved search so they don't share memory.

## Actor input object example

```json
{
  "daysBack": 30,
  "newAwardsOnly": true,
  "awardTypes": [
    "contracts",
    "grants"
  ],
  "maxItems": 50,
  "newSinceLastRun": false,
  "stateKey": "default"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "awardTypes": [
        "contracts",
        "grants"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("yuvalstudios/usaspending-awards").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "awardTypes": [
        "contracts",
        "grants",
    ],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("yuvalstudios/usaspending-awards").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "awardTypes": [
    "contracts",
    "grants"
  ],
  "maxItems": 50
}' |
apify call yuvalstudios/usaspending-awards --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,yuvalstudios/usaspending-awards"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5cgojd8sRfMvNZpMf/builds/3n6gdtj1ctKTwpzsc/openapi.json
