Catalog / USAspending

USAspending API

usaspending.gov

Read-only live access to USAspending.gov public award search, award details, federal agency budget authority, category spending, and recipient search. Responses are fetched from the USAspending public API at request time.

  • Finance
  • government spending
  • awards
  • federal agencies
  • public data
5 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the USAspending API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search Awards

Optional parameters 6

Optional JSON object merged into USAspending filters.

Optional award keyword search text.

One-based source page number.

Maximum results per page.

Source award result sort field.

Sort direction.

View call pricing
cURL · Search awards
curl --request GET --get 'https://api.agent-data.dev/usaspending-gov/v1/awards/search' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY"

Endpoints

Inputs and response fields for every endpoint in this API.

GETSearch awards/v1/awards/search

Search Awards

Input

filtersOptionalQuery · string | null

Optional JSON object merged into USAspending filters.

Example: {"agencies":[{"toptier_agency__name":"Department of Defense"}]}

keywordsOptionalQuery · string | null

Optional award keyword search text.

Example: health research

pageOptionalQuery · integer, min: 1, max: 10000, default: 1

One-based source page number.

Example: 1

limitOptionalQuery · integer, min: 1, max: 100, default: 3

Maximum results per page.

Example: 3

sortOptionalQuery · string, default: Award Amount

Source award result sort field.

Example: Award Amount

orderOptionalQuery · "asc" | "desc"

Sort direction.

Example: desc

Response

limitinteger
resultsobject[]
results[].award_id?string | null
results[].award_type?string | null
results[].award_amount?number | null
results[].funding_agency?string | null
results[].recipient_name?string | null
results[].awarding_agency?string | null
results[].award_description?string | null
results[].source_internal_id?integer | null
results[].generated_unique_award_idstring
results[].period_of_performance_start_date?string | null
results[].period_of_performance_current_end_date?string | null
messages?string[]
page_metadataobject
page_metadata.next?integer | null
page_metadata.page?integer | null
page_metadata.hasNext?boolean | null
page_metadata.previous?integer | null
page_metadata.hasPrevious?boolean | null
page_metadata.last_record_unique_id?integer | null
page_metadata.last_record_sort_value?string | null
spending_levelstring

Fields marked ? are optional.

GETGet award details/v1/awards/{award_id}

Award Detail

Input

award_idRequiredPath · string

generated_unique_award_id returned by search_awards.

Example: CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-

Response

idinteger
categorystring
recipientobject
description?string | null
funding_agencyobject
awarding_agencyobject
total_obligation?number | null
type_description?string | null
period_of_performanceobject
generated_unique_award_idstring

Fields marked ? are optional.

GETList agencies/v1/agencies

Agencies

Input

sortOptionalQuery · string, default: agency_name

Agency field to sort by.

Example: agency_name

orderOptionalQuery · "asc" | "desc"

Sort direction.

Example: asc

Response

resultsobject[]
results[].active_fqstring
results[].active_fystring
results[].agency_idinteger
results[].agency_namestring
results[].agency_slugstring
results[].abbreviation?string | null
results[].toptier_codestring
results[].budget_authority_amountnumber
results[].percentage_of_total_budget_authoritynumber
results[].current_total_budget_authority_amountnumber

Fields marked ? are optional.

GETSearch spending by category/v1/spending/{category}

Spending Category

Input

categoryRequiredPath · string

USAspending grouping category.

Example: awarding_agency

filtersOptionalQuery · string | null

Optional JSON object merged into USAspending filters.

Example: {"agencies":[{"toptier_agency__name":"Department of Health and Human Services"}]}

pageOptionalQuery · integer, min: 1, max: 10000, default: 1

One-based source page number.

Example: 1

limitOptionalQuery · integer, min: 1, max: 100, default: 3

Maximum results per page.

Example: 3

orderOptionalQuery · "asc" | "desc"

Sort direction used by the source grouping.

Example: desc

geo_layerOptionalQuery · "state" | "county" | "district" | "country"

Geographic layer when category is recipient_location.

Example: state

Response

limitinteger
resultsobject[]
results[].id?integer | string | null
results[].code?string | null
results[].name?string | null
results[].amount?number | null
results[].agency_slug?string | null
results[].total_outlays?number | null
categorystring
messages?string[]
page_metadataobject
page_metadata.next?integer | null
page_metadata.page?integer | null
page_metadata.hasNext?boolean | null
page_metadata.previous?integer | null
page_metadata.hasPrevious?boolean | null
page_metadata.last_record_unique_id?integer | null
page_metadata.last_record_sort_value?string | null
spending_levelstring

Fields marked ? are optional.

GETSearch recipients/v1/recipients/search

Recipients

Input

search_textOptionalQuery · string | null

Optional recipient name search text.

Example: NASA

pageOptionalQuery · integer, min: 1, max: 10000, default: 1

One-based source page number.

Example: 1

limitOptionalQuery · integer, min: 1, max: 100, default: 3

Maximum results per page.

Example: 3

orderOptionalQuery · "asc" | "desc"

Source ordering direction.

Example: desc

Response

limitinteger
resultsobject[]
results[].award_amount?number | null
results[].recipient_uei?string | null
results[].recipient_duns?string | null
results[].recipient_namestring
results[].generated_unique_award_idstring
messages?string[]
page_metadataobject
page_metadata.next?integer | null
page_metadata.page?integer | null
page_metadata.hasNext?boolean | null
page_metadata.previous?integer | null
page_metadata.hasPrevious?boolean | null
page_metadata.last_record_unique_id?integer | null
page_metadata.last_record_sort_value?string | null
spending_levelstring

Fields marked ? are optional.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.