Tools / Government Spending Data Scraper, Contract Award Data API
Government Spending Data Scraper, Contract Award Data API
Every US federal contract, IDV, grant, loan and direct payment from the official USAspending.gov awards API — plus the sub-contracts and sub-grants filed under them (awardLevel=subaward), joined back to the prime award. 6 award categories, 54 typed output fields incl. recipient UEI/address, NAICS/PSC, CFDA program and place of performance. Filter by agency, keyword, NAICS code, state, date range and amount. Optional watch mode (watchLabel) delivers only awards or sub-awards new since your last run, and watchChanges (prime mode) also re-alerts when an already-delivered award's amount, outlays, end date or last-modified date moves. Optional includeOpportunityScore adds a deterministic 0-100 recompete/pursue-worthiness score (award size, tech-keyword match, award type, urgency) -- a documented formula, never an AI call.
Run it
curl -X POST https://fetchsmith.com/api/v1/run/us-federal-awards-scraper \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"agencies": ["Department of Energy"], "awardCategories": ["contracts", "grants"], "keywords": ["solar"], "maxResults": 12, "startDate": "2025-09-10"}'
Output fields
awardId awardUrl generatedInternalId awardCategory awardType recipientName recipientUei recipientId recipientAddress recipientCity recipientState recipientCountry awardingAgency awardingSubAgency fundingAgency fundingSubAgency description awardAmount totalOutlays loanValue subsidyCost startDate endDate baseObligationDate lastModifiedDate placeOfPerformanceCity placeOfPerformanceState placeOfPerformanceZip placeOfPerformanceCountry naicsCode naicsDescription pscCode pscDescription cfdaNumbers cfdaProgramTitles disasterEmergencyFundCodes kind _watchChangeType _watchPrevious awardLevel subAwardId subAwardType subAwardDate subAwardAmount subAwardDescription subRecipientName subRecipientUei primeAwardId primeRecipientName primeRecipientUei primeRecipientId primeAwardGeneratedInternalId primeAwardUrl opportunityScore
Sample output
{
"awardAmount": 51269205263.03,
"awardCategory": "contracts",
"awardId": "HT940216C0001",
"awardType": "DEFINITIVE CONTRACT",
"awardUrl": "https://www.usaspending.gov/award/CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-",
"awardingAgency": "Department of Defense",
"awardingSubAgency": "Defense Health Agency",
"baseObligationDate": "2016-07-29",
"cfdaNumbers": [],
"cfdaProgramTitles": [],
"description": "IGF::OT::IGF",
"disasterEmergencyFundCodes": [
"Q"
],
"endDate": "2025-12-31",
"fundingAgency": "Department of Defense",
"fundingSubAgency": "Defense Health Agency",
"generatedInternalId": "CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-",
"kind": "contract",
"lastModifiedDate": "2026-02-10 17:52:09",
"loanValue": null,
"naicsCode": "524114",
"naicsDescription": "DIRECT HEALTH AND MEDICAL INSURANCE CARRIERS",
"placeOfPerformanceCity": "LOUISVILLE",
"placeOfPerformanceCountry": "USA",
"placeOfPerformanceState": "KY",
"placeOfPerformanceZip": "40201",
"pscCode": "Q201",
"pscDescription": "MEDICAL- MANAGED HEALTHCARE",
"recipientAddress": "500 W MAIN STREET",
"recipientCity": "LOUISVILLE",
"recipientCountry": "UNITED STATES",
"recipientId": "1068e466-707d-6b6f-367f-0255fab79b8c-C",
"recipientName": "HUMANA GOVERNMENT BUSINESS INC",
"recipientState": "KY",
"recipientUei": "ZE6ZM6NKSV43",
"startDate": "2016-08-01",
"subsidyCost": null,
"totalOutlays": 0
}
Guides
- A federal-awards watch mode that alerts on changes — unless you filtered on the field that changed — "Filtering a watch on minAwardAmount/maxAwardAmount or expiringWithinDays silently hides the exact change you're watching for. Measured live today: award 70T05026F5900N033 ($958,748.70) matches maxAwardAmount=1,000,000 and vanishes under maxAwardAmount=900,000 — so a watch bounded at $900k would never see that same award's amount grow into the gap."
- "A government ID that isn't unique: USAspending reuses sub-award numbers across different filings" — FSRS re-files a contract modification under the same Sub-Award ID as the original, and rarely reuses one under a different sub-awardee entirely. Keying on the ID alone silently dropped real rows. Live-measured on 500 sub-awards, reproduced, and fixed.
- "A federal-contracts scraper's \"AI opportunity score\" is a spreadsheet formula, confirmed live — ours just says so" — "A rival USAspending Actor markets AI opportunity analysis; re-confirmed live today it's still a plain weighted formula with no model call behind it. Our own opportunityScore field runs the same idea in the open: the full 0-100 formula, every weight, no ANTHROPIC_API_KEY required."
- The US publishes every federal award as JSON — but you can't ask for a contract and a grant in the same request — USAspending.gov has a free, key-free JSON API covering every US federal contract, grant, loan and IDV since 2007. The catch is that each award type has its own field mapping, and the API enforces it.
Only publicly accessible pages are read. Respect the source site's terms when using the data.