You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The route source of truth is internal/api/router.go. Frontend hooks live in web/src/api/hooks/ and call paths without the /api/v1 prefix because request() adds it.
Conventions
Base prefix:/api/v1
Frontend hook pattern:request('/vehicles'), never request('/api/v1/vehicles')
Analytics routes cover fleet overview, total cost of ownership, sleep efficiency, regen, degradation, speed profile, temperature impact, route efficiency, battery cells, charging heatmaps, and related chart data. Prefer hooks in web/src/api/hooks/useAnalytics.ts and the per-domain hook files instead of constructing URLs in components.
All AI routes are mounted under /api/v1/ai/... and individually wrapped by g.Wrap("<feature-id>", handler). Returning a 404 from a wrapped route means the feature is off (the withAiFeature HOC in the SPA also hides the surface). See Helix AI for the full feature list.
Method
Path
Purpose
POST
/api/v1/ai/chat
Chatbot endpoint (streaming SSE)
POST
/api/v1/ai/<feature-id>/run
One-shot or streaming feature run
GET
/api/v1/ai/usage/today
Per-user daily token / cost aggregate
GET
/api/v1/ai/usage/by-feature?since=24h
Usage broken down by feature ID
GET
/api/v1/ai/provider/health
Active provider + health status
POST
/api/v1/ai/feature/toggle
Per-feature opt-in (off-by-default)
POST
/api/v1/ai/feature/restore
Restore last archived feature toggle set
Admin & data operations
Admin routes back the API logs, API Playground, API keys, Redis signal viewer, backup/restore, exports, data repair, database health, chatbot, changelog, and roadmap pages. Keep them behind authenticated ingress in production.