# Usage and limits

> What a workspace's limits count, where to see today's usage, and what happens when a limit is reached.

Web page: https://infrainbox.app/docs/reference/usage-and-limits/

Every workspace has limits. They exist so that one runaway script or one leaked key can't flood a shared instance — not as a tier you buy out of. ****Settings → Workspace** (dashboard screen `/settings/workspace`)** shows the counts against them, and any member may read it.

## What is counted

| Counted | What it means |
|---|---|
| Events today | Events accepted from every source of the workspace, for the current UTC day |
| Notifications sent today | Messages a destination's provider accepted, for the current UTC day. A repeat, an escalation and a recovery each count as one |
| Sources | Sources the workspace has |
| Heartbeat monitors | Monitors the workspace has |
| Destinations | Destinations, not counting the built-in InfraInbox Push one |
| Members | People in the workspace |

The two daily counts cover the UTC day the panel names and start again at midnight UTC, whatever your workspace's own time zone is. They are exact to within a minute: each instance adds its counts up once a minute, so a very fast burst can read a little low for a moment.

## When a limit is reached

| Limit | What happens |
|---|---|
| Events today | Ingest answers HTTP 429 with `Retry-After` until midnight UTC. Nothing is dropped quietly — the sender is told |
| Notifications today, for the workspace or for one destination | The notice is **recorded, not sent**: it appears in **Deliveries** (dashboard screen `/deliveries`) as `skipped` with the reason `quota`, and on the incident's timeline. The incident still opens and still shows in the inbox |
| Sources, monitors, destinations, members | Creating one more answers HTTP 409 `quota_exceeded`, and the dashboard says which limit it was |

> **Note:** A limit reached never deletes anything and never closes an incident. Only outbound notices and new records are held.

## A self-hosted instance

A self-hosted instance has **no limits at all** by default: every one of them is `0`, which means unlimited. An operator who wants them sets `quotas.*` — see [Configuration reference](https://infrainbox.app/docs/self-hosting/configuration.md#workspace-limits) — and can raise or lower one workspace's limits with `infrainbox admin workspaces limits <workspace>`.

## On infrainbox.app

The hosted service sets limits for the beta, generous enough that a homelab never meets them, and adds two rules of its own:

- **Nothing is sent until an owner has confirmed their email address.** You can add sources, rules and destinations, and events arrive and open incidents as usual, but every notice is recorded `skipped` with the reason `unverified` until the address is confirmed. Confirming it lets notices through within a minute.
- **A workspace's first week has a lower daily notification total**, which goes up on its own after that.

## Next

- [How notifications work](https://infrainbox.app/docs/notifications.md#deliveries-sent-or-why-not) — every reason a notice can be skipped.
- [Configuration reference](https://infrainbox.app/docs/self-hosting/configuration.md#workspace-limits) — the `quotas.*` settings, for a self-hosted instance.
