US federal contract awards, pulled directly from USAspending.gov's public search API, rolling 7-day window, normalized into one schema.
USAspending.gov publishes every federal prime contract award since FY2008 through a public, unauthenticated JSON search API — no key, no login, no rate-limit registration. This dataset fetches a rolling recent window of contract awards daily, normalizes it, computes a few useful aggregates (by agency, by NAICS, top recipients), and commits the result, so you don't have to write your own pagination/retry logic against the raw API.
awardAmount is obligated, not potential, value — what's been committed on this specific award transaction, not a contract ceiling or ask price. A row can represent one action on a much larger multi-year vehicle.awardAmount descending, capped for safety — if a window ever exceeds the fetcher's safety cap, the smallest awards are the ones dropped (check summary.json.hitPaginationCap, currently false).| Field | Type | Notes |
|---|---|---|
awardId | string | null | USAspending's Award ID (piid/fain) |
recipientName | string | null | Vendor/recipient legal name |
recipientUei | string | null | Unique Entity Identifier, when disclosed |
awardingAgency | string | null | Top-tier awarding agency |
awardingSubAgency | string | null | Sub-agency/component |
awardAmount | number | null | Obligated amount for this transaction — not a ceiling |
totalOutlays | number | null | Actual dollars disbursed to date, where reported |
awardType | string | null | e.g. "DEFINITIVE CONTRACT", "PURCHASE ORDER" |
naicsCode / naicsDescription | string | null | Industry classification |
pscCode / pscDescription | string | null | Product/Service Code |
placeOfPerformanceState / Country | string | null | Where the work is performed |
startDate / endDate | string | null | Award's period of performance |
description | string | null | USAspending's award description, as published |
usaspendingUrl | string | null | Direct link to the award's public page |
scrapedAt | string | ISO timestamp of the fetch |
{
"awardId": "47QSSC26P2BEP",
"recipientName": "PREMIER & COMPANIES, INC.",
"recipientUei": "CW8DULW78AZ4",
"awardingAgency": "General Services Administration",
"awardingSubAgency": "Federal Acquisition Service",
"awardAmount": 437.89,
"totalOutlays": null,
"awardType": "PURCHASE ORDER",
"naicsCode": "332216",
"naicsDescription": "SAW BLADE AND HANDTOOL MANUFACTURING",
"pscCode": "5180",
"pscDescription": "SETS, KITS, AND OUTFITS OF HAND TOOLS",
"placeOfPerformanceState": "NY",
"placeOfPerformanceCountry": "UNITED STATES",
"startDate": "2026-07-31",
"endDate": "2026-08-30",
"description": "CALIPER,DIAL/RETT CO. PN 120-12 (PARTIAL DESCRIPTION)",
"usaspendingUrl": "https://www.usaspending.gov/award/CONT_AWD_47QSSC26P2BEP_4732_-NONE-_-NONE-",
"scrapedAt": "2026-08-06T09:42:10.583Z"
}
curl -s https://raw.githubusercontent.com/ConorsCode/open-fedspend-data/main/data/awards.json | jq '.[0]'
import pandas as pd
df = pd.read_json("https://raw.githubusercontent.com/ConorsCode/open-fedspend-data/main/data/awards.json")
df.groupby("awardingAgency")["awardAmount"].sum().sort_values(ascending=False)
const awards = await fetch("https://raw.githubusercontent.com/ConorsCode/open-fedspend-data/main/data/awards.json").then(r => r.json());
console.log(awards.length, "awards in this window");