# Limits, billing, and operations (https://docs.open-e2ee.dev/relay/limits-billing-and-operations.md)



Every production plan contains the same protocol features. Plans differ by capacity, support, service terms, and approved operational controls.

Each project also gets a hosted sandbox environment. It includes 25 test accounts, 25,000 delivery units, 25,000 attachment uploads, and 250 MB of storage each month. It is an environment, not a production plan or paid tier.

| Tier       | Monthly price |  Relay MAU | Delivery units | Attachment uploads |    Storage |
| ---------- | ------------: | ---------: | -------------: | -----------------: | ---------: |
| Free       |            $0 |        100 |        100,000 |             20,000 |       1 GB |
| Starter    |           $99 |      1,000 |        500,000 |            100,000 |      10 GB |
| Growth     |          $499 |      5,000 |      2,500,000 |            500,000 |      50 GB |
| Business   |          $999 |     25,000 |     12,500,000 |          2,500,000 |     250 GB |
| Enterprise |        Custom | Negotiated |     Negotiated |         Negotiated | Negotiated |

One Relay MAU is one canonical account with qualifying authenticated production activity during one UTC calendar month. Multiple devices for one account count once.

Paid overage requires explicit acceptance and a spend limit. A stored card does not enable it.

| Plan     | Each additional MAU | Each million additional delivery units | Each additional GB-month |
| -------- | ------------------: | -------------------------------------: | -----------------------: |
| Starter  |               $0.05 |                                   $200 |                    $1.00 |
| Growth   |               $0.03 |                                   $100 |                    $0.75 |
| Business |               $0.02 |                                    $60 |                    $0.55 |

Free has no paid overage. Attachment uploads have no paid overage on any plan.
Additional MAU does not add other allowances. Starter with 2,000 MAU costs $149 when delivery and storage remain within their allowances.
Storage uses decimal GB and the actual UTC calendar month. One excess GB held for a complete month costs the listed rate.
Relay divides exact excess byte-seconds by the month's seconds and 1,000,000,000. Intervals split at UTC month boundaries.
Compare all meters before an upgrade. A higher plan can still incur overage.
Each stored [Relay delivery receipt](https://docs.open-e2ee.dev/relay/delivery-and-push.md#relay-delivery-receipts-and-e2ee-receipts) is one delivery unit. Turn `relayReceipts` off to stop those units.

## Retention [#retention]

Production ciphertext retention is configurable up to 30 days. The sandbox environment defaults to 24 hours and allows no more than seven days. Reducing retention does not delete ciphertext that a destination device already pulled and decrypted.

Delivery status that Relay records for a sender uses the same retention period as the message.

## Plan and billing authority [#plan-and-billing-authority]

Relay owns exact usage, included allowances, reported spending, spend limits, and delayed plan enforcement. Console handles payment and invoices. Payment processing never decides whether a message is delivered.

Plan and spend enforcement follows reported usage. Reporting delay can permit excess work before new work stops.
Relay preserves receive, pull, acknowledgment, deletion, revocation, usage export, and billing access.
After its approved grace policy, a failed payment stops new work in the same way and keeps the same access.

## Usage alerts [#usage-alerts]

Console sends usage alerts by email to the Organization billing contact. Each alert names the Relay project and the period, and links to the project's Plan view.

* **Included allowance:** at 50, 75, 90, and 100% of the included Relay MAU, delivery units, attachment uploads, or storage.
* **Spend limit:** at 75, 90, and 100% of the spend limit.
* **Enforcement:** when Relay stops new work because an allowance or the spend limit is used, and when Relay lifts that stop.

Each threshold sends one alert per period. A lower figure does not retract an alert, and a new period starts the thresholds again. Select the billing contact on the Members page. Without a billing contact, Console sends no alert email.

## Presence reads [#presence-reads]

One presence read names 1 to 100 accounts. Each device can send 30 presence reads in each 60-second window. Relay refuses a read past the limit with `QUOTA_EXCEEDED`, and the device can send it again later. Read [presence](https://docs.open-e2ee.dev/relay/presence.md) for the project policy and the read results.

## Operating evidence [#operating-evidence]

Invoices use only the exact usage totals of a closed billing period. Relay enforces limits on the live estimate. Analytics and operational logs can report latency, errors, delivery delay, capacity, and cost signals. They cannot authorize work or produce invoice values.

The HTTP performance view shows sampled request counts, server errors, client refusals, and response latency. It refreshes once per minute while the tab is visible. Response latency ends when Relay starts its response; it does not measure device delivery or acknowledgment. A missing sample is unknown, not zero traffic.

The live usage view and reconciled invoices have separate sources. A performance estimate must not replace either one.

The live usage view shows exact totals and a live estimate. Exact totals settle daily. The live estimate adds recent usage reports to the exact daily totals. Usage lines are at 50, 75, 90, and 95% of each allowance. For the spend limit, they are at 75, 90, and 95%. Usage lines are checkpoints for the estimate, not alert thresholds. Above 95%, the estimate updates more often. Between usage lines, the live estimate can be behind actual usage. The estimate cannot pass a usage line before it updates. When a live watch starts, Relay asks for exact usage at once. Some usage can take up to about one minute to show. During the watch, the estimate refreshes each second. A watch runs for 5, 10, or 15 minutes and ends when the last viewer leaves. Each project can start 12 live watches per UTC day.

The public [pricing page](https://open-e2ee.dev/pricing#relay-plans) is the display summary. The product contract and the Relay service terms control the exact operational and legal boundary.
