USAspending Sub-Award & Subcontract Scraper avatar

USAspending Sub-Award & Subcontract Scraper

Pricing

from $9.23 / 1,000 results

Go to Apify Store
USAspending Sub-Award & Subcontract Scraper

USAspending Sub-Award & Subcontract Scraper

Scrape US federal sub-awards (subcontracts and subgrants) from USAspending.gov. Get sub-recipient, UEI, sub-award amount, action date, prime award ID, prime recipient, awarding agency, NAICS and PSC. Export to JSON, CSV or Excel.

Pricing

from $9.23 / 1,000 results

Rating

5.0

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

USAspending Sub-Award & Subcontract Scraper

USAspending Sub-Award & Subcontract Scraper

Here is one real result, with every field the actor returns (with withDetails enabled):

{
"subAwardId": "4104200025",
"subRecipientName": "AEROJET ROCKETDYNE INC",
"subRecipientUei": "MBSKB4QN71M1",
"subAwardAmount": 92676302.98,
"subAwardDate": "2020-10-29",
"subAwardType": "sub-contract",
"subAwardDescription": "CONTRACT CLOSEOUT (NRE) CSDR (NRE) MPR- MAN POWER REPORTING RATE TOOLING TO 500- AR AJ RATE TOOLING TO 500 IGNITOR RATE TOOLING TO 500 AND PI AEROJET SLEP III NRE ADDITIONS PROGRAM MANAGEMENT REVIEW ROCKET MOTOR :M124 AUDIT CAMDEN- ROLLMET (NRE) CYBERSECURITY ROCKET MOTOR AUDIT CAMDEN (NRE)",
"primeAwardId": "W31P4Q19C0092",
"primeRecipientName": "LOCKHEED MARTIN CORPORATION",
"primeAwardGeneratedId": "CONT_AWD_W31P4Q19C0092_9700_-NONE-_-NONE-",
"awardingAgency": "Department of Defense",
"awardingSubAgency": "Department of the Army",
"naicsCode": "336414",
"naicsDescription": "GUIDED MISSILE AND SPACE VEHICLE MANUFACTURING",
"pscCode": "1410",
"pscDescription": "GUIDED MISSILES",
"subRecipientLocation": {
"country": "UNITED STATES", "state": "Arkansas", "city": "CAMDEN", "county": null,
"zip": "71701", "congressionalDistrict": "04", "addressLine1": "14160 W AR 274 HWY"
},
"placeOfPerformance": {
"country": "UNITED STATES", "state": "Arkansas", "city": "CAMDEN", "county": null,
"zip": "71701", "congressionalDistrict": "04", "addressLine1": null
},
"primeAwardUrl": "https://www.usaspending.gov/award/CONT_AWD_W31P4Q19C0092_9700_-NONE-_-NONE-",
"observedAt": "2026-08-10T14:41:01.930Z",
"error": null,
"primeAwardPiid": "W31P4Q19C0092",
"primeAwardAmount": 1282358259.21,
"primeAwardDescription": "ARMY TACTICAL MISSILE SYSTEM (ATACMS) SERVICE LIFE EXTENSION PROGRAM (SLEP) PRODUCTION LOT THREE",
"primeAwardCategory": "contract",
"primeAwardTypeDescription": "DEFINITIVE CONTRACT",
"primeRecipientUei": "XFJMYSYFJEK4",
"primeParentRecipientName": "LOCKHEED MARTIN CORP",
"primeParentUei": "ZFN2JJXBLZT3",
"primeRecipientAddress": {
"country": "UNITED STATES", "state": "TEXAS", "city": "GRAND PRAIRIE", "county": "DALLAS",
"zip": "75051", "congressionalDistrict": "33", "addressLine1": "1701 W MARSHALL DR"
},
"primeBusinessCategories": ["Category Business", "Corporate Entity Not Tax Exempt", "Manufacturer of Goods", "Not Designated a Small Business", "Special Designations", "U.S.-Owned Business"],
"primeExecutiveCompensation": null,
"primePeriodStart": "2019-06-24",
"primePeriodEnd": "2027-09-30",
"primeNaicsDescription": "GUIDED MISSILE AND SPACE VEHICLE MANUFACTURING",
"primeSolicitationIdentifier": "W31P4Q18R0098",
"primeTypeOfContractPricing": "FIXED PRICE INCENTIVE",
"primeAwardingOffice": "W6QK ACC-RSA"
}

The most complete USAspending sub-award scraper available. It returns every field the USAspending sub-award search exposes for each subcontract or subgrant, and when withDetails is on it adds the prime award detail record: prime amount and description, period of performance, prime recipient UEI, business categories, and contract pricing. Six filters let you target exactly the sub-awards you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor calls the public USAspending sub-award search, applies the filters you pass as input, paginates through the matching sub-awards, and writes one normalized record per sub-award to the run's dataset. Amounts are returned as numbers, dates as strings, and missing source values as null. When withDetails is enabled (the default) the actor fetches the prime award detail record for each sub-award (cached per prime award) and adds prime amount, description, period of performance, prime recipient UEI, business categories, and contract pricing.

Sub-awards exist only for prime contracts (as subcontracts) and prime grants (as subgrants). The earliest supported action date is 2007-10-01.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 largest cybersecurity subcontracts with prime award details.

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

Every input field is optional, but a keyword, recipient, agency, or date range is recommended. Set withDetails to false for a faster pull without the prime award detail fields.

Input reference

FieldTypeRequiredDefaultDescription
maxSubawardsintegerno10Maximum number of sub-awards to collect. Range 1 to 1000000. Free Apify plans are capped at 10 per run.
withDetailsbooleannotrueWhen on, fetches the prime award detail record per sub-award (prime amount, description, period of performance, prime recipient UEI). Cached per prime award.
keywordstringno(empty)Free-text search across prime award description, recipient, and identifiers, for example cybersecurity, construction, research.
awardTypesstring[]no(both)Prime award categories whose sub-awards to include: contracts (subcontracts), grants (subgrants). Empty includes both.
agencystringno(empty)Top-tier awarding agency name exactly as used by USAspending, for example Department of Defense.
recipientstringno(empty)Prime recipient name or part of it, for example Booz Allen, Leidos.
dateFromstringno(empty)Earliest sub-award action date (YYYY-MM-DD). Earliest supported is 2007-10-01.
dateTostringno(empty)Latest sub-award action date (YYYY-MM-DD).
sortenumnoSub-Award AmountField to sort by: Sub-Award Amount, Sub-Awardee Name, Sub-Award Date, Prime Award ID.
orderenumnodescSort order: desc or asc.

Filters combine with logical AND.

Output reference

One dataset item per sub-award. Prime detail fields (primeAwardPiid onward below) are present only when withDetails is enabled. Types: string, number, object, array, or null when the source value is absent.

FieldTypeDescription
subAwardIdstringSub-award identifier.
subRecipientNamestringSub-recipient (subcontractor / subgrantee) name.
subRecipientUeistringSub-recipient Unique Entity Identifier (UEI).
subAwardAmountnumberSub-award amount, in USD.
subAwardDatestringSub-award action date.
subAwardTypestringSub-award type, for example sub-contract.
subAwardDescriptionstringSub-award description.
primeAwardIdstringPrime award ID (PIID or FAIN).
primeRecipientNamestringPrime recipient name.
primeAwardGeneratedIdstringUSAspending generated ID for the prime award, used in primeAwardUrl.
awardingAgencystringTop-tier awarding agency.
awardingSubAgencystringAwarding sub-agency.
naicsCodestringNAICS code.
naicsDescriptionstringNAICS description.
pscCodestringProduct or Service Code.
pscDescriptionstringPSC description.
subRecipientLocationobjectSub-recipient location (country, state, city, county, zip, congressionalDistrict, addressLine1).
placeOfPerformanceobjectPlace of performance (same shape as subRecipientLocation).
primeAwardUrlstringLink to the prime award page on USAspending.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. Populated on a failed record.
primeAwardPiidstringPrime contract number (PIID). Detail field.
primeAwardAmountnumberPrime award obligated amount, in USD. Detail field.
primeAwardDescriptionstringPrime award description. Detail field.
primeAwardCategorystringPrime award category, for example contract. Detail field.
primeAwardTypeDescriptionstringPrime award type description. Detail field.
primeRecipientUeistringPrime recipient UEI. Detail field.
primeParentRecipientNamestringPrime recipient parent name. Detail field.
primeParentUeistringPrime recipient parent UEI. Detail field.
primeRecipientAddressobjectPrime recipient registered address. Detail field.
primeBusinessCategoriesstring[]Prime recipient business categories. Detail field.
primeExecutiveCompensationobject[]Prime recipient named executives and compensation, or null. Detail field.
primePeriodStartstringPrime award period of performance start. Detail field.
primePeriodEndstringPrime award period of performance end. Detail field.
primeNaicsDescriptionstringPrime award NAICS description. Detail field.
primeSolicitationIdentifierstringPrime award solicitation number. Detail field.
primeTypeOfContractPricingstringPrime contract pricing type. Detail field.
primeAwardingOfficestringPrime award awarding office. Detail field.

On a failed run the actor writes a single item with a populated error field instead of a sub-award, and does not charge for it.

Example output record

Real record from a live run (input {"maxSubawards": 10, "withDetails": true, "keyword": "cybersecurity", "awardTypes": ["contracts"], "sort": "Sub-Award Amount", "order": "desc"}). Same record shown at the top of this page:

{
"subAwardId": "4104200025",
"subRecipientName": "AEROJET ROCKETDYNE INC",
"subRecipientUei": "MBSKB4QN71M1",
"subAwardAmount": 92676302.98,
"subAwardDate": "2020-10-29",
"subAwardType": "sub-contract",
"primeAwardId": "W31P4Q19C0092",
"primeRecipientName": "LOCKHEED MARTIN CORPORATION",
"awardingAgency": "Department of Defense",
"naicsCode": "336414",
"primeAwardAmount": 1282358259.21,
"primeAwardTypeDescription": "DEFINITIVE CONTRACT",
"primeTypeOfContractPricing": "FIXED PRICE INCENTIVE",
"primeAwardUrl": "https://www.usaspending.gov/award/CONT_AWD_W31P4Q19C0092_9700_-NONE-_-NONE-",
"observedAt": "2026-08-10T14:41:01.930Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~usaspending-subawards-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"cybersecurity","awardTypes":["contracts"],"maxSubawards":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~usaspending-subawards-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"recipient":"Lockheed","agency":"Department of Defense","maxSubawards":100}'

Apify CLI:

apify call scrapers_lat/usaspending-subawards-scraper \
--input '{"keyword":"research","awardTypes":["grants"],"withDetails":false}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per sub-award returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a request errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 sub-awards per run. Upgrade for higher maxSubawards.
  • withDetails reuses cached prime records. Detail lookups are cached per prime award, so many sub-awards under the same prime add little extra time.

FAQ and troubleshooting

A run returned 0 records. Why? The filter combination matched nothing in the source. Loosen filters (for example widen the date range or drop the agency name), or try a broader keyword. Zero-result runs are not charged.

What is the difference between a sub-award and a prime award? A prime award is the government-to-recipient award. A sub-award is a subcontract or subgrant the prime recipient issues to another company. For the prime awards themselves, use the USAspending Federal Award Scraper.

Why is primeExecutiveCompensation null? No executive compensation is published for that prime recipient. Missing source values are returned as null, never invented.

Why are the prime detail fields missing? withDetails was set to false. Enable it (the default) to get prime amount, description, period of performance, and contract pricing.

How far back does the data go? The earliest supported sub-award action date is 2007-10-01.

Is this an official government tool? No. This actor is independent and has no affiliation with USAspending or the U.S. Treasury. It reads only data that is publicly available through USAspending. Use the results in accordance with the source's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with USAspending or the U.S. Treasury. Accesses only publicly available federal sub-award data. Use in accordance with the source's terms.