ErrorDX

Billing & tiers

Plans, quotas and subscription management.

Every organization runs on a plan, and the plan's limits are enforced at the API boundary. Usage is metered per calendar month and shown in Settings → Billing.

Plans

PlanProjectsEvents / monthSeatsRetention
Free25,000130 days
Pro10250,000590 days
Team502,000,00025180 days
Enterpriseunlimitedunlimitedunlimitedunlimited

Quotas are enforced at the API boundary:

  • creating projects beyond the plan limit → 403 with code UPGRADE_REQUIRED;
  • invitations beyond the seat count → 403 UPGRADE_REQUIRED;
  • new projects are clamped to the plan's retention window;
  • ingest over the monthly event budget → 429 (Monthly event quota exceeded).

Usage is counted per calendar month in usage_counter and exposed by GET /api/v1/organizations/{slug}/billing.

Managing your subscription

Upgrades, downgrades and invoices live in Settings → Billing in the dashboard. Checkout and the billing portal are served by the auth sidecar at /api/auth/billing/checkout and /api/auth/billing/portal; both are inert unless Stripe is configured for the deployment, in which case the billing tab shows the upgrade options.

Changing a plan directly

Support can move an organization between plans without Stripe, which is also how accounts created before quotas were enforced were placed on the enterprise tier:

UPDATE org_billing SET plan = 'pro', seats = 5 WHERE organization_id = '<org id>';

An organization with no org_billing row is on the free tier.

On this page