The free tier
How enforcement works
Enforcement is server-side, on every request, and fail-open: hitting a cap can never break your agent or fail a call. The invariants hold on every plan.- Past the monthly event cap, ingestion still returns 2xx (so OTLP
exporters never retry-spin) and the spans are dropped server-side. The
response carries an
X-Visceral-Quota: exceededheader, and the drop is counted so the dashboard can show it. - The agent cap only blocks new agent ids. Your existing agent keeps flowing untouched; spans from an agent id that would be discovered past the cap are accepted (2xx) and not ingested.
- Retention deletes old events on a schedule; it never touches anything newer than the window.
- Replay disabled means the optimization gate never spends LLM replays
proving rules for your workspace. Candidate optimizations still show up in
your decisions list as
proposed; they activate on plans with replay enabled.
Watching your usage
Usage is visible in the dashboard (the tier chip, the monthly event meter, and banners explaining any drop) and over the API:quota_exceeded flag. See the
endpoint reference.
Self-hosted
The self-host stack runs on your infrastructure: your Postgres, your engine, your provider keys. Workspaces it creates are uncapped by construction (no limits row exists for them), and replay runs with your own provider keys. The only SDK difference is pointingVISCERAL_BASE_URL at your engine instead of
https://api.visceralai.dev.