USASpending.gov
USAspending.gov contracts, grants, loans, subawards, recipients, agencies, and federal accounts.
| Endpoint | https://usaspending.1102tools.com/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.28 |
| Now | 55 tools · grade D (62) · pin ts_ac1ff33ecfc74d3d97fe3146fe451a5f · protocol 2025-06-18 |
| First / last listed | 2026-10-28 06:24 UTC / 2026-10-28 06:24 UTC |
| Grade over time | 2026-10-28: D (62), 55 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: search_awards get_award_count spending_over_time spending_by_category get_award_detail get_transactions get_award_funding get_idv_children lookup_piid autocomplete_psc autocomplete_naics list_toptier_agencies get_agency_overview get_agency_awards get_naics_details get_psc_filter_tree get_state_profile search_subawards spending_by_subaward_grouped search_recipients get_recipient_profile get_recipient_children autocomplete_recipient list_states get_agency_budgetary_resources get_agency_sub_agencies get_agency_federal_accounts get_agency_object_classes get_agency_program_activities get_agency_obligations_by_award_category get_award_funding_rollup get_award_subaward_count get_award_federal_account_count get_award_transaction_count awards_last_updated spending_by_transaction spending_by_geography new_awards_over_time get_idv_amounts get_idv_funding get_idv_funding_rollup get_idv_activity autocomplete_awarding_agency autocomplete_funding_agency autocomplete_cfda autocomplete_glossary get_award_types_reference get_def_codes_reference get_glossary get_submission_periods list_federal_accounts get_federal_account_detail get_federal_account_object_classes get_federal_account_program_activities get_federal_account_fy_snapshot
search_awards | Search federal awards (contracts, IDVs, grants, loans, etc.) on USASpending.gov.
This is the primary workhorse for finding awards. Returns matching awards
with standard fields (Award ID, Recipient, Description, Amount, Agencies,
NAICS, PSC, dates). Use get_award_detail() with the generated_internal_id
from results to get full award details.
Important rules:
- award_type g params: award_type, keywords, awarding_agency, awarding_subagency, funding_agency, recipient_name, naics_codes, psc_codes, set_aside_type_codes, extent_competed_type_codes, contract_pricing_type_codes, time_period_start, time_period_end, date_type, award_amount_min, award_amount_max, place_of_performance_state, award_ids, def_codes, program_numbers, sort, order, limit, page |
get_award_count | Count awards matching filters, broken down by award category.
Returns counts grouped by: contracts, idvs, grants, loans, direct_payments, other.
Use this for dimensional analysis: how many FFP vs T&M awards, how many
competed vs sole-source, how many small business set-asides, etc.
Unlike search_awards, this returns total counts across ALL award categories
in a single call (n params: award_type, keywords, awarding_agency, awarding_subagency, funding_agency, recipient_name, naics_codes, psc_codes, set_aside_type_codes, extent_competed_type_codes, contract_pricing_type_codes, time_period_start, time_period_end, date_type, award_amount_min, award_amount_max, place_of_performance_state, def_codes, program_numbers |
spending_over_time | Aggregate spending amounts over time, grouped by fiscal year, quarter, or month.
Use this to visualize spending trends, identify fiscal-year-end spikes,
or compare spending patterns across years.
Note: The API returns fiscal_year as a STRING. Cast to int for numeric
comparisons. quarter and month are FISCAL periods (month 1 = October,
quarter 1 = October-December). Buckets ar params: group, keywords, awarding_agency, awarding_subagency, funding_agency, extent_competed_type_codes, contract_pricing_type_codes, recipient_name, naics_codes, psc_codes, award_type, time_period_start, time_period_end, date_type, def_codes, program_numbers |
spending_by_category | Aggregate spending by a dimension (top vendors, top agencies, top NAICS, etc.).
The 'category' parameter controls the grouping dimension. Common uses:
- category='recipient': top vendors for a filter set (vendor landscape analysis)
- category='awarding_subagency': which contracting offices within an agency
- category='naics': which work categories got the most spending
- categ params: category*, keywords, awarding_agency, awarding_subagency, funding_agency, recipient_name, extent_competed_type_codes, contract_pricing_type_codes, naics_codes, psc_codes, award_type, set_aside_type_codes, time_period_start, time_period_end, date_type, def_codes, program_numbers, limit, page |
get_award_detail | Fetch full details for a single award by its generated_internal_id.
Use the generated_internal_id value returned by search_awards to fetch
the complete award record. Returns: PIID, full description, total
obligation, recipient details, parent award info, latest transaction
contract data (competition, set-aside, pricing type), period of
performance, place of performance, NAICS params: generated_award_id* |
get_transactions | Fetch the full transaction (modification) history for an award.
Every modification, option exercise, and de-obligation is a transaction.
Modification number '0' is the original base award. Use to understand
the full lifecycle of a contract including its descriptive text at each
point in time.
Returns per transaction: id, type, action_date, action_type,
modification_number params: generated_award_id*, limit, page, sort, order |
get_award_funding | Fetch File C funding data for an award: federal account, object class, program activity.
Shows which Treasury accounts, object classes, and program activities
funded an award. File C can be partial or lagged; these rows do not
establish the full award obligation or amount paid to the contractor.
Sort fields: reporting_fiscal_date, account_title,
transaction_obligated_amount, params: generated_award_id*, limit, page, sort, order |
get_idv_children | Fetch child awards (task/delivery orders) under an IDV.
For a Multiple Award IDV, child_awards returns the task orders or delivery
orders placed against it. For a parent IDV, child_idvs returns the
downstream IDV structure. grandchild_awards walks the hierarchy.
Field name differences from search_awards: children use 'piid' (not
'Award ID'), 'obligated_amount' (not 'Award Amo params: generated_idv_id*, child_type, limit, page, sort, order |
lookup_piid | Look up awards by their exact PIID, across contracts AND IDVs.
Looks for awards whose own PIID is exactly this value (the award_ids
filter), in both contracts and IDVs, and says how many share it.
match='exact' rows are the awards themselves: an IDV PIID returns the
IDV (award_type='idv'; its Award Amount is what was obligated on the IDV
record itself, usually 0, so use get_id params: piid*, limit |
autocomplete_psc | Autocomplete lookup for Product/Service Codes (PSC).
Use exact four-character codes ('R499', 'D302') or description keywords
('professional', 'application'). Returns matching PSC entries with
code and description. Two-character families such as 'D3' can return
no autocomplete matches even when their descendant codes exist.
For partial PSC families or prefix expansion, use get_ params: search_text*, limit |
autocomplete_naics | Autocomplete lookup for NAICS codes.
Accepts partial codes ('541') or keywords ('software'). Returns matching
NAICS entries with code and description.
Minimum 2 characters required. Short queries silently match substrings
inside parenthetical notes (e.g. 'x' matches 'except') and produce
nonsense results, so we require 2+ chars.
exclude_retired defaults to True. The upst params: search_text*, limit, exclude_retired |
list_toptier_agencies | List all top-tier federal agencies tracked by USASpending.
Returns agency codes, names, abbreviations, and current-year budgetary
resources. Use the returned 'toptier_code' values with get_agency_overview().
params: none |
get_agency_overview | Get descriptive information for an agency: name, mission, website,
data notes and DEF codes. It has no dollar figures; for spending use
get_agency_obligations_by_award_category() (split by award type) or
get_agency_budgetary_resources() (obligations and outlays by year).
toptier_code is the 3- or 4-digit agency code (e.g. '097' for DoD,
'075' for HHS, '080' for NASA). Shorter params: toptier_code*, fiscal_year |
get_agency_awards | Get one obligation total and transaction count for an agency's awards
in a fiscal year.
The total covers ALL award types together (contracts, IDVs, grants,
loans, direct payments, other), so for most civilian agencies it is far
larger than contract spending (VA FY2026: $313B here vs $84B contracts).
For the split by award type use get_agency_obligations_by_award_category().
params: toptier_code*, fiscal_year |
get_naics_details | Get details for a NAICS code (2-6 digits).
Returns the NAICS description, parent categories, and child subcategories
if applicable.
params: code* |
get_psc_filter_tree | Get the PSC hierarchy tree.
Pass an empty path for the top-level. Drill down with paths like
'Service/R/' to get the service professional services tree, or
'Product/5' for product codes starting with 5.
params: path |
get_state_profile | Get the federal award totals for recipients located in a US state.
Examples: '06' = California, '48' = Texas, '24' = Maryland, '51' = Virginia.
Returns one summary: state name and code, total_prime_amount and
total_prime_awards (all award types together), loan face value,
award_amount_per_capita, total_outlays, and population / median household
income (older Census vintages: s params: state_fips*, year |
search_subawards | Search FFATA subaward reports on USASpending.
Returns the FFATA subaward records (subcontracts under prime contracts and
subawards under prime grants). Complementary to the SAM.gov FFATA endpoints
but expressed at the USASpending data model.
award_id: optional generated_internal_id (CONT_AWD_..., ASST_NON_..., etc.)
to scope subawards to a single prime award. If omitted, retu params: award_id, sort, order, limit, page |
spending_by_subaward_grouped | Find matching prime awards and their cumulative FFATA report totals.
Filters select prime records, but subaward_count and subaward_obligation
cover all reported subawards under each prime, not just subaward actions
within time_period_start/end. This ranking is not a fiscal-period
subaward ranking. For dated reports, pass a returned
award_generated_internal_id to search_subawar params: time_period_start, time_period_end, award_type_codes, awarding_agency, funding_agency, naics_codes, psc_codes, set_aside_type_codes, def_codes, program_numbers, sort, order, limit, page |
search_recipients | Search USASpending recipients (vendors and grantees) by keyword.
Returns paginated recipients with their UEI, DUNS, name, and a recipient
'id' hash for get_recipient_profile() and new_awards_over_time().
For get_recipient_children(), use the UEI (or legacy DUNS) from the
parent (-P) row, not a recipient hash.
keyword can match recipient name, UEI, or DUNS. If omitted, returns params: keyword, award_type, sort, order, limit, page |
get_recipient_profile | Get full profile for a recipient by their USASpending hash.
Returns recipient details: name, UEI, DUNS, business categories, location,
parent (if any), and lifetime award totals. The hash is the 'id' field
returned by search_recipients(). (autocomplete_recipient does NOT return
hashes; it is a name lookup only.)
year: optional 'all' or a fiscal year like 2026 (int or str both params: recipient_hash*, year |
get_recipient_children | Get the child recipients (subsidiaries) of a parent recipient.
Pass the parent recipient's 12-character UEI (or legacy 9-digit DUNS).
Do NOT pass a recipient hash: the /recipient/children/ endpoint is the
one recipient endpoint keyed by UEI/DUNS, and it rejects hashes with
HTTP 400. Get the UEI from search_recipients() results (the 'uei' field
of the -P row) or from get_recipi params: uei_or_duns*, year |
autocomplete_recipient | Find recipient names by partial name or UEI/DUNS.
This is a recipient-name lookup; it does not supply the recipient hash
for get_recipient_profile() or new_awards_over_time(), and its UEI/DUNS
fields may be null. Pass a returned name to search_recipients(): use
its 'id' hash for profiles/trends, and the UEI (or legacy DUNS) from
the parent (-P) row for get_recipient_children() params: search_text*, limit |
list_states | List all states with their FIPS codes and award totals.
Returns the full list of US states/territories with FIPS codes you can
pass to get_state_profile().
The /recipient/state/ endpoint returns a JSON array (not an object). We
wrap it in {"results": [...]} to keep the tool return type consistent
with every other endpoint in this MCP.
params: none |
get_agency_budgetary_resources | Get an agency's budgetary resources by fiscal year.
Returns agency budgetary resources, obligations and outlays for each
fiscal year on file, plus government-wide budgetary resources and the
agency's obligations by reported fiscal period. This endpoint does not
provide a discretionary-versus-mandatory breakdown.
params: toptier_code* |
get_agency_sub_agencies | List the subordinate (subtier) organizations of a toptier agency.
Returns each sub-agency with its obligations, transaction count, and
new-award count for the given fiscal year. Useful for finding the
canonical subtier name to pass into search_awards() awarding_subagency.
sort accepts name, total_obligations, transaction_count, or
new_award_count (this endpoint has no outlay params: toptier_code*, fiscal_year, page, limit, order, sort |
get_agency_federal_accounts | List the Treasury Account Symbols (federal accounts) used by an agency.
Returns each federal account with its obligated amount and gross outlay
for the given fiscal year. Useful for understanding how an agency's
money flows through Treasury.
fiscal_year defaults to the last completed fiscal year, not the current
one (USAspending's own default, which right after October 1 hold params: toptier_code*, fiscal_year, page, limit, order, sort |
get_agency_object_classes | List the object class breakdown (what an agency spends money on).
Object classes are OMB categories: Personnel Compensation, Travel,
Contractual Services, Equipment, Grants, etc. Useful for understanding
what types of expenditures an agency makes.
fiscal_year defaults to the last completed fiscal year, not the current
one (USAspending's own default, which right after October params: toptier_code*, fiscal_year, page, limit, order, sort |
get_agency_program_activities | List the program activities (specific programs) within an agency.
Program activities are the specific named programs that obligate funds
(e.g., 'Cybersecurity and Infrastructure Security Agency'). Useful for
pinpointing which program funds a specific activity.
fiscal_year defaults to the last completed fiscal year, not the current
one (USAspending's own default, which right a params: toptier_code*, fiscal_year, page, limit, order, sort |
get_agency_obligations_by_award_category | Get an agency's obligation breakdown by award category.
Returns total obligated dollars split by category: contracts, IDVs, grants,
loans, direct payments, other. Quick way to see what mix of award types
an agency uses (heavy contractor agency vs grant-issuing agency vs mixed).
For DoD ('097') a fiscal year whose last 90 days are not yet published
(DoD's 90-day delay) carries params: toptier_code*, fiscal_year |
get_award_funding_rollup | Get a rollup of an award's funding totals.
Returns total transaction obligated amount, awarding agency count,
funding agency count, and federal account count for a single award.
Useful for a one-line summary of an award's funding picture.
params: award_id* |
get_award_subaward_count | Count of subawards (FFATA subcontracts/subawards) reported on an award. params: award_id* |
get_award_federal_account_count | Count of distinct federal accounts (TAS) funding an award. params: award_id* |
get_award_transaction_count | Count of transactions (modifications) on an award. params: award_id* |
awards_last_updated | Get the timestamp of the last USASpending award data refresh.
Use this to determine data freshness when comparing to other sources
(SAM.gov Contract Awards API for example).
params: none |
spending_by_transaction | Search at the transaction (modification) level.
Unlike search_awards which returns one row per award, this returns one
row per transaction (initial action plus every modification). Useful for
tracking obligation events over time, ceiling adjustments, deobligations,
and admin mods.
recipient_uei is matched through the API's recipient text search (which
covers name, UEI, an params: award_type, keywords, awarding_agency, funding_agency, recipient_uei, naics_codes, program_numbers, psc_codes, set_aside_type_codes, time_period_start, time_period_end, award_amount_min, award_amount_max, sort, order, limit, page |
spending_by_geography | Geographic breakdown of spending.
scope: 'recipient_location' (where the recipient is) or 'place_of_performance'
(where the work happens).
geo_layer: 'state', 'county', or 'district'.
At least one filter is required. The API returns HTTP 500 on an empty
filter set, so the requirement is enforced here with a clear error.
program_numbers filters assistance awards by assist params: scope, geo_layer, award_type, time_period_start, time_period_end, awarding_agency, funding_agency, naics_codes, psc_codes, def_codes, program_numbers |
new_awards_over_time | Pipeline trend of new awards to a recipient over time.
REQUIRES recipient_id (the recipient hash with -P suffix for parent-level
rollup, or -R for a single recipient). Returns counts of new awards
grouped by month, quarter, or fiscal year.
The endpoint rejects calls without recipient_id with HTTP 422, and it
also requires a time_period. When you omit the dates, a default rang params: recipient_id*, group, time_period_start, time_period_end |
get_idv_amounts | Top-line amounts for an Indefinite Delivery Vehicle (IDV).
Returns child IDV count, child award count, child award total obligation,
and base/option values rolled up across all task/delivery orders under
the IDV. Pass a CONT_IDV_* generated_internal_id.
params: award_id* |
get_idv_funding | List File C funding records associated with an IDV.
Rows can identify the IDV itself as well as associated awards; they are
not a complete list of child orders. File C coverage can be partial or
lagged and does not establish the full child-order obligation or amount
paid. Use get_idv_amounts() for reported child-order obligation totals
and get_idv_activity() or get_idv_childre params: award_id*, sort, order, limit, page |
get_idv_funding_rollup | Funding rollup totals for an IDV (single dict, not paginated). params: award_id* |
get_idv_activity | List child task/delivery orders awarded under an IDV.
Results are ALWAYS sorted by obligated amount, descending; the endpoint
accepts no sort or order parameters. (Earlier releases exposed sort/order
here, but the API silently ignored them: the advertised default of
period_of_performance_start_date was never the actual ordering. Round 10
audit finding.) For date-ordered childr params: award_id*, hide_edge_cases, limit, page |
autocomplete_awarding_agency | Find awarding agency names by partial match.
USASpending search filters require the EXACT awarding agency name
(slugs return zero). Use this to resolve a partial name to the canonical
one before passing to search_awards() awarding_agency parameter.
params: search_text*, limit |
autocomplete_funding_agency | Find funding agency names by partial match (companion to awarding agency). params: search_text*, limit |
autocomplete_cfda | Find CFDA (Catalog of Federal Domestic Assistance) program numbers
by partial title or program number. CFDA codes are used in grants. params: search_text*, limit |
autocomplete_glossary | Find glossary terms (acquisition + spending vocabulary) by partial match. params: search_text*, limit |
get_award_types_reference | Return the full mapping of award type codes to descriptions.
Returns the canonical reference: contracts (A=BPA Call, B=Purchase Order,
C=Delivery Order, D=Definitive Contract), IDVs, grants, loans, etc.
Authoritative source if you're unsure what a code letter means.
params: none |
get_def_codes_reference | Return all Disaster Emergency Fund (DEFC) codes with public laws.
DEFCs are used to filter awards funded by specific supplemental
appropriations (COVID-19, IIJA, IRA, etc.).
params: none |
get_glossary | Get the full USASpending glossary of acquisition + spending terms. params: page, limit |
get_submission_periods | List the reporting calendar and submission/certification deadlines.
Returns available fiscal reporting periods and their scheduled start,
due, certification and reveal dates. These are global calendar periods,
not records of when individual agencies actually submitted or certified
data. A listed period does not establish complete agency data coverage.
params: none |
list_federal_accounts | List Treasury federal accounts (TAS) with budgetary resources.
keyword filters by account name or AID. fiscal_year controls the reported
budgetary-resource values, not which account rows are included. When
omitted, the source uses its latest available fiscal year, which may
differ from the current fiscal year; check the returned fy value.
sort is a dict like {'field':'budgetar params: keyword, fiscal_year, sort, page, limit |
get_federal_account_detail | Get an individual federal account's metadata + budgetary resources. params: account_code* |
get_federal_account_object_classes | Get the object class breakdown of obligations for a federal account.
IMPORTANT: the returned obligations are CUMULATIVE across all reported
fiscal years (FY2017 onward, the DATA Act window), not a single year.
They are NOT comparable to get_federal_account_fy_snapshot(), which is
single-year (verified live: account 021-0725 summed to $3.38B here vs
$0.42B obligated in its FY20 params: account_code* |
get_federal_account_program_activities | List program activity codes and names associated with a federal account.
The source lists distinct programs across all reported fiscal years; it
has no fiscal-year filter and includes no dollar amounts. fiscal_year is
retained for compatibility, but does not filter this list. The response
explicitly discloses any requested year that was not applied.
Retrieves source pages int params: account_code*, fiscal_year |
get_federal_account_fy_snapshot | Get a single-fiscal-year snapshot of a federal account's resources.
Important: this endpoint takes the numeric `account_id` (e.g. 4595), NOT
the alphanumeric `account_number` (e.g. "027-5183") used by the other
federal-account endpoints. The list_federal_accounts response includes
both fields per record. Pass the integer account_id here.
params: account_id*, fiscal_year |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.