# USAspending Subawards Scraper (`automation-lab/usaspending-subawards-scraper`) Actor

Extract USAspending sub-awards, subrecipients, UEIs, prime award IDs, agencies, descriptions, and dollar amounts from the public API.

- **URL**: https://apify.com/automation-lab/usaspending-subawards-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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 Subawards Scraper

Extract sub-award, subcontract, subrecipient, and prime award mapping records from the public USAspending API. This actor turns USAspending subaward search results into a clean Apify dataset with sub-award IDs, dates, amounts, subawardees, UEIs, prime recipients, agencies, descriptions, and run metadata.

### What does USAspending Subawards Scraper do?

USAspending Subawards Scraper queries the no-login USAspending JSON API with `subawards: true` and saves each returned sub-award row as a structured dataset item.

It is designed for users who need repeatable exports of public spending flows from prime recipients to subrecipients or subcontractors.

You can use it to:

- 🧾 Export sub-award rows for a date range.
- 🏛 Filter by prime award type codes.
- 🔎 Search by public spending keywords.
- 🧭 Target agencies, recipients, names, or UEI values.
- 💵 Sort by sub-award amount or date.
- 🔗 Map prime award IDs to subrecipient organizations.

### Who is it for?

Government-contracting business development teams use it to identify downstream subcontracting and grant-flow opportunities.

Grant consultants use it to map which organizations receive sub-awards under large federal programs.

Vendors use it to find prime recipients and subrecipients active in their market.

Researchers use it to analyze public funding flows without manually clicking through USAspending search pages.

Compliance and public-sector teams use it to build repeatable monitoring datasets for reporting and due diligence.

### Why use this actor?

The USAspending interface is powerful, but repeat exports can be tedious when you need consistent fields, automation, and scheduled runs.

This actor gives you an API-friendly Apify workflow:

- Run manually or on a schedule.
- Export JSON, CSV, Excel, XML, or RSS from the Apify dataset.
- Connect results to Make, Zapier, webhooks, databases, or BI tools.
- Reuse the same input for recurring monitoring.
- Keep source metadata for auditability.

### What data can you extract?

| Field | Description |
| --- | --- |
| `subAwardId` | USAspending sub-award identifier |
| `subAwardType` | Sub-grant or subcontract style type |
| `subAwardDate` | Date reported by USAspending |
| `subAwardAmount` | Dollar amount of the sub-award |
| `subAwardeeName` | Subrecipient or subawardee organization |
| `subRecipientUei` | UEI for the subrecipient when available |
| `primeAwardId` | Prime award ID tied to the sub-award |
| `primeRecipientName` | Prime recipient organization |
| `primeRecipientUei` | UEI for the prime recipient when available |
| `awardingAgency` | Awarding agency name |
| `subAwardDescription` | USAspending description text |
| `scrapedAt` | Timestamp for the actor run |

### How much does it cost to extract USAspending subawards?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-item event for each sub-award record saved to the dataset.

Use `maxItems` to cap cost during testing.

For a first run, keep the default 20 records, review the output, then increase the limit for production exports.

### How to scrape USAspending subawards

1. Open the actor on Apify.
2. Choose a start date and end date.
3. Keep the default grant and assistance award type codes, or enter your own USAspending award type codes.
4. Optionally add keywords, recipient names, UEIs, agencies, or amount bounds.
5. Set `maxItems` to the number of sub-awards you need.
6. Run the actor.
7. Download the dataset from Apify or connect it to your workflow.

### Input options

#### Date range

Use `startDate` and `endDate` in `YYYY-MM-DD` format.

The date range is sent to USAspending as a `time_period` filter.

#### Award type codes

Use `awardTypeCodes` for USAspending prime award type codes.

The default values are `02`, `03`, `04`, and `05`, which are common assistance and grant-style award categories.

#### Keywords

Use `keywords` to search for public spending topics such as broadband, housing, workforce, disaster recovery, or wildfire.

#### Recipient search

Use `recipientSearchText` for recipient names, subrecipient names, prime recipient names, or UEI values.

#### Agency names

Use `agencyNames` for top-tier awarding agency names such as Department of Homeland Security.

#### Amount filters

Use `minAmount` and `maxAmount` to focus on sub-awards within a dollar range.

#### Advanced filters

Use `rawFilters` when you already know the USAspending API filter object you want to merge into the request.

### Example input

```json
{
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "awardTypeCodes": ["02", "03", "04", "05"],
  "sort": "Sub-Award Amount",
  "order": "desc",
  "maxItems": 100,
  "pageSize": 100
}
````

### Example keyword input

```json
{
  "startDate": "2023-01-01",
  "endDate": "2024-12-31",
  "keywords": ["broadband"],
  "minAmount": 100000,
  "maxItems": 250
}
```

### Output example

```json
{
  "subAwardId": "2019-CR0116-A",
  "subAwardType": "sub-grant",
  "subAwardDate": "2024-02-05",
  "subAwardAmount": 10188243769.74,
  "subAwardeeName": "PUERTO RICO ELECTRIC POWER AUTHORITY",
  "subRecipientUei": "EHNKJMN3LNZ7",
  "primeAwardId": "4339DRPRP00000001",
  "primeRecipientName": "GOVERNORS AUTHORIZED REPRESENTATIVE",
  "primeRecipientUei": "HEJDFU1K4E22",
  "awardingAgency": "Department of Homeland Security",
  "spendingLevel": "subawards",
  "sourcePage": 1,
  "scrapedAt": "2026-07-06T00:00:00.000Z"
}
```

### Common workflows

#### Subrecipient discovery

Run a broad date-range export sorted by sub-award amount, then filter by agency, amount, or keyword in your spreadsheet or database.

#### Prime-to-subrecipient mapping

Use the `primeAwardId`, `primeRecipientName`, `primeRecipientUei`, `subAwardeeName`, and `subRecipientUei` fields to build relationship tables.

#### Grant market monitoring

Schedule the actor monthly with a rolling date range and a keyword list to monitor emerging recipients in your market.

#### Compliance review

Export sub-award descriptions, agency names, UEIs, and dates for review workflows or audit preparation.

### Tips for best results

- Start with the default 20 records before increasing `maxItems`.
- Sort by `Sub-Award Amount` for high-value opportunity discovery.
- Sort by `Sub-Award Date` for monitoring recent awards.
- Use exact agency names when targeting one awarding agency.
- Use `rawFilters` only if you know the USAspending API filter syntax.
- Keep keyword lists focused; broad keywords can return very large result sets.

### Troubleshooting

#### Why did I get zero results?

Your filters may be too narrow. Try a wider date range, remove keywords, remove amount bounds, or start from the default input.

#### Why did USAspending reject my advanced filters?

`rawFilters` is passed to the USAspending API. If the API rejects it, check the exact filter names and value shapes in USAspending API documentation.

#### Why are some UEI fields empty?

USAspending records can have missing or unavailable UEI values. The actor preserves the public API response rather than inventing missing values.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/usaspending-subawards-scraper').call({
  startDate: '2024-01-01',
  endDate: '2024-12-31',
  maxItems: 100
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/usaspending-subawards-scraper').call(run_input={
    'startDate': '2024-01-01',
    'endDate': '2024-12-31',
    'maxItems': 100,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~usaspending-subawards-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startDate":"2024-01-01","endDate":"2024-12-31","maxItems":100}'
```

### Integrations

Connect the dataset to Google Sheets for analyst review.

Send results to a database for recurring public-spending intelligence.

Trigger webhooks when new sub-awards match a keyword.

Feed the dataset into dashboards for agency, recipient, or amount analysis.

Use Apify API clients to enrich subrecipient records with your internal CRM data.

### MCP usage

Use this actor through Apify MCP in Claude Code or Claude Desktop with:

`https://mcp.apify.com/?tools=automation-lab/usaspending-subawards-scraper`

Add it in Claude Code with:

```bash
claude mcp add apify-usaspending-subawards https://mcp.apify.com/?tools=automation-lab/usaspending-subawards-scraper
```

Claude Desktop JSON configuration example:

```json
{
  "mcpServers": {
    "apify-usaspending-subawards": {
      "url": "https://mcp.apify.com/?tools=automation-lab/usaspending-subawards-scraper"
    }
  }
}
```

Example prompts:

- "Run the USAspending subawards scraper for 2024 grants and summarize the largest subrecipients."
- "Find broadband subawards since 2023 and group them by prime recipient."
- "Export DHS subawards and identify subrecipient UEIs I should research next."

### Data freshness

The actor reads live USAspending API responses at run time.

Freshness therefore depends on USAspending's public data updates and reporting cadence.

For recurring monitoring, schedule the actor and compare datasets across runs.

### Legality and ethics

USAspending is a public United States government spending transparency source.

This actor uses the public API and does not require login, private credentials, or bypassing access controls.

You are responsible for using exported data in compliance with applicable laws, procurement rules, and your organization's policies.

### Limitations

The actor returns fields available from the USAspending subaward search API.

It does not enrich organizations from third-party sources.

It does not guarantee that every public spending record has a complete UEI, description, or agency value.

Advanced `rawFilters` depend on USAspending API compatibility.

### Related scrapers

Explore related automation-lab actors for government and public-record workflows:

- https://apify.com/automation-lab/usaspending-loans-scraper
- https://apify.com/automation-lab/fpds-contract-awards-scraper
- https://apify.com/automation-lab/nsf-awards-scraper

### FAQ

#### Can I scrape all subawards for a year?

Yes. Set a full-year date range and increase `maxItems`. For very large exports, run in batches by agency, keyword, amount, or month.

#### Can I filter to one company?

Yes. Use `recipientSearchText` with a company name or UEI.

#### Can I use this for subcontractor discovery?

Yes. The sub-awardee and prime-recipient fields help identify downstream organizations connected to prime awards.

#### Can I schedule it?

Yes. Use Apify schedules to run the same input daily, weekly, or monthly.

#### Does it use a browser?

No. It is an HTTP/API actor that calls the USAspending JSON API directly.

#### Does it require a proxy?

No proxy is required for the public API workflow.

#### What if USAspending changes field names?

The actor exposes optional `fields` and `rawFilters` for advanced users, and the implementation can be updated if USAspending changes defaults.

### Changelog

Initial version extracts sub-award rows from USAspending with date, amount, recipient, prime award, agency, and audit metadata.

# Actor input Schema

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

Start of the sub-award search window in YYYY-MM-DD format.

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

End of the sub-award search window in YYYY-MM-DD format.

## `awardTypeCodes` (type: `array`):

USAspending award type codes. Defaults to grants/cooperative assistance (02, 03, 04, 05), which commonly have sub-awards.

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

Optional USAspending keywords to match award text and descriptions, such as broadband, housing, wildfire, or workforce.

## `recipientSearchText` (type: `array`):

Optional recipient names, subrecipient names, prime recipient names, or UEI values to search for.

## `agencyNames` (type: `array`):

Optional top-tier awarding agency names, for example Department of Homeland Security or Department of Health and Human Services.

## `minAmount` (type: `number`):

Optional minimum dollar amount.

## `maxAmount` (type: `number`):

Optional maximum dollar amount.

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

Maximum number of sub-award rows to save to the dataset.

## `pageSize` (type: `integer`):

USAspending API page size. Leave at 100 for efficient scraping.

## `sort` (type: `string`):

Sub-award field used for sorting results.

## `order` (type: `string`):

Ascending or descending result order.

## `rawFilters` (type: `object`):

Optional advanced filters object merged into the USAspending API request. Use for filters not exposed above.

## `fields` (type: `array`):

Optional exact USAspending API field names. Leave blank to use the recommended sub-award fields.

## Actor input object example

```json
{
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "awardTypeCodes": [
    "02",
    "03",
    "04",
    "05"
  ],
  "keywords": [],
  "recipientSearchText": [],
  "agencyNames": [],
  "maxItems": 20,
  "pageSize": 100,
  "sort": "Sub-Award Amount",
  "order": "desc",
  "rawFilters": {},
  "fields": []
}
```

# Actor output Schema

## `overview` (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 = {
    "startDate": "2024-01-01",
    "endDate": "2024-12-31",
    "awardTypeCodes": [
        "02",
        "03",
        "04",
        "05"
    ],
    "keywords": [],
    "recipientSearchText": [],
    "agencyNames": [],
    "maxItems": 20,
    "pageSize": 100,
    "sort": "Sub-Award Amount",
    "order": "desc",
    "rawFilters": {},
    "fields": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/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 = {
    "startDate": "2024-01-01",
    "endDate": "2024-12-31",
    "awardTypeCodes": [
        "02",
        "03",
        "04",
        "05",
    ],
    "keywords": [],
    "recipientSearchText": [],
    "agencyNames": [],
    "maxItems": 20,
    "pageSize": 100,
    "sort": "Sub-Award Amount",
    "order": "desc",
    "rawFilters": {},
    "fields": [],
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/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 '{
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "awardTypeCodes": [
    "02",
    "03",
    "04",
    "05"
  ],
  "keywords": [],
  "recipientSearchText": [],
  "agencyNames": [],
  "maxItems": 20,
  "pageSize": 100,
  "sort": "Sub-Award Amount",
  "order": "desc",
  "rawFilters": {},
  "fields": []
}' |
apify call automation-lab/usaspending-subawards-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USAspending Subawards Scraper",
        "description": "Extract USAspending sub-awards, subrecipients, UEIs, prime award IDs, agencies, descriptions, and dollar amounts from the public API.",
        "version": "0.1",
        "x-build-id": "A0ReHJ1l2sgaR85pq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~usaspending-subawards-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-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/automation-lab~usaspending-subawards-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-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/automation-lab~usaspending-subawards-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-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",
                "required": [
                    "startDate",
                    "endDate",
                    "maxItems"
                ],
                "properties": {
                    "startDate": {
                        "title": "Start date",
                        "type": "string",
                        "description": "Start of the sub-award search window in YYYY-MM-DD format.",
                        "default": "2024-01-01"
                    },
                    "endDate": {
                        "title": "End date",
                        "type": "string",
                        "description": "End of the sub-award search window in YYYY-MM-DD format.",
                        "default": "2024-12-31"
                    },
                    "awardTypeCodes": {
                        "title": "Prime award type codes",
                        "type": "array",
                        "description": "USAspending award type codes. Defaults to grants/cooperative assistance (02, 03, 04, 05), which commonly have sub-awards.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "02",
                            "03",
                            "04",
                            "05"
                        ]
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Optional USAspending keywords to match award text and descriptions, such as broadband, housing, wildfire, or workforce.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "recipientSearchText": {
                        "title": "Recipient or UEI search text",
                        "type": "array",
                        "description": "Optional recipient names, subrecipient names, prime recipient names, or UEI values to search for.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "agencyNames": {
                        "title": "Awarding agency names",
                        "type": "array",
                        "description": "Optional top-tier awarding agency names, for example Department of Homeland Security or Department of Health and Human Services.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minAmount": {
                        "title": "Minimum sub-award amount",
                        "minimum": 0,
                        "type": "number",
                        "description": "Optional minimum dollar amount."
                    },
                    "maxAmount": {
                        "title": "Maximum sub-award amount",
                        "minimum": 0,
                        "type": "number",
                        "description": "Optional maximum dollar amount."
                    },
                    "maxItems": {
                        "title": "Maximum sub-awards",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of sub-award rows to save to the dataset.",
                        "default": 20
                    },
                    "pageSize": {
                        "title": "Page size",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "USAspending API page size. Leave at 100 for efficient scraping.",
                        "default": 100
                    },
                    "sort": {
                        "title": "Sort field",
                        "enum": [
                            "Sub-Award Amount",
                            "Sub-Award Date",
                            "Sub-Awardee Name",
                            "Prime Award ID",
                            "Prime Recipient Name",
                            "Awarding Agency"
                        ],
                        "type": "string",
                        "description": "Sub-award field used for sorting results.",
                        "default": "Sub-Award Amount"
                    },
                    "order": {
                        "title": "Sort order",
                        "enum": [
                            "desc",
                            "asc"
                        ],
                        "type": "string",
                        "description": "Ascending or descending result order.",
                        "default": "desc"
                    },
                    "rawFilters": {
                        "title": "Raw USAspending filters JSON",
                        "type": "object",
                        "description": "Optional advanced filters object merged into the USAspending API request. Use for filters not exposed above."
                    },
                    "fields": {
                        "title": "USAspending fields",
                        "type": "array",
                        "description": "Optional exact USAspending API field names. Leave blank to use the recommended sub-award fields.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
