USAspending [$0.50 πŸ’°] Federal Awards & Contracts avatar

USAspending [$0.50 πŸ’°] Federal Awards & Contracts

Pricing

$0.50 / 1,000 results

Go to Apify Store
USAspending [$0.50 πŸ’°] Federal Awards & Contracts

USAspending [$0.50 πŸ’°] Federal Awards & Contracts

$0.50 per 1,000 results β€” Search U.S. federal awards and contracts with recipient, agency, keyword, NAICS, PSC, location, date, amount and award-type filters.

Pricing

$0.50 / 1,000 results

Rating

0.0

(0)

Developer

Debashish Biswas

Debashish Biswas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

USAspending Federal Awards

Extract U.S. federal contract and award data directly from the official USAspending.gov API using a lightweight, API-based Apify Actor.

This Actor is designed for users who need clean federal award data without browser automation, Google Places, AI enrichment, or proxy infrastructure.

What this Actor does

  • Searches USAspending federal awards and subawards.
  • Searches by recipient/company name, UEI, or DUNS.
  • Filters by award type, keywords, dates, agencies, NAICS, PSC, country, recipient type, and award amount.
  • Automatically paginates through USAspending API results.
  • Supports up to 1,000,000 results per run, subject to source availability and run limits.
  • Uses a maximum of 100 records per USAspending API request and automatically continues to the next page.
  • Produces normalized, analysis-friendly JSON dataset items.
  • Preserves the complete original USAspending record in the raw field.
  • Generates a direct USAspending award URL when an Award ID is available.

Why use this Actor?

Low-cost architecture

The Actor uses the USAspending API directly:

Apify Actor
↓
USAspending.gov API
↓
JSON response
↓
Normalization
↓
Apify Dataset

It does not require:

  • Selenium or Chrome
  • residential proxies
  • Google Places API
  • OpenAI/LLM calls
  • paid data enrichment services

This keeps the architecture simple and helps keep execution costs low.

Data fields

Each dataset item can contain:

Award

  • award_id
  • usaspending_url
  • award_amount
  • total_outlays
  • start_date
  • end_date
  • award_type
  • contract_award_type
  • description

Recipient

  • recipient_name
  • recipient_uei
  • recipient_duns
  • recipient_address
  • recipient_city
  • recipient_state
  • recipient_state_name
  • recipient_zip
  • recipient_zip4
  • recipient_country
  • recipient_country_name
  • recipient_county
  • recipient_county_name

Agencies

  • awarding_agency
  • awarding_sub_agency
  • funding_agency
  • funding_sub_agency

Classification

  • naics
  • naics_description
  • psc
  • psc_description

Place of performance

  • performance_address
  • performance_city
  • performance_state
  • performance_state_name
  • performance_zip
  • performance_country
  • performance_country_name

Source

  • source
  • raw

The raw field contains the original USAspending record so users can access additional source fields that are not separately normalized by the Actor.

Award type codes

USAspending requires award_type_codes, and the API requires codes from one award-type group per request.

Contracts

A
B
C
D

Grants

02
03
04
05
F001
F002

Loans

07
08
F003
F004

Indefinite Delivery Vehicles (IDVs)

IDV_A
IDV_B
IDV_B_A
IDV_B_B
IDV_B_C
IDV_C
IDV_D
IDV_E

Other financial assistance

06
10

If no award type codes are supplied, this Actor defaults to contracts (A, B, C, D).

Do not mix groups in one request, for example:

{
"awardTypeCodes": ["A", "02"]
}

This will be rejected by the Actor because A is a contract code while 02 is a grant code.

Input example

A simple company search:

{
"recipient": "Microsoft",
"maxItems": 1000,
"pageSize": 100
}

The default award type is contracts.

A contracts-only search can also be explicit:

{
"recipient": "Microsoft",
"awardTypeCodes": ["A", "B", "C", "D"],
"maxItems": 1000,
"pageSize": 100
}

A grants search:

{
"recipient": "Microsoft",
"awardTypeCodes": [
"02",
"03",
"04",
"05",
"F001",
"F002"
],
"maxItems": 1000,
"pageSize": 100
}

Available input options

InputDescription
modeawards or recipients. Recipient mode requires a recipient or UEI/DUNS filter and remains based on the award-search API.
recipientRecipient/company name, UEI, or DUNS search.
recipientIdsOptional UEI/DUNS list; the first value is used.
keywordsKeyword search terms.
awardTypeCodesAward codes from one group. Defaults to contracts.
spendingLevelawards or subawards.
startDateStart date in YYYY-MM-DD format.
endDateEnd date in YYYY-MM-DD format.
recipientScopeall, domestic, or foreign.
placeOfPerformanceScopeall, domestic, or foreign.
recipientCountryRecipient country code.
performanceCountryPlace-of-performance country code.
recipientTypesUSAspending recipient/business type names.
agenciesAdvanced USAspending agency filter objects.
naicsCodesNAICS codes to require.
pscCodesProduct and Service Codes to filter.
minAwardAmountMinimum award amount in USD.
maxAwardAmountMaximum award amount in USD.
maxItemsMaximum number of output records; maximum configured value is 1,000,000.
pageSizeUSAspending API page size; maximum is 100.
fieldsOptional advanced USAspending source field list.

Pagination

USAspending currently limits the request page size used by this Actor to 100.

For example:

maxItems = 1,000
pageSize = 100
Page 1 β†’ 100
Page 2 β†’ 100
Page 3 β†’ 100
...
Page 10 β†’ 100

The Actor automatically continues until it reaches the requested maximum or the source has no more matching records.

Output example

A normalized result looks like:

{
"award_id": "HT940216C0001",
"usaspending_url": "https://www.usaspending.gov/award/HT940216C0001",
"recipient_name": "HUMANA MILITARY SERVICES LLC",
"recipient_uei": "ZCGFQJ8YJ9P1",
"recipient_duns": "088193617",
"recipient_address": "500 W MAIN STREET",
"recipient_city": "LOUISVILLE",
"recipient_state": "KY",
"recipient_state_name": "Kentucky",
"recipient_zip": "40202",
"recipient_country": "USA",
"recipient_country_name": "UNITED STATES",
"award_amount": 44683648,
"start_date": "2016-01-01",
"end_date": "2016-12-31",
"awarding_agency": "DEPT OF DEFENSE",
"naics": "524114",
"naics_description": "DIRECT HEALTH AND MEDICAL INSURANCE CARRIERS",
"psc": "Q201",
"psc_description": "MEDICAL- MANAGED HEALTHCARE",
"source": "USAspending.gov"
}

The complete source response is also retained under:

raw

Cost and pricing

USAspending source cost

The Actor uses the public USAspending API and does not use a paid Google Places API, LLM API, browser service, or proxy service.

Proposed Actor Store price

The Store price is:

$0.50 per 1,000 results

This is the proposed product price and should be confirmed in the Apify Store monetization configuration before publication.

Apify supports Pay per Event and Pay per Usage monetization models. For this Actor, the intended model is a result-based event using dataset items as the billable result. Apify's monetization configuration allows the developer to set event prices and choose whether platform usage costs are passed to users.

Running locally

For local development, Apify Actors use the Actor input stored in the local Apify storage:

storage/key_value_stores/default/INPUT.json

Example:

{
"recipient": "Microsoft",
"maxItems": 1000,
"pageSize": 100
}

Then run the Actor using the local Apify development workflow.

The first recommended tests are:

1,000 results
10,000 results
100,000 results

After successful testing, a larger run can be used to measure actual Apify platform usage.

Measuring operating cost

A local Windows run is useful for validating:

  • API connectivity
  • pagination
  • output quality
  • execution time
  • error handling

However, local execution does not represent the Apify platform's compute cost.

For real cost measurement, run the Actor on Apify and record:

  • Compute Units (CU)
  • runtime
  • dataset size
  • total platform usage

This can then be used to calculate the actual cost per 1,000 results and validate the Store price.

Source

Data is retrieved from the official:

USAspending.gov

API:

https://api.usaspending.gov/

USAspending provides public federal spending information through its API.

Users are responsible for complying with applicable source terms, laws, regulations, and any restrictions applicable to their intended use or redistribution of data.

FAQ

Does this Actor use Google Places?

No.

Does it use AI?

No. The current production Actor does not call an AI/LLM service.

Does it use Selenium?

No.

Does it require an USAspending API key?

The current implementation uses the public USAspending API endpoints and does not require an API key.

Can I retrieve 1 million results?

The Actor is configured to accept up to 1,000,000 requested results, but the actual number returned depends on matching records available from USAspending and the practical limits of an individual Actor run.

Why is the API page size limited to 100?

The Actor respects the USAspending API request limit and automatically paginates instead of requesting all records in a single API call.

Can I request contracts and grants together?

No. USAspending requires award type codes from a single award group per request. Run separate Actor calls for different groups.

Where are the results stored?

Results are pushed to the Actor's default Apify Dataset. The SUMMARY key-value entry also contains a run summary.

Support

If an input combination produces an unexpected result, first verify:

  1. Award type codes belong to one group.
  2. Dates use YYYY-MM-DD.
  3. pageSize is between 1 and 100.
  4. The requested maxItems is realistic for the selected filters.

For large runs, start with a small maxItems value to verify the filters before requesting a large dataset.