Okapi

Quotas & usage

Self-host: entitlements

Every organization resolves a single set of effective entitlements — event/log quota per day, seats, projects, retention, ingest rate — as the greater of whatever a license has stamped and whatever it's been separately granted, falling back to the instance's OKAPI_* environment defaults for anything not stamped, and treating an unset quota/seat/project limit as unlimited. On self-host, unless you've licensed a plan that stamps a daily event or log quota, ingest simply isn't quota-limited at all — the only caps in play are your env defaults for retention (OKAPI_EVENT_RETENTION_DAYS, OKAPI_LOG_RETENTION_DAYS) and per-key ingest rate (OKAPI_INGEST_RATE_LIMIT). Self-host plans are seat-limited, not volume-limited — see Self-host vs. cloud.

Cloud: daily-slice quotas

Cloud plans meter events and logs against a daily slice of the monthly band (the monthly number ÷ 30) rather than a hard monthly ceiling. Three organization-level states apply independently to events and to logs:

  • Normal — under the daily quota. Everything is accepted.
  • Overage — over the daily quota but within a soft ceiling (OKAPI_QUOTA_OVERAGE_PERCENT, 150% by default). Everything is still accepted; the day is flagged as an overage day.
  • Dropping — past the soft ceiling. Ingest answers 429 for that category until midnight UTC.

This is deliberate spike protection: one bad deploy costs you a day, never your month. A single incident that blows past your daily budget doesn't touch tomorrow's quota, and up to 150% of a normal day still gets through in full.

If an organization racks up more than a handful of overage days within a trailing 30-day window, that category clamps back down to the plain daily quota (no more 150% grace) until usage settles — a safeguard against sustained overuse rather than genuine one-off spikes.

What a 429 looks like

When ingest drops a category, the response carries the same headers Sentry SDKs already know how to back off from:

  • Retry-After — seconds to wait.
  • X-Sentry-Rate-Limits — names exactly which categories were dropped (error, log_item, or both) and the scope/reason.

If only part of a mixed envelope is over quota (say, logs but not the error in the same batch), you still get a 200 with X-Sentry-Rate-Limits set for just the dropped category — the rest of the envelope is accepted normally.

Usage page

Every organization has a Usage view (organization settings) showing today's accepted counts and quota state for events and logs, so you can see a spike coming before it costs you anything.

Next: Licensing for how self-host entitlements get activated in the first place.