CostLensPublic API Changelog
Public API Changelog
What's changed in /public/v1, newest first. Additive changes ship in place; breaking changes ship as a new version.
Updated September 20261 min read
/public/v1 follows an additive-first policy — see Versioning. This page lists what's shipped, newest first.
Nothing here has broken a working integration
Every entry below is additive (a new endpoint, a new optional field, a new capability) unless explicitly marked Breaking. A breaking change would ship as /public/v2, documented here with its own entry and a deprecation timeline for /public/v1.
September 2026
- Added outbound webhooks: subscribe to
recommendation_approved,recommendation_dismissed,anomaly_acknowledged,fix_applied,fix_failed, andfix_rolled_back, with HMAC-signed deliveries and automatic retry. See Webhooks. - Added official JavaScript/TypeScript (
@aezona/costlens-sdk) and Python (aezona-costlens-sdk) client libraries. See SDKs. - Added a permanent Sandbox mode — a synthetic-data-only demo organization for building against
/public/v1without a real cloud account. See Sandbox mode. - Added the Auto-Fix domain:
GET /autofix,GET /autofix/{id},GET /autofix/{id}/status,POST /autofix/{id}/approve,POST /autofix/{id}/reject,POST /autofix/{id}/rollback(scopefixes:write). - Added the Realized Savings domain:
GET /savings/breakdown,/effectiveness,/audit,/timeline(scopesavings:read). - Added the Cloud Inventory domain:
GET /inventory/resources,/asset,/findings(scopeinventory:read). - Added the Forecast domain:
GET /forecast/{account_id},GET /forecast/by-service(scopeforecast:read). - Added the Aevi Insights domain:
GET /insights,POST /insights/refresh(scopesinsights:read/:write). - Added a dedicated, always-on interactive API reference at
/public/v1/docs, separate from the internal app'sDEBUG-only docs. - Added per-request access logging and a
GET /api-credentials/access-logendpoint for admins to see which keys have called what. - Added rate limiting: a 60-req/60s burst cap and a monthly quota, both reported via
X-RateLimit-*response headers. - Added the Anomalies domain:
GET /anomalies,GET /anomalies/{id},GET /anomalies/{id}/drivers,PATCH /anomalies/{id}/acknowledge(scopesanomalies:read/:write). - Launched
/public/v1with the Recommendations domain:GET /recommendations,GET /recommendations/{id},PATCH /recommendations/{id}/approve,PATCH /recommendations/{id}/dismiss(scopesrecommendations:read/:write) — the first/public/v1endpoints, proving the full auth/scope/rate-limit/audit stack end to end. - Launched self-service API key management in Settings → API Access — create, rotate, and revoke keys without contacting support.