{"openapi": "3.1.0", "info": {"title": "eCFR analyzer static API", "version": "2026-11-03"}, "paths": {"/api/meta.json": {"get": {"summary": "Snapshot metadata, last refresh, and what the last refresh changed", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/agencies.json": {"get": {"summary": "All agencies with metrics", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/agencies/{slug}.json": {"get": {"summary": "One agency with references, sub-agencies, largest parts and statutes", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/agencies/{slug}/history.json": {"get": {"summary": "Recorded section changes per year since 2017", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/agencies/{slug}/trend.json": {"get": {"summary": "Daily snapshots: words, restrictions, parts, checksum", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/candidates.json": {"get": {"summary": "Top 500 review candidates", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/candidates/{slug}.json": {"get": {"summary": "Top 500 review candidates within one agency", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}, "/api/changes.json": {"get": {"summary": "The 200 most recent part changes (added, modified, removed)", "responses": {"200": {"description": "JSON, same shape as the live API route without .json"}, "404": {"description": "GitHub Pages HTML error page (not JSON)"}}}}}}