# USAspending Awards — US Federal Contracts & Grants (`quenched_zythum/usaspending-awards`) Actor

Pull US federal contract and grant awards from USAspending.gov. Filter by agency, NAICS, amount, dates. No API key. No D\&B fields.

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

## Pricing

from $5.00 / 1,000 awards

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 Awards — US Federal Contracts & Grants

Pull US federal **contract and grant award** data from the official **USAspending.gov** public API. Filter by awarding agency, NAICS/PSC, award amount, and date windows. Run once for a bulk extract, or schedule for ongoing award research.

**No API key required.** Endpoints do not currently require authorization.

**Pairs with** our UK tenders (Contracts Finder & Find a Tender) and EU TED tender Actors for cross-market competitor and award research — who won what, where, and for how much.

Recipient **names**, **addresses**, **company IDs**, **parent-company** details, **DUNS**, and other Dun & Bradstreet–sourced business-registry fields are **not** collected or returned (see FAQ and licence).

***

### What it does

- Reads the official **USAspending.gov public API** (`api.usaspending.gov`) — no key, no scraping of HTML.
- Returns structured **award** records: contracts, grants, and other award types published on USAspending.
- Filters by keywords, awarding agency / sub-agency, NAICS and PSC codes, award amount band, action/start/end date windows, and place of performance (state / country) where the API supports it.
- Every result includes the official **award ID** and a link back to the award on USAspending.gov.
- Structured JSON/CSV output ready for CRM, BI, bid-management, or market-research tools.
- Designed to sit alongside UK and EU tender Actors so govcon and international bid teams can research awards in one workflow.

***

### Who it's for

Built for **govcon bid teams**, **procurement analysts**, and **B2B sales teams** researching who won past federal contracts and grants.

- **Govcon bid teams** and capture managers tracking incumbents and award history by agency or NAICS
- **Procurement / market analysts** building agency spend and category views from public award data
- **Sales teams** selling into US federal agencies who need agency, award-amount and industry-code context
- Consultants and intelligence workflows that already use UK or EU tender data and want matching US award research

***

### Input fields

| Field | Type | Required | Description |
|---|---|---|---|
| `keywords` | string / array | No | Free-text search against award description / title fields as exposed by the API |
| `awardTypes` | array of strings | No | e.g. contract, grant, and other types supported by USAspending |
| `awardingAgency` | string / array | No | Awarding agency filter (top-tier agency name or code as accepted by the API) |
| `awardingSubAgency` | string / array | No | Sub-agency filter when available |
| `naicsCodes` | array of strings | No | NAICS codes to include |
| `pscCodes` | array of strings | No | Product and Service Codes (PSC) to include |
| `minAmount` / `maxAmount` | number | No | Award amount band (USD where published) |
| `actionDateAfter` / `actionDateBefore` | date (ISO) | No | Action-date window |
| `startDateAfter` / `startDateBefore` | date (ISO) | No | Period-of-performance start window (where supported) |
| `endDateAfter` / `endDateBefore` | date (ISO) | No | Period-of-performance end window (where supported) |
| `placeOfPerformanceState` | array of strings | No | US state codes for place of performance |
| `placeOfPerformanceCountry` | array of strings | No | Country codes for place of performance |
| `monitorMode` | boolean | No (default: `false`) | If `true`, return only awards new or updated since the last successful run for this Actor configuration |
| `maxItems` | integer | No | Cap on awards returned per run |
| `proxyConfiguration` | object | No | Unused for standard public API reads; reserved for edge cases |

> **Privacy / D\&B:** The Actor does **not** collect or return recipient names, street addresses, parent-company linkage, DUNS numbers, or other Dun & Bradstreet–sourced business-registry fields. Do not request them via input — they are not available as output. See https://www.usaspending.gov/db_info.

***

### Output fields (example)

Each dataset item is one award. Every item includes the official **award ID** and a link. Example shape:

# Actor input Schema

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

Keyword search against award descriptions (any keyword). Empty = all.

## `awardingAgency` (type: `string`):

Exact toptier awarding agency name as on USAspending, e.g. "Department of Defense" or "National Science Foundation".

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

NAICS code prefixes (contracts). E.g. "5415" or "541511". Ignored for grants.

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

Which award categories to search. Contracts and grants are queried separately because they expose different fields.

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

Lower bound on Award Amount.

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

Upper bound on Award Amount.

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

YYYY-MM-DD start of time window (action date). Default: 7 days ago. Earliest searchable via this endpoint: 2007-10-01.

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

YYYY-MM-DD end of time window. Default: today.

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

Stop after this many awards are saved.

## `onlyNewSinceLastRun` (type: `boolean`):

Skip awards returned by previous runs (IDs kept in the named key-value store 'usaspending-awards-state'). For scheduled alerts.

## Actor input object example

```json
{
  "keywords": [
    "software"
  ],
  "awardTypes": [
    "contracts"
  ],
  "maxItems": 100,
  "onlyNewSinceLastRun": false
}
```

# Actor output Schema

## `awards` (type: `string`):

Dataset items: one award per row from USAspending.gov.

# 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 = {
    "keywords": [
        "software"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("quenched_zythum/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 = { "keywords": ["software"] }

# Run the Actor and wait for it to finish
run = client.actor("quenched_zythum/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 '{
  "keywords": [
    "software"
  ]
}' |
apify call quenched_zythum/usaspending-awards --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,quenched_zythum/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/4jTaXmtfUW7zxQzJc/builds/tnYtNb23YfzTzANHO/openapi.json
