Skip to main content
You never pick a plan from a menu. The plan is stamped onto each workspace at the moment it is created, by which deployment created it: sign up at visceralai.dev and your workspace is born on the hosted free plan; run the self-host stack on your own infrastructure and your workspaces are born self-hosted, with no platform caps.

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: exceeded header, 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:
The response carries your plan, the current month’s accepted event count, how many spans were dropped by the quota or the agent cap, the plan’s caps, and a 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 pointing VISCERAL_BASE_URL at your engine instead of https://api.visceralai.dev.