# Federal Contract Award Scout — USAspending Leads (`sandy_starlet/federal-contract-award-scout`) Actor

Find recent U.S. federal contract awards, incumbents, agencies, values, and contract-ending signals from the official USAspending API.

- **URL**: https://apify.com/sandy\_starlet/federal-contract-award-scout.md
- **Developed by:** [Naomi](https://apify.com/sandy_starlet) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Contract Award Scout

Federal Contract Award Scout is a focused USAspending scraper for federal contract leads, incumbent research, and recompete planning. It turns official U.S. contract award records into structured sales and competitor intelligence—no USAspending API key required.

The Actor searches recent contract activity, identifies the incumbent recipient, normalizes agency and industry fields, calculates days until the listed contract end date, and labels contract-ending signals. Results can be downloaded as JSON, CSV, Excel, XML, or consumed through the Apify API.

[See the product overview](https://federal-contract-award-scout.fzrrcfzkd6.chatgpt.site) or [run the Actor on Apify](https://apify.com/sandy_starlet/federal-contract-award-scout).

### What it is useful for

- Find companies winning federal work in your market.
- Track awards by keyword, NAICS code, agency, recipient, value, and activity date.
- Surface active contracts and contracts entering a renewal window.
- Build competitor lists without buying a proprietary federal-contract database.
- Feed structured award evidence into an AI agent, CRM, spreadsheet, or monitoring workflow.

### Find federal contracts ending soon

Use `activeOnly` with `endingWithinDays` to narrow recent USAspending activity to contracts whose listed end date falls inside your research window. The output includes the incumbent, agency, total award value, NAICS and PSC fields, source award link, and a timing label such as `ENDING_WITHIN_180_DAYS`.

This is especially useful for:

- GovCon business development and capture teams researching possible recompetes.
- Small businesses identifying primes and potential teaming partners.
- Consultants building evidence-backed agency or competitor reports.
- Automation builders who need contract-only, LLM-ready JSON.

Award Scout is intentionally focused on contract awards and end-date signals. It is not a general grants, loans, or direct-payments scraper.

### Example input

```json
{
  "keywords": ["software", "cloud"],
  "naicsCodes": ["541511", "541512", "541519"],
  "agencies": ["Department of Veterans Affairs"],
  "minAwardAmount": 250000,
  "activeOnly": true,
  "endingWithinDays": 365,
  "maxResults": 100,
  "scanLimit": 2000
}
```

If dates are omitted, the Actor searches the latest 30 days of award activity. USAspending's activity date filter is not an end-date filter, so the Actor may scan more records than it saves when `activeOnly` or `endingWithinDays` is enabled.

### Output fields

Every saved row includes:

- Award ID and direct USAspending source link
- Incumbent / recipient name and UEI
- Award value and an explicitly labeled annualized estimate
- Awarding and funding agencies
- Start date, end date, duration, and days until end
- Contract signal such as `ENDING_WITHIN_90_DAYS`
- NAICS and Product or Service Code details
- Place of performance, description, and source timestamp

`estimatedAnnualizedAwardValue` is a mathematical normalization of total award amount across the listed period. It is not a government forecast, a guaranteed annual payment, or a statement that a follow-on solicitation will occur.

### Data source and limitations

Data comes from the official [USAspending.gov API](https://api.usaspending.gov/docs/endpoints). The tool does not claim affiliation with the U.S. government.

- USAspending data can be corrected after publication and can contain missing or legacy fields.
- An award end date is a planning signal, not proof of an upcoming recompete.
- The API's activity period can include older awards modified during the selected period.
- Verify material sales decisions against the linked source record and SAM.gov.
- This is market-research software, not procurement, legal, or financial advice.

### FAQ

#### Does this USAspending scraper require an API key?

No. The Actor reads the official public USAspending API without a USAspending API key. You run and pay for the Actor through Apify.

#### Can it identify possible federal contract recompetes?

It identifies active awards whose listed end date falls inside a chosen window. Treat that as an early research signal, not proof that a recompete or solicitation will occur. Confirm opportunities through SAM.gov, agency forecasts, and primary acquisition sources.

#### Can I search by NAICS code or agency?

Yes. Filter by keyword, NAICS prefix, exact top-level awarding agency, recipient name or UEI, award value, activity dates, active status, and days until the listed contract end date.

#### Can I schedule recurring federal award monitoring?

Yes. Use Apify Schedules to run the Actor daily or weekly, then send the dataset to a spreadsheet, CRM, webhook, or downstream agent workflow.

#### What formats can I export?

Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.

### Run locally

```bash
npm install
npm test
npm start
```

Local Actor output is written to the `storage` directory. Run `npm run test:live` for a small read-only check against the public API.

# Actor input Schema

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

Words or phrases to find in federal award records. The default example looks for software-related work.

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

Two- to six-digit NAICS prefixes, such as 541511 for custom computer programming.

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

Optional exact top-level agency names, such as Department of Veterans Affairs.

## `recipients` (type: `array`):

Optional company names or Unique Entity IDs to track.

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

YYYY-MM-DD. Defaults to 30 days before the run. USAspending applies this to award activity, not contract end dates.

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

YYYY-MM-DD. Defaults to the run date.

## `minAwardAmount` (type: `integer`):

Exclude awards below this total value.

## `maxAwardAmount` (type: `integer`):

Optional upper value limit.

## `activeOnly` (type: `boolean`):

Keep awards whose listed end date is today or later.

## `endingWithinDays` (type: `integer`):

Optional renewal window. For example, 180 keeps contracts ending during the next six months.

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

Maximum number of enriched award records to save.

## `scanLimit` (type: `integer`):

The tool may scan more records than it saves when active or ending-date filters are used.

## Actor input object example

```json
{
  "keywords": [
    "software"
  ],
  "naicsCodes": [
    "541511",
    "541512",
    "541519"
  ],
  "minAwardAmount": 100000,
  "activeOnly": false,
  "maxResults": 100,
  "scanLimit": 1000
}
```

# Actor output Schema

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

No description

## `runSummary` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sandy_starlet/federal-contract-award-scout").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sandy_starlet/federal-contract-award-scout").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 '{}' |
apify call sandy_starlet/federal-contract-award-scout --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sandy_starlet/federal-contract-award-scout"
        }
    }
}

```

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/c2vk8Z6ZSXxqW7uka/builds/lqgBegGMVqPWUaR40/openapi.json
