io.github.cyanheads/usaspending-mcp-server
REMOTE · USASPENDING.CASEYJHAND.COM · 2 COMPONENTS · SCANNED AUG 3
Access US federal award, recipient, agency, and spending analytics data from USAspending.gov.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 18 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability64
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4559 tokens (~253/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management21
- Stability check failed: schema churn in the 8 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 1 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · usaspending.caseyjhand.com
claude mcp add --transport http cyanheads-usaspending-mcp-server https://usaspending.caseyjhand.com/mcp
[mcp_servers.cyanheads-usaspending-mcp-server] url = "https://usaspending.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cyanheads-usaspending-mcp-server": {
"type": "remote",
"url": "https://usaspending.caseyjhand.com/mcp",
"enabled": true
}
}
} openclaw mcp add cyanheads-usaspending-mcp-server --url https://usaspending.caseyjhand.com/mcp --transport streamable-http
mcp_servers:
cyanheads-usaspending-mcp-server:
url: "https://usaspending.caseyjhand.com/mcp" {
"mcpServers": {
"cyanheads-usaspending-mcp-server": {
"type": "http",
"url": "https://usaspending.caseyjhand.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 14 to 18.
- 31 Jul 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 +1
- Stability: unverified → fail ▼ security
- Tool “usaspending_autocomplete” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “usaspending_spending_by_category” rewrote its description, which is the text the model reads security
- Tool “usaspending_spending_over_time” rewrote its description, which is the text the model reads security
- Stability: unverified → 0.03 ▲ functional
- Schema quality: excellent → good functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- Server version: 0.4.0 → 0.4.1 functional
- Server version: 0.3.2 → 0.4.0 functional
- Server version: 0.3.0 → 0.3.2 functional
- New tool “usaspending_autocomplete_filters” functional
- “usaspending_spending_by_geography” added an optional parameter “limit” cosmetic
- “usaspending_search_awards” reworded the description of “naics_codes” cosmetic
- “usaspending_search_awards” reworded the description of “agency_name” cosmetic
- “usaspending_search_awards” reworded the description of “last_record_sort_value” cosmetic
- “usaspending_search_awards” reworded the description of “page” cosmetic
- 26 Jul 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://usaspending.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 7 Jul 2026 | 5 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 5aad900eb2055a0b0ea55912ec19680c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC secure
Validation of usaspending.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| usaspending.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://usaspending.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://usaspending.caseyjhand.com/mcp | HTTPS enforced | 301 | https://usaspending.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
usaspending_autocomplete_filters Autocomplete Codes and Names ~303
Look up valid code values for filter fields by searching free-text descriptions. Use the type parameter to select the lookup table: naics (NAICS industry codes), psc (product/service codes), cfda (CFDA/Assistance Listing program numbers), awarding_agency (agency names and IDs), or recipient (recipient names with UEI/DUNS). Call this before filtering awards when you know a description but not the exact code. Returns matching codes and names for use in other tool filters.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum number of results to return (1–500), enforced client-side. The recipient lookup unions three upstream match buckets (name, UEI, DUNS) and can return up to 3x this value, so its results are ca… |
| search_text | string | yes | Free-text search string — use a description, keyword, or partial code to find matches |
| type | string | yes | Lookup table to search: naics (industry codes), psc (product/service codes), cfda (assistance programs), awarding_agency (agency names), recipient (recipient names) |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | — | The limit that was applied. |
| lookup_type | string | yes | Lookup table that was searched |
| query | string | yes | Search text sent to the autocomplete API |
| result_count | number | yes | Number of matching results returned |
| results | array | yes | Matching codes and names |
| search_text | string | yes | Search text used |
| shown | number | — | Number of results returned. |
| total | number | yes | Number of results returned |
| truncated | boolean | — | True when results were capped at the limit. |
| type | string | yes | Lookup table searched |
No examples provided.
usaspending_disaster_spending Disaster and Emergency Spending ~302
Fetch disaster and emergency supplemental spending (COVID-19, hurricanes, infrastructure law, etc.) broken down by agency, CFDA assistance program, recipient, or geography. Use the dimension parameter to select the breakdown axis: overview (top-level totals), agency, cfda, recipient, or geography. Filter by DEF codes (Disaster/Emergency Funding codes) to isolate a specific emergency appropriation. DEF codes appear in usaspending_get_award account_obligations_by_defc and usaspending_get_agency def_codes fields.
| Name | Type | Req | Description |
|---|---|---|---|
| dimension | string | yes | Breakdown axis: overview (top-level totals and DEF code funding), agency (by awarding agency), cfda (by assistance program), recipient (by recipient), geography (by state/county) |
| filters | object | — | Filters — def_codes is required for all non-overview dimensions (agency, cfda, recipient, geography) |
| limit | integer | — | Maximum results per page (1–100). Applies to the agency, cfda, and recipient dimensions; ignored for overview and geography, which are not paginated. |
| page | integer | — | Page number (1-based) |
| spending_type | string | — | Data type for the agency and recipient dimensions: award (award-level obligations and outlays) or total (includes direct non-award spending). Ignored for cfda and overview; the geography dimension is… |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_dimension | string | yes | Breakdown dimension applied |
| cap | number | — | The result-set ceiling the upstream applied. |
| current_page | number | — | Current page (non-overview dimensions) |
| dimension | string | yes | Breakdown dimension returned |
| has_next_page | boolean | — | Whether there are more pages |
| notice | string | — | Caveat explaining a capped total and how to bring the set under the cap. |
| overview | object | — | Top-level overview totals (dimension=overview only) |
| page_metadata | object | — | Pagination metadata (non-overview dimensions) |
| results | array | yes | Breakdown results (empty for overview dimension) |
| shown | number | — | Number of results returned on this page. |
| spending_type | string | yes | Data type returned — award/total for agency, cfda, and recipient; obligation for geography; spending for overview |
| totalCount | number | — | Total items for paginated dimensions (when available) |
| truncated | boolean | — | True when the upstream capped the reachable result set rather than counting it. |
No examples provided.
usaspending_get_agency Get Agency Overview ~252
Fetch an agency's fiscal-year overview including mission, budgetary resources, obligation and outlay totals (for the most recent fiscal year), sub-agency count, and DEF codes for disaster/emergency funding. Also returns a paginated sub-agency breakdown with obligation and transaction counts. Accepts either a 3-digit toptier_code (e.g., 097 for DoD, 012 for Agriculture) or an agency_slug (e.g., department-of-defense) — both appear in usaspending_list_agencies results and award search results.
| Name | Type | Req | Description |
|---|---|---|---|
| agency_slug | string | — | URL-friendly agency slug (e.g., department-of-defense) — from usaspending_list_agencies or award search results. Use either toptier_code or agency_slug, not both. |
| page | integer | — | Sub-agency breakdown page (1-based, 10 per page). Use with sub_agency_page_metadata.has_next to page through the full list. |
| toptier_code | string | — | 3-digit toptier agency code (e.g., 097, 012) — from usaspending_list_agencies. Use either toptier_code or agency_slug, not both. |
| Name | Type | Req | Description |
|---|---|---|---|
| abbreviation | string | — | Agency abbreviation |
| agency_id | number | — | Internal agency ID |
| budgetary_resources_amount | number | — | Total budgetary resources in USD for the fiscal year |
| def_codes | array | — | Disaster/Emergency Funding (DEF) codes applicable to this agency |
| fiscal_year | number | — | Fiscal year the budgetary totals below reflect (most recent available) |
| has_more_sub_agencies | boolean | yes | Whether more sub-agency pages are available |
| mission | string | — | Agency mission statement |
| name | string | — | Agency full name |
| notice | string | — | Guidance when the sub-agency breakdown is truncated — how to page for the rest. Absent when the last page is shown. |
| obligated_amount | number | — | Total amount obligated in USD for the fiscal year |
| outlay_amount | number | — | Total outlays in USD for the fiscal year |
| sub_agencies | array | — | Sub-agency breakdown within this toptier agency (one page) |
| sub_agency_page | number | yes | Current sub-agency page returned |
| sub_agency_page_metadata | object | — | Pagination metadata for the sub-agency breakdown |
| sub_agency_total | number | — | Total sub-agencies across all pages (when available) |
| subtier_agency_count | number | — | Number of sub-agencies within this toptier agency |
| toptier_code | string | — | 3-digit toptier agency code |
| website | string | — | Agency website URL |
No examples provided.
usaspending_get_award Get Award Details ~197
Fetch full details of a federal award by its generated unique award ID. Returns contract or assistance award data including recipient info, agency hierarchy, period of performance, place of performance, funding account linkages (account_obligations_by_defc), parent IDV information, and subaward count. Use generated_internal_id values from usaspending_search_awards as input. Recipient hashes can be passed to usaspending_get_recipient; NAICS codes can be used in usaspending_search_awards filters. For IDV-category awards (category="idv"), use usaspending_get_idv_awards to list the child contracts and task/delivery orders placed under them.
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Generated unique award ID (e.g., CONT_AWD_FA862118F6251_9700_FA862115D6276_9700) — use generated_internal_id from usaspending_search_awards |
| Name | Type | Req | Description |
|---|---|---|---|
| account_obligations_by_defc | array | — | Funding breakdown by Disaster/Emergency Funding (DEF) code — links to disaster appropriations |
| awarding_agency | object | — | Awarding agency hierarchy |
| base_and_all_options_value | number | — | Base and all options value in USD (contracts) |
| category | string | — | Award category (contract, grant, direct_payment, loan, idv, other) |
| cfda | object | — | CFDA program (grants/assistance) |
| date_signed | string | — | Date award was signed (YYYY-MM-DD) |
| description | string | — | Award description |
| fain | string | — | Federal Award Identification Number (for assistance) |
| funding_agency | object | — | Funding agency hierarchy |
| generated_unique_award_id | string | — | Generated unique award ID |
| naics | object | — | NAICS code (contracts) |
| parent_award | object | — | Parent IDV information (contracts only) |
| period_of_performance | object | — | Period of performance dates |
| piid | string | — | Procurement Instrument Identifier (for contracts) |
| place_of_performance | object | — | Place of performance |
| product_or_service_code | object | — | Product or service code (contracts) |
| recipient | object | — | Recipient details |
| subaward_count | number | — | Number of subawards; use with usaspending_get_award_subawards |
| total_obligation | number | — | Total obligation amount in USD |
| total_outlays | number | — | Total outlay amount in USD |
| type | string | — | Award type code |
| type_description | string | — | Human-readable award type |
No examples provided.
usaspending_get_award_federal_accounts Get Award Federal Accounts ~258
List the Treasury federal accounts that funded an award, with the amount obligated from each and the funding agency behind it. This is the award → appropriation link: each row returns federal_account (AGENCY-MAIN format, e.g. 080-0120) to chain into usaspending_get_federal_account for the account budget detail. The award_id must be a generated_unique_award_id — from usaspending_search_awards (generated_internal_id field) or usaspending_get_award. Distinct from usaspending_get_award account_obligations_by_defc, which breaks funding down by Disaster/Emergency Funding code rather than by account. An award_id that does not exist returns an empty list rather than an error.
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Award generated_unique_award_id (e.g., CONT_AWD_GSFC0198106DNAS526555_8000_-NONE-_-NONE-) — use generated_internal_id from usaspending_search_awards or generated_unique_award_id from usaspending_get_… |
| limit | integer | — | Maximum results per page (1–100) |
| page | integer | — | Page number (1-based) |
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Award ID queried |
| current_page | number | yes | Current page returned |
| has_next_page | boolean | yes | Whether there are more pages of funding accounts |
| notice | string | — | Recovery hint when results are empty — the award_id may not exist or may have no account linkage. Absent when results are present. |
| page_metadata | object | yes | Pagination metadata |
| results | array | yes | Federal accounts funding this award |
| totalCount | number | — | Total number of funding accounts across all pages (when available) |
No examples provided.
usaspending_get_award_subawards Get Award Subawards ~162
List subaward contracts or grants under a prime federal award. Reveals the sub-contractor or sub-grantee layer — the organizations that actually perform the work. Each row shows the subaward number, amount, description, action date, and recipient. Check subaward_count on usaspending_get_award first to confirm subawards exist before calling this tool.
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Generated unique award ID (generated_internal_id from usaspending_search_awards) |
| limit | integer | — | Maximum subawards per page (1–100) |
| order | string | — | Sort direction |
| page | integer | — | Page number (1-based) |
| sort | string | — | Sort field for subawards |
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Prime award ID queried |
| current_page | number | yes | Current page returned |
| has_next_page | boolean | yes | Whether there are more pages of subawards |
| notice | string | — | Guidance when no subawards were returned — suggests checking subaward_count from usaspending_get_award first. Absent when results are present. |
| page_metadata | object | yes | Pagination metadata |
| prime_award_id | string | yes | Prime award ID whose subawards were listed |
| results | array | yes | List of subawards under this prime award |
| totalCount | number | — | Total subaward count across all pages (when available) |
No examples provided.
usaspending_get_award_transactions Get Award Transactions ~150
List individual transactions (contract modifications, grant amendments) on a federal award. Each transaction represents a change event — obligation modifications, performance period extensions, scope changes, etc. Use this to trace the spending history and obligation changes over the life of an award. Award IDs come from usaspending_search_awards (generated_internal_id field).
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Generated unique award ID (generated_internal_id from usaspending_search_awards) |
| limit | integer | — | Maximum transactions per page (1–100) |
| order | string | — | Sort direction |
| page | integer | — | Page number (1-based) |
| sort | string | — | Sort field for transactions |
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Award ID queried |
| current_page | number | yes | Current page returned |
| has_next_page | boolean | yes | Whether there are more pages of transactions |
| notice | string | — | Guidance when no transactions were returned — helps confirm the award_id is a valid generated_internal_id. Absent when results are present. |
| page_metadata | object | yes | Pagination metadata |
| queried_award_id | string | yes | Award ID whose transactions were listed |
| results | array | yes | List of transactions for this award |
| totalCount | number | — | Total transaction count across all pages (when available) |
No examples provided.
usaspending_get_federal_account Get Federal Account ~196
Fetch a federal account's budget data: total obligations, gross outlays, and budgetary resources, plus the per-Treasury-Account-Symbol (TAS) component breakdown in children. Federal accounts connect appropriations law to actual agency spending. Account codes come from usaspending_search_federal_accounts (its account_number output field) or usaspending_get_award_federal_accounts (its federal_account field), and are formatted as AGENCY-MAIN (e.g., 097-0100 for DoD Operation and Maintenance). For obligations broken down by program activity or object class, use usaspending_get_federal_account_breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| account_code | string | yes | Federal account code in AGENCY-MAIN format (e.g., 097-0100). Returned as account_number by usaspending_search_federal_accounts and as federal_account by usaspending_get_award_federal_accounts. |
| Name | Type | Req | Description |
|---|---|---|---|
| account_title | string | — | Full account title |
| agency_identifier | string | — | Agency identifier code |
| bureau_name | string | — | Bureau name within the agency |
| children | array | — | Treasury Account Symbol (TAS) components that make up this federal account, each with its own obligated, outlay, and budgetary-resource amounts. Omitted when the upstream returns none. |
| federal_account_code | string | — | Federal account code |
| fiscal_year | number | — | Fiscal year of the financial data |
| main_account_code | string | — | Main account code |
| parent_agency_name | string | — | Managing parent agency name |
| total_budgetary_resources | number | — | Total budgetary resources in USD |
| total_gross_outlay_amount | number | — | Total gross outlay amount in USD |
| total_obligated_amount | number | — | Total obligated amount in USD |
No examples provided.
usaspending_get_federal_account_breakdown Get Federal Account Breakdown ~249
Fetch a federal account's obligations broken down by program activity (what the money funds) or object class (what it buys — personnel, supplies, contracts). Use the dimension parameter to select the axis. Account codes are AGENCY-MAIN format and come from usaspending_search_federal_accounts (its account_number output field), usaspending_get_award_federal_accounts (its federal_account field), or usaspending_get_federal_account. Paginated with an honest total count. For the account's own metadata and top-level totals, use usaspending_get_federal_account.
| Name | Type | Req | Description |
|---|---|---|---|
| account_code | string | yes | Federal account code in AGENCY-MAIN format (e.g., 097-0100). Returned as account_number by usaspending_search_federal_accounts and as federal_account by usaspending_get_award_federal_accounts. |
| dimension | string | yes | Breakdown axis: program_activity (obligations by the program the funds support) or object_class (obligations by the category of goods/services purchased) |
| limit | integer | — | Maximum results per page (1–100) |
| page | integer | — | Page number (1-based) |
| Name | Type | Req | Description |
|---|---|---|---|
| account_code | string | yes | Federal account code queried |
| applied_dimension | string | yes | Breakdown dimension applied |
| current_page | number | yes | Current page returned |
| dimension | string | yes | Breakdown dimension returned |
| has_next_page | boolean | yes | Whether there are more pages of breakdown rows |
| notice | string | — | Recovery hint when results are empty — the account code may not exist or may have no obligations on this axis. Absent when results are present. |
| page_metadata | object | yes | Pagination metadata |
| results | array | yes | Breakdown rows for the requested dimension |
| totalCount | number | — | Total number of breakdown rows across all pages (when available) |
No examples provided.
usaspending_get_idv_awards Get IDV Child Awards ~279
List child contracts and task/delivery orders placed under an IDV (Indefinite Delivery Vehicle) award. Each row includes the generated_unique_award_id to chain into usaspending_get_award for full detail. The award_id must be the generated_unique_award_id of the parent IDV — obtainable from usaspending_search_awards (generated_internal_id field) or from usaspending_get_award. IDV category awards returned by usaspending_get_award have child orders accessible via this tool.
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Parent IDV generated_unique_award_id (e.g., CONT_IDV_NNK14MA74C_8000) — use generated_internal_id from usaspending_search_awards or generated_unique_award_id from usaspending_get_award |
| limit | integer | — | Maximum results per page (1–100) |
| order | string | — | Sort direction |
| page | integer | — | Page number (1-based) |
| sort | string | — | Field to sort child awards by (e.g., obligated_amount, period_of_performance_start_date) |
| type | string | — | Type of child awards to list: child_awards = task/delivery orders, child_idvs = sub-IDVs, grandchild_awards = orders under sub-IDVs |
| Name | Type | Req | Description |
|---|---|---|---|
| award_id | string | yes | Parent IDV award ID queried |
| cap | number | — | The per-page limit that was applied. |
| current_page | number | yes | Current page returned |
| has_next_page | boolean | yes | Whether more pages of child awards may remain — set on a full page even when the upstream flag reports none. |
| notice | string | — | Recovery hint when results are empty — the award may have no children of the requested type. Absent when results are present. |
| page_metadata | object | yes | Pagination metadata (no total count available from this endpoint) |
| parent_award_id | string | yes | Parent IDV award ID whose children were listed |
| results | array | yes | Child awards placed under this IDV |
| shown | number | — | Number of child awards returned on this page. |
| truncated | boolean | — | True when this page was full and more child awards may remain beyond it. |
No examples provided.
usaspending_get_recipient Get Recipient Profile ~210
Fetch a recipient's full profile including address, business type codes, parent organization, alternate names, and total transaction and loan amounts. Recipient IDs are UUID hashes with a level suffix (-P parent, -C child, -R standalone) from usaspending_search_recipients or usaspending_get_award. Optionally scope the totals to a specific fiscal year and award type. UEI and DUNS values can be used to cross-reference with SAM.gov and SEC EDGAR.
| Name | Type | Req | Description |
|---|---|---|---|
| award_type | string | — | Award type category to scope award totals |
| fiscal_year | integer | — | Fiscal year to scope award totals (e.g., 2024) |
| recipient_id | string | yes | Recipient hash ID (UUID with level suffix, e.g., b97d19b0-833c-8d8f-3a2c-157d04ea55ef-P) — from usaspending_search_recipients or usaspending_get_award |
| Name | Type | Req | Description |
|---|---|---|---|
| alternate_names | array | — | Alternate business names |
| business_types | array | — | Business type codes |
| duns | string | — | DUNS number (legacy) |
| location | object | — | Recipient address |
| name | string | — | Recipient legal business name |
| parent_name | string | — | Parent organization name |
| parent_uei | string | — | Parent organization UEI |
| recipient_id | string | — | Recipient hash ID |
| recipient_level | string | — | Hierarchy level: P = parent, C = child, R = standalone |
| total_face_value_loan_amount | number | — | Total face value of loans in USD |
| total_face_value_loan_transactions | number | — | Number of face-value loan transactions |
| total_transaction_amount | number | — | Total transaction (award) amount in USD; scoped by fiscal_year/award_type when provided |
| total_transactions | number | — | Total number of award transactions |
| uei | string | — | Unique Entity Identifier (SAM.gov) |
No examples provided.
usaspending_list_agencies List Federal Agencies ~119
List all top-tier federal agencies with toptier codes, agency slugs, budget authority amounts, and obligation totals for the current fiscal year. Use this as the entry point for agency navigation — toptier codes and agency slugs are required inputs for usaspending_get_agency and agency-based filters on spending analysis tools.
| Name | Type | Req | Description |
|---|---|---|---|
| order | string | — | Sort direction: asc or desc |
| sort | string | — | Sort field: agency_name (alphabetical), budget_authority_amount, obligated_amount, or outlay_amount |
| Name | Type | Req | Description |
|---|---|---|---|
| agency_count | number | yes | Total number of top-tier federal agencies returned |
| results | array | yes | List of top-tier federal agencies with budget and obligation data |
| total | number | yes | Total number of agencies returned |
No examples provided.
usaspending_search_awards Search Federal Awards ~740
Search federal awards by keyword, recipient, agency, award type, NAICS code, location, or date range. Returns ranked award summaries including recipient names, amounts, awarding agencies, and generated award IDs for use with usaspending_get_award. Award types: A/B/C/D = contracts, 02/03/04/05 = grants, 06/10 = direct payments, 07/08 = loans, IDV_A/IDV_B/IDV_C/IDV_D/IDV_E = IDVs. Dates must be ISO 8601 (YYYY-MM-DD). Earliest data: 2007-10-01 via search API. DoD contracts have a 90-day publication lag.
| Name | Type | Req | Description |
|---|---|---|---|
| agency_name | string | — | Filter to a specific awarding agency by name (e.g., "Department of Defense"). Use usaspending_autocomplete_filters type=awarding_agency to find exact names. |
| award_type_codes | array | — | Filter by award type codes. All codes must belong to a single group: A/B/C/D (contracts), 02/03/04/05 (grants), 06/10 (direct payments), 07/08 (loans), IDV_A–IDV_E (IDVs). Defaults to contracts. Mixi… |
| filters | object | — | Optional analytics-style filter object mirroring the shape the spending analytics tools accept, for reusing one filter set across tools. When both this object and the equivalent top-level flat filter… |
| keyword | string | — | Full-text search across award descriptions, recipient names, and place names |
| last_record_sort_value | string | — | Keyset-pagination cursor: the last_record_sort_value from a prior response page_metadata. Provide together with last_record_unique_id to fetch the next page past the 50,000-result page-number cap. Th… |
| last_record_unique_id | integer | — | Keyset-pagination cursor: the last_record_unique_id from a prior response page_metadata. Provide together with last_record_sort_value. |
| limit | integer | — | Maximum results per page (1–100) |
| location_filter | object | — | Filter by place of performance location. Uses FIPS codes and 2-letter state abbreviations, not place names — use a geocoding server to resolve names to codes first. |
| naics_codes | array | — | Filter by NAICS industry codes (e.g., ["541512"]). Use usaspending_autocomplete_filters type=naics to look up codes. |
| order | string | — | Sort direction |
| page | integer | — | Page number (1-based). Page-number pagination caps at a 50,000-result offset (page × limit), but the keyset cursor below is only returned while the offset stays under 10,000 — capture the cursor pair… |
| recipient_name | string | — | Filter by recipient name (partial match); maps to this endpoint's recipient_search_text. This endpoint has no recipient_id filter — use usaspending_search_recipients to look up a recipient by name. |
| sort | string | — | Sort field for results |
| time_period | object | — | Filter awards by date range (action date) |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_agency_name | string | — | Awarding agency name filter applied |
| applied_keyword | string | — | Keyword filter applied to this search |
| applied_naics_codes | string | — | NAICS codes filter applied (comma-separated) |
| applied_time_period_end | string | — | End date filter applied (YYYY-MM-DD) |
| applied_time_period_start | string | — | Start date filter applied (YYYY-MM-DD) |
| cap | number | — | Per-page cap (limit) applied to this page. |
| has_next | boolean | yes | Whether more results may remain — set on a full page even when the upstream flag reports none. |
| notice | string | — | Recovery hint when results are empty — echoes applied filters and suggests how to broaden. Absent when results are present. |
| page | number | yes | Current page number returned |
| page_metadata | object | yes | Pagination metadata. This endpoint does not return a total match count; use has_next and the cursor pair to page. |
| results | array | yes | Matching award summaries |
| shown | number | — | Number of awards returned on this page. |
| truncated | boolean | — | True when this page was capped at `limit` and more results may remain (continue via page or the cursor). |
| upstream_messages | array | — | Notices the USAspending API returned with this response — e.g. a supplied filter it ignored because this endpoint does not support it. Every successful response also carries a standing advisory that… |
No examples provided.
usaspending_search_federal_accounts Search Federal Accounts ~200
List and keyword-search federal accounts by agency identifier or title keyword. Returns account numbers, names, managing agencies, and budgetary resources. Use account_number from results as input to usaspending_get_federal_account for full budget detail. Use usaspending_list_agencies to look up agency_identifier codes (3-digit strings, e.g. "097" for DoD).
| Name | Type | Req | Description |
|---|---|---|---|
| agency_identifier | string | — | 3-digit agency identifier code (e.g., "097" for Department of Defense). Use usaspending_list_agencies to look up codes. |
| keyword | string | — | Filter accounts by name or title keyword (e.g., "defense", "transportation") |
| limit | integer | — | Maximum results per page (1–100) |
| page | integer | — | Page number (1-based) |
| sort_direction | string | — | Sort direction |
| sort_field | string | — | Field to sort results by |
| Name | Type | Req | Description |
|---|---|---|---|
| has_next | boolean | yes | Whether there are more pages of results |
| notice | string | — | Recovery hint when results are empty — echoes applied filters and suggests how to broaden. Absent when results are present. |
| page | number | yes | Current page number returned |
| page_metadata | object | yes | Pagination metadata |
| results | array | yes | Matching federal accounts |
| totalCount | number | — | Total number of matching accounts across all pages (when available) |
No examples provided.
usaspending_search_recipients Search Award Recipients ~201
Search for organizations or individuals receiving federal funds by name, UEI (Unique Entity Identifier), or DUNS. Returns recipient hash IDs, UEI/DUNS identifiers, total award amounts, and hierarchy level. Results are paginated — use page to retrieve matches beyond the first page; page_metadata.total reports the full match count. Recipient hash IDs from this tool can be passed to usaspending_get_recipient for full profiles. Recipient level: P = parent organization, C = child entity, R = standalone.
| Name | Type | Req | Description |
|---|---|---|---|
| award_type | string | — | Filter by award type category to scope the total amounts returned |
| keyword | string | yes | Name, UEI, DUNS, or keyword to search for — partial matches are supported |
| limit | integer | — | Maximum results per page (1–100) |
| page | integer | — | Page number (1-based) — request the next page to retrieve matches beyond the first |
| Name | Type | Req | Description |
|---|---|---|---|
| has_next | boolean | yes | Whether there are more pages of results |
| notice | string | — | Recovery hint — how to continue to the next page when more results exist, or how to broaden the search when empty. Absent when the full match set fits on this page. |
| page | number | yes | Current page number returned |
| page_metadata | object | yes | Pagination metadata — page through with the page input to reach later matches |
| recipient_count | number | yes | Number of matching recipients returned on this page |
| results | array | yes | Matching recipients |
| totalCount | number | — | Total matching recipients across all pages |
No examples provided.
usaspending_spending_by_category Spending by Category ~176
Aggregate federal spending grouped by a specific dimension: NAICS industry code, PSC product/service code, awarding agency, funding agency, CFDA assistance program, or recipient. Returns top items with obligation amounts — useful for trend and breakdown analysis. Chain NAICS codes into usaspending_search_awards filters or usaspending_autocomplete_filters lookups.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Breakdown dimension: naics (industry), psc (product/service code), awarding_agency, awarding_subagency, funding_agency, funding_subagency, cfda (assistance programs), recipient_duns, or recipient_par… |
| filters | object | — | Optional filters to scope the aggregation |
| limit | integer | — | Maximum items to return (1–100) |
| page | integer | — | Page number (1-based) |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_agency_name | string | — | Awarding agency name filter applied |
| applied_keywords | string | — | Keyword filters applied (comma-separated) |
| applied_naics_codes | string | — | NAICS code filters applied (comma-separated) |
| applied_time_period_end | string | — | End date filter applied (YYYY-MM-DD) |
| applied_time_period_start | string | — | Start date filter applied (YYYY-MM-DD) |
| category | string | yes | Breakdown dimension used |
| has_next | boolean | yes | Whether there are more pages |
| notice | string | — | Recovery hint when results are empty — suggests how to broaden filters. Absent when results are present. |
| page | number | yes | Current page returned |
| page_metadata | object | yes | Pagination metadata |
| results | array | yes | Top items in this category by obligation amount |
| totalCount | number | — | Total number of items in this category (when available) |
No examples provided.
usaspending_spending_by_geography Spending by Geography ~249
Aggregate federal spending by state, county, or congressional district. Useful for per-capita analysis, regional comparisons, and mapping federal investment patterns. Geographic filters accept FIPS codes and 2-letter state abbreviations — NOT place names. Resolve place names to FIPS codes using a geocoding server (Census or OpenStreetMap) before applying location filters. Chain per-capita results with Census population data for meaningful comparisons.
| Name | Type | Req | Description |
|---|---|---|---|
| filters | object | — | Optional filters to scope the spending aggregation |
| geo_layer | string | yes | Geographic granularity: state (50 states), county (county-level), or district (congressional district) |
| limit | integer | — | Maximum geographic areas to return, ranked by aggregated_amount descending (1–500). The upstream endpoint is not paginated — it returns every matching area in one response — so this caps client-side.… |
| scope | string | yes | Which location to aggregate by: place_of_performance (where work is done) or recipient_location (where the recipient is based) |
| subawards | boolean | — | Include subaward data instead of prime award data |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_agency_name | string | — | Awarding agency name filter applied |
| applied_award_type_default | string | — | Disclosure that no filters were supplied, so award_type_codes defaulted to the complete set. Absent when the caller supplied at least one filter. |
| applied_geo_layer | string | yes | Geographic granularity applied: state, county, or district |
| applied_keywords | string | — | Keyword filters applied (comma-separated) |
| applied_naics_codes | string | — | NAICS code filters applied (comma-separated) |
| applied_scope | string | yes | Location scope applied: place_of_performance or recipient_location |
| applied_time_period_end | string | — | End date filter applied (YYYY-MM-DD) |
| applied_time_period_start | string | — | Start date filter applied (YYYY-MM-DD) |
| area_count | number | yes | Number of geographic areas returned |
| cap | number | — | The limit that was applied. |
| geo_layer | string | yes | Geographic granularity used |
| notice | string | — | Recovery hint when results are empty — suggests how to broaden filters. Absent when results are present. |
| results | array | yes | Spending totals by geographic area |
| scope | string | yes | Location scope used for aggregation |
| shown | number | — | Number of geographic areas returned. |
| total | number | yes | Number of geographic areas returned |
| total_areas_available | number | yes | Number of geographic areas the filters matched, before limit was applied |
| truncated | boolean | — | True when the area list was capped at limit. |
| truncationCeiling | number | — | Obligation amount of the lowest-ranked area shown — an upper bound on omitted ones. |
No examples provided.
usaspending_spending_over_time Spending Over Time ~192
Fetch aggregated federal obligation amounts grouped by fiscal year, fiscal quarter, or fiscal month. All grouping is relative to the US government fiscal year (Oct–Sep), so fiscal month 1 is October, not January. Filter by award type, agency, recipient, keyword, or NAICS code to trace spending trends in a specific area. Returns per-period totals and optional breakdowns by award category (contracts, grants, direct payments, IDVs, loans, other).
| Name | Type | Req | Description |
|---|---|---|---|
| filters | object | — | Filters to scope the time-series aggregation. Defaults to contract awards when omitted. |
| group | string | yes | Time grouping: fiscal_year (annual US govt FY: Oct–Sep), quarter (fiscal quarter), or month (fiscal month — an ordinal within the fiscal year, where 1 = October) |
| subawards | boolean | — | Aggregate subaward data instead of prime award data |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_agency_name | string | — | Awarding agency name filter applied |
| applied_keywords | string | — | Keyword filters applied (comma-separated) |
| applied_naics_codes | string | — | NAICS code filters applied (comma-separated) |
| applied_time_period_end | string | — | End date filter applied (YYYY-MM-DD) |
| applied_time_period_start | string | — | Start date filter applied (YYYY-MM-DD) |
| group | string | yes | Time grouping used |
| notice | string | — | Recovery hint when no periods are returned — suggests broadening filters. Absent when results are present. |
| period_count | number | yes | Number of time periods returned |
| results | array | yes | Time-series of obligation totals |
| time_group | string | yes | Time grouping applied: fiscal_year, quarter, or month |
| total_periods | number | yes | Number of time periods returned |
No examples provided.