# USAspending Sub-Award Scraper (`scrapers_lat/usaspending-subawards-scraper`) Actor

Scrape US federal sub-awards (subcontracts and subgrants) from USAspending.gov. Get sub-recipient, sub-award amount, action date, prime award ID, prime recipient, awarding agency, NAICS, PSC and location.

- **URL**: https://apify.com/scrapers\_lat/usaspending-subawards-scraper.md
- **Developed by:** [Michael Flores](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## USAspending Sub-Award Scraper

> Extract US federal sub-awards from USAspending.gov, every subcontract and subgrant flowing from prime federal awards back to October 2007

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-United%20States-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>27 fields</strong><br>per record</td>
<td align="center"><strong>United States</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-22</td>
</tr></table>

<br>

### What you get

Each record is one federal sub-award, the money a prime contractor or grantee passes down to a sub-recipient, linked back to its prime award. Use it to map subcontracting networks, find second-tier suppliers and build lead lists of sub-recipients.

- **subAwardId**: the sub-award identifier
- **subRecipientName**: the company or organization that received the sub-award
- **subRecipientUei**: the sub-recipient Unique Entity Identifier
- **subAwardAmount**: sub-award amount in US dollars
- **subAwardDate**: sub-award action date
- **subAwardType**: sub-award type such as sub-contract or sub-grant
- **subAwardDescription**: free-text description of the sub-award
- **primeAwardId**: identifier of the prime award this sub-award flows from
- **primeRecipientName**: the prime recipient that issued the sub-award
- **primeAwardGeneratedId**: the unique USAspending id of the prime award
- **awardingAgency**: top-tier awarding agency of the prime award
- **awardingSubAgency**: sub-tier awarding agency of the prime award
- **naicsCode**: industry classification code
- **naicsDescription**: industry classification description
- **pscCode**: Product and Service Code
- **pscDescription**: Product and Service Code description
- **subRecipientLocation**: sub-recipient country, state, city, county, ZIP and congressional district
- **placeOfPerformance**: where the sub-award work is performed
- **primeAwardUrl**: link to the prime award page on USAspending.gov
- **primeAwardAmount\***: total obligated amount of the prime award
- **primeAwardDescription\***: description of the prime award
- **primeAwardCategory\***: prime award category such as contract or grant
- **primeAwardTypeDescription\***: detailed prime award type description
- **primeRecipientUei\***: prime recipient Unique Entity Identifier
- **primeParentRecipientName\***: ultimate parent company of the prime recipient
- **primeParentUei\***: Unique Entity Identifier of the prime recipient's parent company
- **primeRecipientAddress\***: prime recipient street address, city, state, county, ZIP and congressional district
- **primeExecutiveCompensation\***: top five officer names and their reported pay for prime recipients that disclose it
- **primePeriodStart\***: prime award period of performance start
- **primePeriodEnd\***: prime award period of performance end
- **primeNaicsDescription\***: prime award industry classification description
- **observedAt**: when this sub-award was last seen by the scraper

*\*These fields only appear when Fetch prime award details is enabled.*

### Who is it for

| Use case | Who benefits |
|---|---|
| Map subcontracting networks under a prime | Government contractors and analysts |
| Find second-tier federal suppliers to target | B2B sales and partnership teams |
| Track which firms subcontract on a keyword | BD and competitive intelligence teams |
| Research subgrant flows from federal grants | Nonprofits and researchers |
| Feed sub-award data into a data warehouse | Data engineers and analysts |

### Frequently Asked Questions

**Which countries and time range does this cover?**
It covers United States federal sub-awards reported to USAspending.gov. Sub-award action dates go back to October 1, 2007, which is the earliest date the search API supports.

**What is the difference between a sub-award and a prime award?**
A prime award is the money the government gives directly to a recipient. A sub-award is money that prime recipient then passes to another company or organization. This scraper returns the sub-awards and links each one to its prime award.

**How do I filter the sub-awards I want?**
Use any combination of keyword, prime award types (contracts or grants), awarding agency, prime recipient name and a date range. Sub-awards exist only for contracts and grants.

**Why is placeOfPerformance empty on some records?**
Sub-award place of performance is reported by the prime recipient and is not always filled in. When it is missing the field is null while the sub-recipient location is still returned.

**Can I get details about the prime award?**
Yes. Enable Fetch prime award details and the scraper adds the prime award amount, description, recipient UEI, parent company and period of performance, looked up once per prime award.


<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [USAspending Federal Award Scraper](https://apify.com/scrapers_lat/usaspending-awards-scraper): Scrape US federal prime awards from USAspending.gov. Get recipient, UEI, award amount, awarding...
- [Grants.gov Opportunity Scraper](https://apify.com/scrapers_lat/grants-gov-scraper): Extract U.S. federal grant opportunities from the official Grants.gov API. Scrape title, agency...
- [NPPES NPI Provider Scraper](https://apify.com/scrapers_lat/nppes-npi-scraper): Scrape US healthcare provider records from the official NPPES NPI Registry. Search by name...
- [BizQuest Businesses-for-Sale Listings Scraper](https://apify.com/scrapers_lat/bizquest-scraper): Extract US businesses-for-sale listings from BizQuest with the broker or seller contact (name...
- [California CSLB Contractor License Scraper](https://apify.com/scrapers_lat/california-cslb-scraper): Extract licensed California contractor records from the CSLB public data portal by classification...
- [Florida Professional License Scraper](https://apify.com/scrapers_lat/florida-dbpr-scraper): Scrape Florida DBPR professional license records by name, business, or license number. Get licensee...

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with USAspending.gov or the US government. It only accesses data that is publicly available on the platform. USAspending.gov publishes federal spending data in the public domain.

# Actor input Schema

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

Maximum number of sub-awards to collect. Optional.
## `withDetails` (type: `boolean`):

When enabled, the scraper fetches the prime award detail record for each sub-award (prime amount, prime description, period of performance, prime recipient UEI). Cached per prime award.
## `keyword` (type: `string`):

Free-text search across the prime award description, recipient and identifiers (for example: cybersecurity, construction, research).
## `awardTypes` (type: `array`):

Categories of prime award whose sub-awards to include. Sub-awards exist only for contracts (subcontracts) and grants (subgrants). Leave empty to include both.
## `agency` (type: `string`):

Top-tier awarding agency name, exactly as used by USAspending (for example: Department of Defense, General Services Administration).
## `recipient` (type: `string`):

Filter by prime recipient name or part of it (for example: Booz Allen, Leidos).
## `dateFrom` (type: `string`):

Earliest sub-award action date (YYYY-MM-DD). Earliest supported is 2007-10-01.
## `dateTo` (type: `string`):

Latest sub-award action date (YYYY-MM-DD).
## `sort` (type: `string`):

Field to sort by.
## `order` (type: `string`):

Sort order.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "keyword": "cybersecurity",
  "awardTypes": [
    "contracts"
  ],
  "sort": "Sub-Award Amount",
  "order": "desc"
}
````

# 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 = {
    "maxItems": 10,
    "keyword": "cybersecurity",
    "awardTypes": [
        "contracts"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/usaspending-subawards-scraper").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 = {
    "maxItems": 10,
    "keyword": "cybersecurity",
    "awardTypes": ["contracts"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/usaspending-subawards-scraper").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 '{
  "maxItems": 10,
  "keyword": "cybersecurity",
  "awardTypes": [
    "contracts"
  ]
}' |
apify call scrapers_lat/usaspending-subawards-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/usaspending-subawards-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USAspending Sub-Award Scraper",
        "description": "Scrape US federal sub-awards (subcontracts and subgrants) from USAspending.gov. Get sub-recipient, sub-award amount, action date, prime award ID, prime recipient, awarding agency, NAICS, PSC and location.",
        "version": "0.1",
        "x-build-id": "dcs5u7ygbJuwRQxrF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~usaspending-subawards-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-usaspending-subawards-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~usaspending-subawards-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-usaspending-subawards-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~usaspending-subawards-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-usaspending-subawards-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of sub-awards to collect. Optional."
                    },
                    "withDetails": {
                        "title": "Fetch prime award details",
                        "type": "boolean",
                        "description": "When enabled, the scraper fetches the prime award detail record for each sub-award (prime amount, prime description, period of performance, prime recipient UEI). Cached per prime award.",
                        "default": true
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Free-text search across the prime award description, recipient and identifiers (for example: cybersecurity, construction, research)."
                    },
                    "awardTypes": {
                        "title": "Prime award types",
                        "type": "array",
                        "description": "Categories of prime award whose sub-awards to include. Sub-awards exist only for contracts (subcontracts) and grants (subgrants). Leave empty to include both.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "contracts",
                                "grants"
                            ],
                            "enumTitles": [
                                "Contracts (subcontracts)",
                                "Grants (subgrants)"
                            ]
                        }
                    },
                    "agency": {
                        "title": "Awarding agency",
                        "type": "string",
                        "description": "Top-tier awarding agency name, exactly as used by USAspending (for example: Department of Defense, General Services Administration)."
                    },
                    "recipient": {
                        "title": "Recipient",
                        "type": "string",
                        "description": "Filter by prime recipient name or part of it (for example: Booz Allen, Leidos)."
                    },
                    "dateFrom": {
                        "title": "Date from",
                        "type": "string",
                        "description": "Earliest sub-award action date (YYYY-MM-DD). Earliest supported is 2007-10-01."
                    },
                    "dateTo": {
                        "title": "Date to",
                        "type": "string",
                        "description": "Latest sub-award action date (YYYY-MM-DD)."
                    },
                    "sort": {
                        "title": "Sort field",
                        "enum": [
                            "Sub-Award Amount",
                            "Sub-Awardee Name",
                            "Sub-Award Date",
                            "Prime Award ID"
                        ],
                        "type": "string",
                        "description": "Field to sort by.",
                        "default": "Sub-Award Amount"
                    },
                    "order": {
                        "title": "Sort order",
                        "enum": [
                            "desc",
                            "asc"
                        ],
                        "type": "string",
                        "description": "Sort order.",
                        "default": "desc"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
