USAspending Awards API — Federal Contract Awards & Grants avatar

USAspending Awards API — Federal Contract Awards & Grants

Pricing

$1.00 / 1,000 award returneds

Go to Apify Store
USAspending Awards API — Federal Contract Awards & Grants

USAspending Awards API — Federal Contract Awards & Grants

Export federal contract awards, IDVs and grants from USAspending.gov to JSON/CSV — no API key or account. Filter by keyword, NAICS, awarding agency, recipient, place-of-performance state and date range. $1 per 1,000 awards, platform usage included.

Pricing

$1.00 / 1,000 award returneds

Rating

0.0

(0)

Developer

AgentReady Tools

AgentReady Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Categories

Features

Limited permissions

Share

Export US federal contract awards, IDVs and grants from USAspending.gov to JSON, CSV or Excel — no API key or account. Search by keyword, NAICS, awarding agency, recipient, place-of-performance state and date range, and get flat records with recipient name and UEI, agency and sub-agency, award amount, NAICS/PSC, dates, place of performance and a link to the public award page. Useful for competitor research, incumbent analysis and GovCon lead lists. $1 per 1,000 awards, platform usage included.

Data is public US federal spending data, not procurement opportunities or private contact information. Empty input searches contracts for the last 30 days inclusive, ending today UTC, and stores up to 10 awards. Results are sorted by award amount descending. Optional IDV and grant searches use their own supported field sets.

For AI agents

Returns flat federal contract, IDV, or grant award records with recipients, USD amounts, agencies, dates, and public source links.

Connect your MCP client to https://mcp.apify.com?tools=samgov-tools/usaspending-awards. Example prompt: “Find up to 10 software contract awards with activity in Virginia during the last 30 days and report recipients, amounts, and source links.”

Call with {} for up to 10 recent contracts, or start with 1–3 filters such as {"keywords":"software","state":"VA","maxItems":10}. Read recipientName and awardAmount for summaries, awardId / generatedInternalId for identity, and usaspendingUrl for source verification. All items have the same 27 fields; unavailable values are null. Results are sorted by amount descending; the default date window matches activity. Set newAwardsOnly: true for newly started awards.

REST API (replace $APIFY_TOKEN with your token through an environment variable):

curl --request POST \
'https://api.apify.com/v2/acts/samgov-tools~usaspending-awards/run-sync-get-dataset-items' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"keywords":"software","maxItems":10}'

JavaScript with apify-client installed:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('samgov-tools/usaspending-awards').call({
keywords: 'software',
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Example JSON item (illustrative values, not a verified award):

{
"awardId": "SPE30018FLGFZ",
"generatedInternalId": "CONT_AWD_SPE30018FLGFZ_9700_SPE30017D0001_9700",
"recipientName": "PUBLIC AWARD RECIPIENT",
"recipientUei": null,
"awardAmount": 125000.5,
"awardingAgency": null,
"awardingAgencyCode": null,
"awardingSubAgency": null,
"awardingSubAgencyCode": null,
"fundingAgency": null,
"fundingSubAgency": null,
"contractAwardType": null,
"awardType": null,
"naicsCode": "561210",
"naicsDescription": null,
"pscCode": null,
"pscDescription": null,
"placeOfPerformanceCity": null,
"placeOfPerformanceState": "VA",
"placeOfPerformanceCountry": null,
"placeOfPerformanceZip": null,
"startDate": null,
"endDate": null,
"lastModifiedDate": null,
"baseObligationDate": null,
"description": null,
"usaspendingUrl": "https://www.usaspending.gov/award/CONT_AWD_SPE30018FLGFZ_9700_SPE30017D0001_9700"
}

Paying agents without an Apify account (x402 / MPP)

An agent without an Apify account can buy a prepaid Apify API token from Apify AGI (agi.apify.com) with x402 (USDC on Base or Solana), MPP (Tempo or Solana) or Skyfire, then use it as the Apify API token in this README's REST example (Actor samgov-tools~usaspending-awards) or as the bearer token for the Apify MCP server. This Actor uses limited permissions, which prepaid tokens require. Apify's current terms: minimum $1, the balance is a hard spending cap, the token expires 14 days after purchase, unused balance is non-refundable, and the feature is experimental. Check agi.apify.com for current terms before paying.

The token pays this Actor's normal pay-per-event prices: award: $0.001 per stored award. See Let your AI agent pay for Actor runs, x402 and MPP.

Pricing

$1 per 1,000 awards ($0.001 each), pay per event (PPE), with platform usage included. The award event is charged only for successfully stored awards. Invalid records are skipped without charge. The Actor stops when the event charge limit is reached. Reruns can store and charge for the same awards again; there is no cross-run deduplication.

Input

FieldMeaningDefault
keywordsFilter awards by search text; use a string with commas between multiple keywords. Default: omitted, no keyword filter. Use to target a product or service. Example: "software,cloud".Omitted
naicsFilter by industry using a string of comma-separated NAICS prefixes, each 2–6 digits. Default: omitted, no NAICS filter. Use for industry-specific searches. Example: "541512,541511".Omitted
agencyFilter by the exact official awarding toptier agency name as a string. Default: omitted, all agencies. Use to research a specific federal buyer. Example: "Department of Defense".Omitted
recipientNameSearch recipient names and identifiers using a text string. Default: omitted, all recipients. Use to research an award recipient or incumbent. Example: "LOCKHEED MARTIN".Omitted
awardDateFromSet the inclusive window start as YYYY-MM-DD or MM/dd/yyyy, no earlier than 2007-10-01. Default: 29 days before awardDateTo. Use for historical searches. Matches activity unless newAwardsOnly is true. Example: "2026-01-01".End minus 29 days
awardDateToSet the inclusive window end as YYYY-MM-DD or MM/dd/yyyy, on or after awardDateFrom. Default: today UTC. Use to bound a historical search. Matches activity unless newAwardsOnly is true. Example: "2026-01-31".Today UTC
newAwardsOnlySet a JSON boolean to restrict the date window to award base/start dates using the API new_awards_only date_type. Default: false, which matches award activity and can include older awards with later actions. Use true for new-win lists. Example: true.false
stateFilter place of performance using a two-letter US state, territory, or military code; lowercase is accepted. Default: omitted, no location filter. Use to target where work takes place. Example: "VA".Omitted
awardTypeChoose one string: contracts, idvs (indefinite delivery vehicles), or grants. Default: "contracts". Use to switch the award category; grants omit contract-only NAICS/PSC output values. Example: "grants".contracts
maxItemsLimit the number of awards stored using a JSON integer from 1 to 10000. Default: 10. Use a smaller value for previews or a larger value for exports; charge limits may stop earlier. Example: 25.10
pageSizeSet the USAspending API page size using a JSON integer from 1 to 100. Default: 100. Use a smaller value when smaller API batches are useful; maxItems still caps stored awards. Example: 50.100

Dates accept YYYY-MM-DD or MM/dd/yyyy; the API receives ISO dates. Start must be at least 2007-10-01 and no later than end. If only start is supplied, end is today UTC. If only end is supplied, start is 29 days earlier. By default the date range matches award activity, not necessarily the award start date; set newAwardsOnly to true (recommended for new-win lists) to limit results to awards whose base/start date falls in the window. State codes include DC, PR, VI, GU, AS, MP and AA, AE, AP; lowercase is accepted. Agency names must match the official toptier name.

{"keywords":"software","naics":"541512,541511","agency":"Department of Defense","state":"VA","newAwardsOnly":true,"maxItems":25}

Output fields

Every item includes every field below, with null for missing data. NAICS, PSC, and primary place of performance are flattened. Amount is a finite number in USD or null. Records missing both identifiers are rejected.

FieldMeaning
awardIdPublic award identifier (PIID or FAIN).
generatedInternalIdUSAspending generated unique award identifier.
recipientNameRecipient legal name.
recipientUeiRecipient Unique Entity Identifier.
awardAmountAward obligation amount in US dollars, as returned by USAspending; not necessarily the contract ceiling.
awardingAgencyAwarding toptier agency name.
awardingAgencyCodeAwarding toptier agency code.
awardingSubAgencyAwarding subagency name.
awardingSubAgencyCodeAwarding subagency code.
fundingAgencyFunding agency name.
fundingSubAgencyFunding subagency name.
contractAwardTypeProcurement award type; always null for grants.
awardTypeAssistance award type label; generally null for contracts and IDVs.
naicsCodeNAICS industry code, flattened from NAICS.code.
naicsDescriptionNAICS industry description.
pscCodeProduct or service code, flattened from PSC.code.
pscDescriptionProduct or service description.
placeOfPerformanceCityPrimary place of performance city name.
placeOfPerformanceStatePrimary place of performance state code.
placeOfPerformanceCountryPrimary place of performance country name, or country code if name is missing.
placeOfPerformanceZipPrimary place of performance five-digit ZIP code.
startDateAward start date returned by the API.
endDateAward end date; may be absent, especially for IDVs. Last Date to Order is not substituted.
lastModifiedDateLast modification date returned by the API.
baseObligationDateBase obligation date returned by the API.
descriptionAward description text.
usaspendingUrlPublic award page constructed from generatedInternalId.

FAQ

Are these open solicitations? No. These are spending awards already reported by federal agencies. Use them to study past spending, recipients, and agency demand.

Can I search grants or IDVs? Set awardType to grants or idvs. Grants use Award Type and omit contract-only NAICS/PSC fields. IDVs may have no end date; Last Date to Order is requested but is not treated as endDate.

Why are there no results? Try a broader date range and fewer filters. Agency names must be exact. Data depends on agency reporting and USAspending updates.

Do the date fields match the award start date? Not by default. Without newAwardsOnly, the official API matches the window to award activity (an older award can appear if it had a later action). Turn on newAwardsOnly — recommended for new-win lists — to return only awards whose base/start date falls in the window.

How does pagination work? The Actor uses one-based pages and follows page_metadata.hasNext, without assuming a total count. It pauses 250 ms between pages. The client retries network errors, HTTP 429 and 5xx up to four attempts, honors Retry-After, and uses exponential backoff with jitter. A first-page HTTP 400 can retry with limit 10; that limit remains fixed for later pages. Informational API messages do not fail the run.

Is this a government product? No. See the disclaimer below.

Disclaimer

This Actor is not affiliated with, endorsed by, sponsored by, or operated by the U.S. government, USAspending.gov, the Bureau of the Fiscal Service, or the U.S. Department of the Treasury. It is an independent tool that requests data from the public USAspending API.

Local development

Requires Node.js 22 or newer. No secrets are required.

npm install
npm test
npm run build
npm start

Optional local input can be saved in storage/key_value_stores/default/INPUT.json. Tests use mocked fetch only and do not call the live API. Docker uses a TypeScript build stage and a production-only Node 22 runtime stage. Errors expose short safe status hints, never request or response bodies.

Generate the icon with python3 scripts/make-icon.py (requires Pillow). The PNG is supplied for later Apify Console upload; actor.json omits an unsupported icon property.

Official references: USAspending API docs and spending_by_award endpoint contract.