USAspending /api/v1/ returns 410 Gone, and not every v1 path does

Checked 2026-09-08 · Moved and dead endpoints

https://api.usaspending.gov/api/v1/ endpoints answer HTTP 410 with a JSON body that says the endpoint has been removed. Two different v1 paths gave two different statuses on the same day: /api/v1/awards/ was 410 and /api/v1/awards/autocomplete/ was 404, so a client that only special-cases 410 will misread half of v1 as a typo.

What we saw

/api/v1/awards/ returns 410 with a JSON detail string, not an HTML error page. Source (status and body, 2026-09-08).

410, content-type application/json, {"detail":"Endpoint has been removed. Please refer to https://api.usaspending.gov/docs/endpoints for currently supported endpoints, or https://github.com/fedspendingtransparency/usaspending-api to report an issue."}

/api/v1/references/agency/ also returns 410. Source (status, 2026-09-08).

410

/api/v1/awards/autocomplete/ returns 404, not 410, although it is the same removed API version. Source (status, 2026-09-08).

404

v2 is live on the same host. Source (status, 2026-09-08).

200

The command

curl -sS https://api.usaspending.gov/api/v1/awards/
{"detail":"Endpoint has been removed. Please refer to https://api.usaspending.gov/docs/endpoints for currently supported endpoints, or https://github.com/fedspendingtransparency/usaspending-api to report an issue."}

Checked 2026-09-08.

for p in /api/v1/awards/ /api/v1/references/agency/ /api/v1/awards/autocomplete/ /api/v2/references/toptier_agencies/; do printf '%s ' "$p"; curl -sS -o /dev/null -w '%{http_code}\n' "https://api.usaspending.gov$p"; done
/api/v1/awards/ 410
/api/v1/references/agency/ 410
/api/v1/awards/autocomplete/ 404
/api/v2/references/toptier_agencies/ 200

Checked 2026-09-08.

pathstatusbody
/api/v1/awards/410JSON: "Endpoint has been removed."
/api/v1/references/agency/410JSON: "Endpoint has been removed."
/api/v1/awards/autocomplete/404not the removal message
/api/v2/references/toptier_agencies/200live

Limits

Open question

Whether the 404 on /api/v1/awards/autocomplete/ means that sub-path was retired earlier under a different mechanism, or is just a routing gap.

Plain text