USAspending Federal Awards Scraper avatar

USAspending Federal Awards Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
USAspending Federal Awards Scraper

USAspending Federal Awards Scraper

USAspending scraper & API: search US federal contracts, grants and awards and export recipient, agency, amount, award type, dates, place of performance and NAICS. Government-contract intelligence and B2B lead generation — fast, no login.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

USAspending Scraper — Federal Contracts, Grants, UEI & Recipients

Turn 8,000,000+ US federal awards into a ready-to-use database. This USAspending scraper extracts every federal contract, grant, loan, IDV, and direct payment from USAspending.gov — with the recipient company's UEI, full registered address, business categories (small business / 8(a) / WOSB / HUBZone / SDVOSB), NAICS hierarchy, PSC code, set-aside type, executive compensation, place of performance, awarding agency hierarchy, and competition details. No login, no coding, no paid subscription.

Export to JSON, CSV, Excel, or API.

Built for B2G sales teams, GovTech & govcon founders, M&A / private-equity analysts, compliance & due-diligence teams, investigative journalists, policy researchers, defense/health/energy analysts, lobbyists, prime contractors, and set-aside small businesses who want federal-spending intelligence faster and cheaper than GovWin IQ, Bloomberg Government, or Deltek.


🔎 Why scrape USAspending?

US federal spending is the largest single procurement pool on the planet — over $7 trillion in annual outlays, recorded transparently down to the individual award level. Every Department of Defense contract, every NIH grant, every Department of Energy loan sits in the public record on USAspending.gov. But the official site is built for one-off browsing: no bulk export of the rich detail record, awkward pagination, and the most valuable fields (recipient UEI, full address, business-type flags, FFATA executive compensation) are buried one award at a time.

This USAspending scraper does the heavy lifting. It searches the official award endpoints, paginates through the full result set, pulls the deep detail record for every award, and hands you a clean, structured, de-duplicated dataset ready for your CRM, data warehouse, or analysis notebook. If you've ever paid for GovWin IQ, Bloomberg Government, Deltek GovWin, FedScout, or B2Gnow, this scraper delivers a superset of the underlying public data for a fraction of the cost — and exports straight into your pipeline.

Common reasons people scrape USAspending:

  • Build federal-contractor lead lists by NAICS, agency, set-aside and location — with UEI and named executives for outbound.
  • Track competitor contract wins on a schedule (who signed what, with which agency, for how much).
  • Screen M&A / PE acquisition targets by federal-revenue proxy (obligated amount × recent awards).
  • Find small-business / 8(a) / WOSB / HUBZone / SDVOSB teaming partners by NAICS and geography.
  • Run compliance & vendor due-diligence — audit-grade federal-award history for any company.
  • Power federal-spending dashboards, programmatic SEO, and grant intelligence (HHS, NSF, DOE, ED).

✨ What this USAspending scraper does

  • ✅ Searches all six award categories — contracts, IDVs (indefinite delivery vehicles / IDIQs / GWACs), grants, loans, direct payments, and other financial assistance.
  • ✅ Rich filtering & targeting — keywords, awarding agency, recipient name, NAICS industry codes (built-in list + custom), small-business set-aside programs, recipient state, place-of-performance state, date range, and award-amount range.
  • ✅ Automatic pagination — walks the official award-search endpoint 100 records per page and returns large, de-duplicated result sets (hundreds to tens of thousands), capped by your maxRecords.
  • ✅ Deep per-award detail — for every award it pulls the full record: recipient UEI + parent UEI, full registered address (street, city, state, ZIP-5/ZIP-4, county, congressional district), business categories, NAICS 3-tier hierarchy, PSC code, set-aside type, competition details, period of performance, obligations, outlays, subaward stats, and FFATA executive compensation.
  • ✅ Fast listing-only mode — flip scrapeAwardDetails off for ultra-fast bulk discovery when you only need the summary row.
  • ✅ Flat + nested output — every record carries both a nested object (full fidelity) and flat convenience fields (recipientName, recipientUei, agencyName, naicsCode, performanceState, …) for clean table/CSV views.
  • ✅ Two ready-made dataset views — an Awards table (one row per award) and a Recipients + executives table (one row per award × disclosed executive).
  • ✅ Export formats — JSON, CSV, Excel (XLSX), or API.
  • ✅ No API key, no login, runs without a proxy. The USAspending API is public and direct-friendly.

🎯 Use cases

  • B2G / govcon sales teams — prospect federal contractors by NAICS, agency, and set-aside; export UEI + address + executives straight into Apollo, Salesforce, HubSpot, Clay, or Smartlead.
  • GovTech & B2G SaaS founders — build lead lists of agencies and prime contractors with known, obligated budgets.
  • M&A & private-equity analysts — screen federal-contractor acquisition targets by revenue proxy and industry.
  • Compliance & due-diligence teams — verify vendor relationships, set-aside qualifications, and audit trails.
  • Investigative journalists & policy researchers — trace federal spending patterns, agency budgets, and vendor concentration.
  • Defense, healthcare & energy analysts / lobbyists — monitor award flow by NAICS, sub-agency, or set-aside program, and track who's winning contracts in their industries.
  • Small businesses & set-aside firms (8(a) / WOSB / HUBZone / SDVOSB) — find set-aside opportunities and teaming primes by NAICS and state.

📥 Input

Configure a run from the Apify Console UI or via JSON. Every field is optional — leave the defaults to pull the last full fiscal year of contracts, sorted by award amount. Add filters to laser in on your ICP.

FieldTypeDescription
awardTypeCategoriesarrayCategories to pull: contracts, idvs, grants, loans, other_financial_assistance, direct_payments. Default ["contracts"].
keywordsarrayFree-text search across award descriptions (e.g. ["cybersecurity","cloud"]).
recipientSearchTextstringSubstring match on contractor / grantee name (e.g. "Lockheed").
agencyNamesarrayTop-tier awarding agencies (Department of Defense, HHS, VA, NASA, DOE, …).
naicsCodesarrayNAICS industry codes from the built-in picklist (6-digit).
naicsCodesCustomarrayAdvanced: any other NAICS codes (2 / 4 / 6 digit), merged with the picks above.
setAsideTypesarraySmall-business set-aside codes (SBA, 8A, WOSB, HUBZ, SDVOSBC, …).
recipientLocationStatesarrayOnly contractors HQ'd in these US states.
placeOfPerformanceStatesarrayOnly awards performed in these US states.
timePeriodStart / timePeriodEndstringDate range YYYY-MM-DD. Empty = last full fiscal year → today.
minAwardAmount / maxAwardAmountintegerDollar-value floor / ceiling. 0 = no limit.
sortBystringAward Amount, Start Date, End Date, Recipient Name, or Award ID.
sortOrderstringdesc (largest / latest first) or asc.
scrapeAwardDetailsbooleantrue (default) = full detail per award (UEI, address, executives). false = fast listing rows only.
maxRecordsintegerTotal cap on awards returned. 0 = unlimited (millions exist — set a cap).
requestDelayintegerPoliteness delay between requests, in ms. Default 250.
maxConcurrencyintegerParallel detail fetches (1–20). Default 5.
proxyConfigurationobjectOptional. Runs fine with no proxy; enable only for very large volumes.

Example input

{
"awardTypeCategories": ["contracts"],
"agencyNames": ["Department of Defense"],
"naicsCodes": ["541512"],
"setAsideTypes": ["8A", "WOSB", "HUBZ", "SDVOSBC"],
"recipientLocationStates": ["VA", "MD", "DC"],
"timePeriodStart": "2023-10-01",
"timePeriodEnd": "2024-09-30",
"minAwardAmount": 1000000,
"sortBy": "Award Amount",
"sortOrder": "desc",
"scrapeAwardDetails": true,
"maxRecords": 5000
}

📤 Output

Every run pushes structured records to a dataset you can view, filter, and export as JSON, CSV, Excel, or via API. Each record carries a full nested object plus flat convenience fields for clean table/CSV views.

Example output — a real federal award record

{
"awardId": "HT940216C0001",
"internalAwardId": "CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-",
"category": "contract",
"type": "D",
"typeDescription": "DEFINITIVE CONTRACT",
"description": "IGF::OT::IGF",
"awardAmount": 51269205263.03,
"totalObligation": 51269205263.03,
"baseAndAllOptions": 56620536577.19,
"totalOutlay": null,
"dateSigned": "2016-07-29",
"periodOfPerformance": {
"startDate": "2016-08-01",
"currentEndDate": "2025-12-31",
"potentialEndDate": "2025-12-31 00:00:00"
},
"awardingAgency": {
"toptierName": "Department of Defense",
"toptierCode": "097",
"toptierAbbrev": "DOD",
"subtierName": "Defense Health Agency",
"subtierCode": "97DH",
"officeName": "DEFENSE HEALTH AGENCY"
},
"fundingAgency": { "toptierName": "Department of Defense", "subtierName": "Defense Health Agency" },
"recipient": {
"name": "HUMANA GOVERNMENT BUSINESS INC",
"uei": "ZE6ZM6NKSV43",
"parentName": "HUMANA GOVERNMENT BUSINESS INC",
"parentUei": "ZE6ZM6NKSV43",
"businessCategories": [
"Category Business",
"Corporate Entity Not Tax Exempt",
"Not Designated a Small Business",
"Special Designations",
"U.S.-Owned Business"
],
"location": {
"addressLine1": "500 W MAIN STREET",
"city": "LOUISVILLE",
"state": "KENTUCKY",
"stateCode": "KY",
"country": "UNITED STATES",
"countryCode": "USA",
"zip5": "40202",
"zip4": "2946",
"county": "JEFFERSON",
"congressionalCode": "03"
}
},
"placeOfPerformance": {
"city": "LOUISVILLE",
"state": "KENTUCKY",
"stateCode": "KY",
"country": "UNITED STATES",
"countryCode": "USA",
"county": "JEFFERSON",
"zip5": "40201",
"congressionalCode": "03"
},
"naics": {
"code": "524114",
"description": "DIRECT HEALTH AND MEDICAL INSURANCE CARRIERS",
"midtierCode": "5241",
"midtierDescription": "Insurance Carriers",
"toptierCode": "52",
"toptierDescription": "Finance and Insurance"
},
"psc": { "code": "Q201", "description": "SUPPORT- MEDICAL: HEALTHCARE" },
"setAside": { "code": null, "description": null },
"competition": {
"extentCompeted": "Full and Open Competition",
"numberOfOffers": "4",
"solicitationProcedures": "Negotiated Proposal/Quote"
},
"subawardCount": 0,
"subawardTotalAmount": null,
"executiveCompensation": [
{ "name": "KAREN MORAN", "amount": 1409718 },
{ "name": "KEVIN REGENHOLD", "amount": 607266 },
{ "name": "MELANIE BUEHLER", "amount": 604450 },
{ "name": "MATT PAYNTER", "amount": 621345 },
{ "name": "BILL DERECH", "amount": 578390 }
],
"awardDetailUrl": "https://www.usaspending.gov/award/CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-/",
"scrapedAt": "2026-11-01T18:15:00.000Z"
}

Field reference (main fields)

FieldDescription
awardIdOfficial award identifier (PIID for contracts, FAIN/URI for assistance).
internalAwardIdUSAspending's unique internal award ID — the stable natural key (used for dedup + detail URL).
category / type / typeDescriptionAward category and human-readable subtype (e.g. "DEFINITIVE CONTRACT", "BPA CALL", "BLOCK GRANT").
descriptionFree-text description of what was procured / funded.
awardAmount / totalObligationTotal obligated dollars on the award.
baseAndAllOptionsContract ceiling including all option years.
totalOutlayActual money paid to date (present when reported).
dateSignedDate the award was signed.
periodOfPerformancestartDate, currentEndDate, potentialEndDate.
awardingAgencyTop-tier + sub-tier agency name/code/abbreviation + office.
fundingAgencyFunding source agency (can differ from the awarder).
recipientRecipient name, uei, parentName, parentUei, businessCategories[], and full location.
recipient.locationStreet, city, state + stateCode, ZIP-5/ZIP-4, county, country, congressionalCode.
placeOfPerformanceCity, state, county, ZIP, country, congressional district where the work happens.
naicsNAICS base/mid-tier/top-tier codes + descriptions (roll up by 2 / 4 / 6 digit).
pscProduct or Service Code + description (federal procurement taxonomy).
setAsideSet-aside code + description (present for set-aside contracts).
competitionextentCompeted, numberOfOffers, solicitationProcedures.
subawardCount / subawardTotalAmountAggregate subaward count and dollar total.
executiveCompensationNamed officers + declared compensation (USD), only when the recipient has an FFATA disclosure — empty array otherwise.
recipientName, recipientUei, recipientState, agencyName, naicsCode, performanceState, …Flat convenience fields for CSV / table / CRM import.
awardDetailUrl / scrapedAtDirect link to the official award page / ISO extraction timestamp.

Honesty note on coverage (from a fresh 500-record run): identity + financial fields (awardId, internalAwardId, awardAmount, recipientName, recipientUei, agencyName, dateSigned, awardDetailUrl) land at 100%; description ~96%; NAICS, recipient address, PSC and awarding-agency hierarchy ~99–100%. Genuinely data-dependent fields are lower by nature: setAside ~86% (not all contracts are set aside), totalOutlay ~51% (money not yet paid on newer awards), subawardTotalAmount ~65%, and executiveCompensation populates for roughly 24–60% of recipients (only those above the FFATA disclosure threshold). These are properties of the source record, not scraper gaps.


🔁 Pagination & scale

The scraper calls the official spending_by_award search endpoint and paginates 100 records per page, following the API's hasNext flag until it reaches your maxRecords cap or the end of the result set. Discovered awards are collected by their unique internalAwardId (so the output is de-duplicated — a fresh 500-record run returned 500/500 unique awards, 0% duplicates).

For each discovered award it then fetches the deep detail record in parallel (tuned by maxConcurrency, 1–20). With defaults, a 500-award detailed run completes in about 30 seconds. Set maxRecords to any size — hundreds for a focused ICP, tens of thousands for a full-industry sweep. For very large sweeps, use scrapeAwardDetails: false (listing-only, 5–10× faster) or schedule overnight runs. Leaving maxRecords: 0 with no filters returns a safe 100-award sample rather than attempting to page through millions.


⚙️ How to use

  1. Open the actor on the Apify Console and click Try for free.
  2. Set your filters — pick award categories, add an agency / NAICS / set-aside / state / keyword, and a date range. Leave everything blank for a top-awards sample.
  3. Choose depth — keep scrapeAwardDetails: true for outbound-ready detail, or turn it off for fast bulk discovery. Set maxRecords.
  4. Run it — in the Console, via the Apify API / CLI, or on a schedule (cron).
  5. Export — download JSON, CSV, or Excel, or pull via the dataset API.
  6. Integrate — pipe results into Salesforce, HubSpot, Pipedrive, Apollo, Clay, Outreach, Smartlead, Google Sheets, a webhook, or Make / Zapier.

💡 Tips

  • Always run scrapeAwardDetails: true for outbound — listing rows alone don't carry the recipient UEI, full address, business categories, or executives.
  • Stack filters to hit your ICP — combine naicsCodes + recipientLocationStates + setAsideTypes to narrow a huge pool to a precise prospect list.
  • Sort by Award Amount descending for biggest-fish-first prospecting; sort by Start Date to catch the newest awards.
  • Track competitors on a cron — set recipientSearchText to a competitor name and schedule a weekly run for real-time win alerts.
  • Estimate federal revenue — pull a 12–24 month window by recipientLocationStates + naicsCodes with a minAwardAmount to rank contractors by obligated dollars.
  • Validate first, then scale — run maxRecords: 100 on your real ICP, confirm the fields, then raise the cap.

❓ FAQ

Is scraping USAspending legal? USAspending.gov publishes public-domain US federal spending data in the public interest, free for commercial and non-commercial use. You are responsible for compliance with outreach laws (CAN-SPAM, TCPA, GDPR for non-US recipients) when using the data for campaigns.

How many results can I get, and how fast? As many as match your filters — hundreds to tens of thousands. A fresh detailed run returned 500 awards in ~30 seconds. Listing-only mode is several times faster.

Do I need a proxy or a login? Is there an API? No login, no API key, and no proxy needed — the USAspending API is public and direct-friendly (a proxy is optional for very large volumes). Every run is a standard Apify actor callable via the Apify API / CLI, with results streaming from the dataset API — effectively a USAspending API wrapper with enrichment and bulk export in JSON, CSV, Excel (XLSX).

How fresh is the data? Federal agencies update their USAspending reporting on rolling schedules (typically weekly to monthly). Run on any cadence to capture deltas; amounts and outlays update as contracts are modified or executed.

Can I filter by NAICS, agency, set-aside, state, or dollar size? Yes — all of them, individually or combined: naicsCodes, agencyNames, setAsideTypes, recipientLocationStates / placeOfPerformanceStates, and minAwardAmount / maxAwardAmount. For small-business programs, set setAsideTypes (e.g. ["SBA","8A","WOSB","HUBZ","SDVOSBC"]).

Are grants and loans included — or just contracts? All of it: set awardTypeCategories to any mix of contracts, idvs, grants, loans, direct_payments, other_financial_assistance.

Will the same award appear twice? No — awards are de-duplicated on their unique internalAwardId before output.

Can I get executive names + compensation? Yes — when the recipient meets the FFATA disclosure threshold, the top officers and their declared compensation appear in executiveCompensation. Recipients without a disclosure return an empty array (no null padding).

How does this compare to GovWin / Bloomberg Government / Deltek? Those paid platforms ($10K–$50K/yr) layer analytics on top of the same underlying public dataset this scraper pulls from. You get the raw, structured, exportable data at a small fraction of the cost.


Pair this USAspending scraper with the rest of the government, compliance, and B2B/B2G intelligence suite:


⚖️ Disclaimer

This scraper collects publicly available US federal spending data published by the US government in the public interest, under public-domain rules. You are responsible for compliance with applicable laws (CAN-SPAM, TCPA, GDPR for non-US recipients) when using the data for outbound campaigns.

Ready to build your federal-spending database? Click Try for free and run the USAspending scraper now.