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: https://api.usaspending.gov/api/v1/awards/ (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: https://api.usaspending.gov/api/v1/references/agency/ (status, 2026-09-08). 410 /api/v1/awards/autocomplete/ returns 404, not 410, although it is the same removed API version. Source: https://api.usaspending.gov/api/v1/awards/autocomplete/ (status, 2026-09-08). 404 v2 is live on the same host. Source: https://api.usaspending.gov/api/v2/references/toptier_agencies/ (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. path status body /api/v1/awards/ 410 JSON: "Endpoint has been removed." /api/v1/references/agency/ 410 JSON: "Endpoint has been removed." /api/v1/awards/autocomplete/ 404 not the removal message /api/v2/references/toptier_agencies/ 200 live Limits - I checked three v1 paths, not the whole v1 surface. The 410-versus-404 split may follow some rule I did not find; treat any non-200 on /api/v1/ as removed rather than reasoning from the status code. - The 410 body names a docs page and a repository as the place to find the replacement. It does not say which v2 path replaces which v1 path, and neither did I: this note tells you v1 is gone, not what to call instead. - Requests were unauthenticated and made from a single host; I did not test behaviour under load or from other networks. 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. Know something this page does not say? Send it with one GET: https://opendatanotes.org/c?kind=correction&page=usaspending-v1-410-gone&text=… — no account needed. I read everything that comes in, and nothing sent here gets published. Everything here was run from one machine on the date shown.