Quotas & Limits

Every plan includes monthly limits on events and errors. When your project approaches or exceeds these limits, the dashboard banner alerts you with a path to raise them.

Plan quotas

Each Emit Vision plan sets monthly limits for:

  • Events per month: Total events captured via captureEvent(), automatic page views, and SDK instrumentation
  • Errors per month: Total errors captured via captureError() or automatic error tracking

Quotas reset on the billing period boundary. Check your plan in Settings → Billing to see your current limits and usage.

What happens at 100% quota

When your project hits 100% usage, new events and errors are rejected with an HTTP 402 quota_exceeded response. The SDK automatically includes error handling and logging — events are dropped, not queued or retried.

The dashboard banner shows:

  • SaaS mode: An "Upgrade plan" link to raise your quota immediately via Stripe
  • Self-hosted mode: A "Raise limits" link to documentation on modifying the quota

Resetting the quota

Monthly quotas reset automatically on your billing period end date. You can see the exact reset date in:

  • SaaS: Settings → Billing shows your current period end
  • Self-hosted: Check the billing.currentPeriodEnd field from the usage API endpoint

Raising limits

SaaS mode

Click the "Upgrade plan" button in the quota banner or navigate to Settings → Billing to change your plan. Stripe processes upgrades immediately.

Self-hosted mode

Two options:

  1. Modify billing_plans table: Update the events_per_month or errors_per_month columns for your plan row
  2. Set environment variables (if using ENV-based config): Override the plan defaults via PLAN_EVENTS_PER_MONTH and PLAN_ERRORS_PER_MONTH

Restart the API and web services after changes.

No unlimited plans

All plans — including developer and enterprise tiers — enforce quotas. If you need a significantly higher limit, contact support to discuss a custom plan.