USAspending Awards Scraper — Federal Contracts & Grants API
Pricing
from $1.60 / 1,000 usaspending award results
USAspending Awards Scraper — Federal Contracts & Grants API
Search USAspending federal awards by recipient, agency, state, keyword or amount and export contracts and grants as JSON. USD 2 per 1,000 award records.
Pricing
from $1.60 / 1,000 usaspending award results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
USAspending Awards Scraper searches the official USAspending.gov award database and returns U.S. federal prime awards (contracts, grants, loans, direct payments, other financial assistance and IDVs) as normalized JSON records with recipient, UEI, amount, agencies, NAICS and PSC codes, dates and locations. It is built for government-contracting, grant-research and market-intelligence teams, and it costs USD 2.00 per 1,000 award records on the FREE tier (USD 1.60 per 1,000 on GOLD).
It wraps the public USAspending API, which needs no key, and handles category-specific fields, pagination and deduplication, so every category comes back in one schema.
What data does the USAspending scraper return?
Each dataset row is one prime award. Fields that do not apply to a category are null or an empty array.
| Field | What it contains |
|---|---|
awardId, generatedAwardId, internalId | PIID, FAIN or URI, USAspending's generated ID and its internal ID |
awardCategory, awardType | contracts, grants, loans, directPayments, otherFinancialAssistance or idvs, and the source award type, for example DEFINITIVE CONTRACT |
recipientName, recipientUei, recipientId | Prime recipient, UEI and USAspending recipient ID |
awardAmount | Total award amount (for loans, the loan value) |
loanValue, subsidyCost, totalOutlays | Loan face value, subsidy cost and outlays to date |
awardingAgency, awardingSubAgency, fundingAgency, fundingSubAgency | Agencies and sub-agencies |
description | Award description as reported |
startDate, endDate, lastModifiedDate | Period of performance (issued date for loans) and last update |
naicsCode, naicsDescription, pscCode, pscDescription | Industry and product-service codes for contracts and IDVs |
assistanceListings | Assistance Listing (CFDA) numbers and titles when supplied |
recipientLocation, placeOfPerformance | Country, state, city, county, congressional district and ZIP code. The recipient location also includes the street address |
sourceUrl, retrievedAt | Award page on usaspending.gov and retrieval time |
The OUTPUT record classifies the run as DATA, EMPTY, REJECTED, PARTIAL or FAILED, and lists category coverage, pages fetched, records delivered, events charged and warnings.
How do I search federal contracts and grants by recipient, agency or state?
Choose the award categories and an action-date window, then add any filters. All filter groups are combined.
{"startDate": "2025-10-01","endDate": "2026-09-30","awardCategories": ["contracts"],"awardingAgencies": ["Department of Defense"],"placeOfPerformanceStates": ["VA", "MD"],"keywords": ["cybersecurity"],"minAwardAmount": 1000000,"sortBy": "amount","maxResults": 200}
- Recipient:
recipientSearchTexttakes one name or identifier, for exampleBOEING. - Agencies:
awardingAgenciesandfundingAgenciestake exact top-tier names such asDepartment of Energy, not abbreviations or codes. - Geography:
placeOfPerformanceStatesandrecipientStatestake two-letter state or territory codes. - Known awards:
awardIdstakes PIIDs, FAINs or URIs, for exampleHT940216C0001. - Amount:
minAwardAmountandmaxAwardAmountare applied by USAspending and checked again on every record. - Order:
sortByisamount,lastModifiedDateorawardId;sortOrderisdescorasc.
The default input asks for 2025 contracts and returns up to 100. The Console prefill adds grants and returns 25.
Why does a 2025 search return awards that started years ago?
The date filter matches awards with any action, such as an obligation or modification, inside your window, and awardAmount is the award's total to date, not the amount spent in the window. That is why the prefill's top contract is a Defense Health Agency award to Humana that started in 2016 and totals USD 51.3 billion. To focus on new awards, narrow the window and sort by lastModifiedDate, or filter on startDate after export.
When should I use this Actor, and when not?
Use it when you need awarded federal spending as data: competitor and incumbent research, a recipient's federal revenue, an agency's largest contracts, grants flowing to a state, or award feeds for a CRM, spreadsheet or AI agent.
Use something else when:
- You need open solicitations and bids to respond to: BidNet Direct Scraper.
- You need company filings: SEC EDGAR Scraper.
- You need a grant recipient's nonprofit tax data: ProPublica Nonprofit Explorer Scraper.
- You need subawards, individual transactions, federal account budgets, awards before October 2007 or a full bulk extract. Use USAspending's own download tools for those.
Use it from an AI assistant
USAspending Awards Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/usaspending-awards-scraper, then ask, for example: "Find the 20 largest Department of Energy contracts with activity in fiscal year 2026 and list the recipient, amount and NAICS code."
Run it with the API
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/usaspending-awards-scraper').call({startDate: '2025-01-01',endDate: '2025-12-31',awardCategories: ['contracts'],recipientSearchText: 'BOEING',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const a of items) console.log(a.awardId, a.awardingAgency, a.awardAmount);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("muhammadafzal/usaspending-awards-scraper").call(run_input={"awardCategories": ["grants"], "recipientStates": ["TX"], "maxResults": 100})for a in client.dataset(run.default_dataset_id).iterate_items():print(a["awardId"], a["recipientName"], a["awardAmount"], a["sourceUrl"])
What does the output look like?
The top contract and the top grant for the prefill filters, normalized from the USAspending API on 2026-10-26 (location objects shortened):
[{"awardId": "HT940216C0001","generatedAwardId": "CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-","internalId": 307885715,"awardCategory": "contracts","awardType": "DEFINITIVE CONTRACT","recipientName": "HUMANA GOVERNMENT BUSINESS INC","recipientUei": "ZE6ZM6NKSV43","awardAmount": 51269205263.03,"loanValue": null,"totalOutlays": 0,"awardingAgency": "Department of Defense","awardingSubAgency": "Defense Health Agency","description": "IGF::OT::IGF","startDate": "2016-08-01","endDate": "2025-12-31","lastModifiedDate": "2026-02-10 17:52:09","naicsCode": "524114","naicsDescription": "DIRECT HEALTH AND MEDICAL INSURANCE CARRIERS","pscCode": "Q201","pscDescription": "MEDICAL- MANAGED HEALTHCARE","assistanceListings": [],"recipientLocation": { "stateCode": "KY", "cityName": "LOUISVILLE", "congressionalDistrict": "03", "postalCode": "40202" },"placeOfPerformance": { "stateCode": "KY", "cityName": "LOUISVILLE", "postalCode": "40201" },"sourceUrl": "https://www.usaspending.gov/award/CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-/","retrievedAt": "2026-10-26T12:00:00.000Z"},{"awardId": "2605CA5MAP","generatedAwardId": "ASST_NON_2605CA5MAP_075","awardCategory": "grants","awardType": "GRANT","recipientName": "HEALTH CARE SERVICES, CALIFORNIA DEPARTMENT OF","awardAmount": 110435264806,"totalOutlays": 91100560827.95,"awardingAgency": "Department of Health and Human Services","awardingSubAgency": "Centers for Medicare and Medicaid Services","description": "MEDICAID ENTITLEMENT FOR 7 - FY 2026 - T19 - FEDERAL FINANCIAL PARTICIPATION IN MEDICAID","startDate": "2025-10-01","endDate": "2026-09-30","naicsCode": null,"pscCode": null,"sourceUrl": "https://www.usaspending.gov/award/ASST_NON_2605CA5MAP_075/"}]
Pricing: how much does USAspending data cost?
USAspending Awards Scraper uses pay-per-event pricing. Platform usage is included in the event prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| USAspending award result (one dataset row) | USD 0.002001 | USD 0.00195 | USD 0.0019 | USD 0.0016 | USD 0.0016 |
| Actor start (per started GB of allocated memory) | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier at the default 256 MB memory (one start event):
- Prefill run, 25 contracts and grants: 25 × USD 0.002001 + USD 0.006251 = USD 0.0563
- 1,000 awards: 1,000 × USD 0.002001 + USD 0.006251 = USD 2.0073
Rejected input and empty searches charge only the start fee. The run's status message and OUTPUT.estimatedResultChargeUsd use the live per-record price for your tier. If a run hits your maximum cost per run, it stops after the last saved record.
What are the limits?
- 5,000 records per run (
maxResults, default 100), with 1–100 records per API page. - Several categories: each category is fetched up to
maxResults, then the combined list is sorted and cut tomaxResults. At most 50 pages are read per category. - Dates:
startDatecannot be earlier than 2007-10-01, which is the API's search limit. - Resilience: each API request times out after 30 seconds and is tried up to 3 times with backoff. If one category fails, the others are kept and the run is
PARTIAL. Each API page took about 5 seconds in a 2026-10-26 check. - Prime awards only: no subawards or transaction-level rows.
FAQ
Do I need a USAspending API key?
No. The USAspending API is public and unauthenticated, and the Actor calls it directly.
How current is the data?
Each run queries USAspending live. lastModifiedDate shows when USAspending last updated each award, and agencies can revise records later.
How are loans handled?
For loans, awardAmount holds the loan's face value (loanValue), subsidyCost holds the government's estimated cost, and startDate holds the issued date.
Can I get awards from before October 2007?
No. USAspending's award search starts at 2007-10-01, and the Actor rejects earlier start dates with a clear message. Older data is available through USAspending's download tools.
Does it find contract opportunities I can bid on?
No. USAspending records money already awarded. For open bids and RFPs, use BidNet Direct Scraper.
Why do some fields come back null?
They do not apply to that category, for example NAICS on a grant, or the agency did not report them.
Related Actors
- BidNet Direct Scraper: government bids and RFPs
- SEC EDGAR Scraper: 10-K, 8-K, Form 4 and 13F filings
- ProPublica Nonprofit Explorer Scraper: IRS Form 990 data
- USA Data.gov Dataset Scraper: federal open-data catalog
- UK Sanctions List Scraper: screen counterparties against UK designations
Legal and compliance
This Actor reads public U.S. government data through USAspending's public API and does not log in or bypass access controls. It is independent of the U.S. Department of the Treasury and USAspending.gov and not endorsed by them. Recipient addresses are public business or government records. Do not repurpose them for harassment or unrelated personal profiling, and verify material figures on the linked award pages.
Last verified: 2026-10-27