+USAspending API
Search US federal contracts, grants and loans, and pull recipients, agency budgets and spending totals as JSON.
The API.SH USAspending API gives you US federal spending data from USAspending.gov through simple GET requests. Search contracts, IDVs, grants, loans and direct payments by keyword, recipient, agency, date, amount, NAICS, PSC, set-aside and location, open one award with its transactions and subawards, look up recipients by name, UEI or DUNS, read an agency's budget, obligations and outlays, and group spending totals by agency, recipient, state, district, NAICS and more.
- 7 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/usaspending/v1/ awards
{ "success": true } What you can build with the USAspending API
Government contract research
Search contracts by NAICS, PSC, agency, set-aside and amount to find who wins work in your market and when.
Competitor and partner tracking
Look up a company by name or UEI, then read its federal award totals and the awards it has won.
Agency budget analysis
Compare agencies' budget authority, obligations and outlays, and read one agency's spending by fiscal year and reporting period.
Spending by place and category
Total federal spending by state, county, congressional district, NAICS or assistance listing for reports, maps and dashboards.
USAspending data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
USAspending API endpoints and prices
Every USAspending endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| US federal award search /usaspending/ | $1 · $2 PAYG 1 credit |
| US federal award recipient search /usaspending/ | $1 · $2 PAYG 1 credit |
| USAspending agency profile and budget /usaspending/ | $1 · $2 PAYG 1 credit |
| US federal award recipient profile /usaspending/ | $1 · $2 PAYG 1 credit |
| US federal agencies (USAspending) /usaspending/ | $1 · $2 PAYG 1 credit |
| US federal award details /usaspending/ | $1 · $2 PAYG 1 credit |
| US federal spending totals by category /usaspending/ | $1 · $2 PAYG 1 credit |
Call the USAspending API
US federal award search: GET https://api.api.sh/usaspending/
curl "https://api.api.sh/usaspending/v1/awards" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/usaspending/v1/awards",
params={},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/usaspending/v1/awards");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/usaspending/v1/awards")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "USAspending" and "US federal award search".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 483 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for USAspending data
- Public data only: no USAspending login, cookies or account needed
- One key and one response shape for USAspending and 482 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official USAspending API
Yes. The official USAspending API at api.usaspending.gov is free and needs no key; its main award search takes a POST request with a nested JSON filter body. API.SH serves the same public data through GET endpoints with flat parameters and the same key, JSON shape and SDKs you use for every other API.SH source.
Compared with writing your own USAspending client or running Apify actors, API.SH gives you documented flat parameters, cursor-style paging and one key that also covers other government and company data sources.
USAspending API questions
What USAspending data can I get?+
Award search (/usaspending/v1/awards), one award with transactions and subawards (/usaspending/v1/award), recipient search (/usaspending/v1/recipients), recipient profiles (/usaspending/v1/recipient), the agency list (/usaspending/v1/agencies), agency budget profiles (/usaspending/v1/agency) and spending totals by category (/usaspending/v1/totals).
How much does the USAspending API cost?+
Every USAspending endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /usaspending/v1/agencies at 1 credit each.
Is there an official USAspending API?+
Yes, and it is free with no API key. Use it directly if you are happy building POST filter bodies. API.SH is for teams that want simple GET parameters, one key and one JSON format across this and other data sources, or that work from Sheets, Zapier, Make, n8n or an AI agent.
Do I need a USAspending.gov account or API key?+
No. USAspending data is public. You only need your API.SH key.
Can I use it from Python?+
Yes. Call any endpoint with a plain GET request from requests or httpx, or use the API.SH Python SDK. Filters such as type, agency, naics, from and to are ordinary query parameters.
How do I find contracts for a NAICS code or agency?+
Call /usaspending/v1/awards with type=contracts and naics, agency, from and to. Each award has an internal_id you can pass to /usaspending/v1/award for the full record.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /usaspending/v1/awards with a keyword in q and type=contracts. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.