# Federal Award Intelligence — USAspending.gov (`nasasurfer/federal-award-intelligence`) Actor

Search US federal contracts, grants, loans & IDVs from USAspending.gov.

Three modes: award search, vendor intelligence (roll-up by recipient), and new-award monitoring (alerts on schedule).

Clean JSON for GovCon leads, KYC/due diligence, competitive intel & AI agents. No API key needed.

- **URL**: https://apify.com/nasasurfer/federal-award-intelligence.md
- **Developed by:** [D J](https://apify.com/nasasurfer) (community)
- **Categories:** AI, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Federal Award Intelligence — USAspending.gov

Search U.S. federal **contracts, grants, loans, IDVs, and direct payments** from the
official [USAspending.gov](https://www.usaspending.gov) API and get back **clean,
normalized, agent-ready JSON** — no API key, no anti-bot, public-domain data.

Built for **GovCon lead generation, vendor due diligence / KYC, competitive
intelligence, and grant prospecting** — and designed to be called directly by an
AI agent over MCP.

***

### Quick start (works with zero configuration)

Click **Run** with the defaults and you'll get the 100 largest federal **contracts**
awarded in the **last 90 days**, sorted by dollar value. From there, narrow with:

- **Award type** — contracts / grants / loans / IDVs / direct payments / other
- **Keywords** — company name, technology, NAICS description, etc.
- **Recipient name contains** — find every award to a specific vendor
- **Minimum award amount** — focus on awards above a dollar threshold
- **Look back (days)** or explicit **Start/End dates**
- **Place of performance state** — e.g. `VA`

### Modes (this is the differentiator)

- **Search** — normalized award records. The commodity baseline.
- **Recipient profiles (vendor intelligence)** — rolls awards up by recipient:
  total won in the window, award count, agencies, and biggest award. This turns
  raw rows into a *decision* ("who are the top vendors winning DoD cyber work this
  quarter") — what a GovCon/BD or due-diligence buyer actually pays for.
- **Monitor new awards** — on a schedule, returns **only awards not seen before**
  (deduped in a persistent store). Wire it to Slack/email for a new-award alert on
  a competitor or NAICS. Recurring value, not a one-shot dump.

### Output (per record)

```json
{
  "award_id": "...",
  "recipient_name": "...",
  "award_amount": 1234567.0,
  "award_type": "DEFINITIVE CONTRACT",
  "contract_award_type": "...",
  "description": "...",
  "start_date": "2026-04-01",
  "end_date": "2027-03-31",
  "awarding_agency": "...",
  "awarding_sub_agency": "...",
  "funding_agency": "...",
  "usaspending_url": "https://www.usaspending.gov/award/<id>/",
  "recipient_id": "...",
  "source": "usaspending.gov",
  "retrieved_at": "2026-06-20T00:00:00.000Z"
}
```

### Use as an MCP tool (agent-native)

Once published, Apify exposes this actor as an MCP tool automatically. Point any
MCP client at:

```
https://mcp.apify.com?tools=<your-username>/federal-award-intelligence
```

The input fields above become the tool's typed parameters, so an agent can call
it autonomously ("find recent DoD cybersecurity contracts over $5M") and get
structured records back.

### Recommended pricing

Use **pay-per-result (PAY\_PER\_EVENT)** at **$0.003–$0.005 per award record**.
Configure the price in the Apify Console under the actor's *Publication → Monetization*
settings, then add a charge call in `src/main.js` after each `pushData`:
`await Actor.charge({ eventName: 'award-record' });`. Do **not** ship it free —
on the Store, free signals "hobby project."

### Store listing fields (fill these in — they drive discovery)

- **seoTitle:** `USAspending Federal Contract & Grant Search API for AI Agents`
- **seoDescription:** `Search US federal contracts, grants, loans & IDVs from USAspending.gov. Clean JSON for GovCon leads, vendor due diligence & competitive intel. No API key.`

***

### Deploy

```bash
npm install -g apify-cli
apify login
## from this folder:
apify push
```

Then run from the Apify Console, the API, or on a schedule (e.g. daily monitoring
for new awards to a competitor).

### Honest positioning note

USAspending already has at least one solid incumbent actor on the Store, so treat
this as a **scaffold and a quality/agent-native play**, not an empty field. Your
edge is a cleaner normalized schema, MCP-first design, reliable zero-config
defaults, and tight GovCon positioning. The same code structure (open API in →
normalized records out) transfers 1:1 to a **less-crowded data source** if your
density audit finds a better gap — swap the endpoint, the field map, and the
normalization, and keep everything else.

Data: USAspending.gov is public-domain U.S. Government work.

# Actor input Schema

## `mode` (type: `string`):

search = raw award records. recipient\_profile = roll awards up into vendor intelligence (who won the most, totals, agencies, biggest award). monitor = on scheduled runs, return only NEW awards since the last run (deduped) — for alerts.

## `awardType` (type: `string`):

Which category of federal award to search.

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

Optional free-text keywords (e.g. company name, technology, NAICS description). Leave empty to return all awards in the window.

## `recipientSearchText` (type: `string`):

Optional. Narrow to awards whose recipient (vendor) name matches this text.

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

Only return awards at or above this dollar value. 0 = no minimum.

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

Rolling window ending today. Ignored if explicit Start/End dates are set.

## `startDate` (type: `string`):

YYYY-MM-DD. Overrides 'Look back'.

## `endDate` (type: `string`):

YYYY-MM-DD. Overrides 'Look back'.

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

Filter awards by NAICS code. Add one or more 6-digit codes e.g. 541512 for computer systems design. Leave empty for all codes.

## `placeOfPerformanceState` (type: `string`):

Two-letter US state code (e.g. VA) to filter where the work is performed.

## `maxResults` (type: `integer`):

Maximum number of award records to return.

## Actor input object example

```json
{
  "mode": "search",
  "awardType": "contracts",
  "keywords": [],
  "recipientSearchText": "",
  "minAmount": 0,
  "daysBack": 90,
  "naicsCodes": [],
  "maxResults": 100
}
```

# 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": [],
    "naicsCodes": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("nasasurfer/federal-award-intelligence").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": [],
    "naicsCodes": [],
}

# Run the Actor and wait for it to finish
run = client.actor("nasasurfer/federal-award-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [],
  "naicsCodes": []
}' |
apify call nasasurfer/federal-award-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nasasurfer/federal-award-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ai6ndcMZOJgGX5ePn/builds/I4cdLzrUqzEMUPTVY/openapi.json
