Tiers, quotas and retention
Every workspace has a plan, and the plan sets four limits: how many emails the workspace receives a month, how long a message is kept, how many pinned patterns it holds and how many authenticators. Nothing is limited or charged per person or per inbox: members and inboxes are unlimited on every plan.
| Plan | Price | Emails per month | Retention | Pinned patterns | Authenticators |
|---|---|---|---|---|---|
| Free | $0 | 100 | 1 day | 2 | 3 |
| Team | $29 per workspace per month | 5,000 | 30 days | Unlimited | Unlimited |
| Business | $79 per workspace per month | 25,000 | 90 days | Unlimited | Unlimited |
A new workspace starts on Free, and an organisation holds one Free workspace. See pricing.
The monthly quota
Section titled “The monthly quota”Every message a workspace receives counts once, however many of its inboxes or addresses one delivery reaches: a message sent to three test addresses of the workspace in one delivery is one message of the quota and of the stats. The count starts again every month on the day the workspace was created.
- On Free, once the month’s 100 messages are in, further mail to the workspace’s inboxes is refused with a
temporary error while the sender is still connected; the sending server may try again later. A
waitfor such a message times out. - On Team and Business, mail beyond the plan’s figure is still received.
A message a test injects counts the same way. Over the quota, a Free workspace’s
injection is refused with 403 quota.exceeded and stores nothing, as port 25 refuses mail
with 452; a paid workspace’s is accepted and counted.
Separately from the plan, a workspace takes at most 300 recipients a minute, counted as the sender offers each address rather than per message, so one message to twenty of its addresses spends twenty; beyond that mail is refused temporarily in the same way. An injected message shares the same minute.
Retention
Section titled “Retention”A message is kept for the plan’s retention after it arrives: one day on Free, 30 days on Team, 90 days on Business. An hourly job deletes older messages together with their stored copies, and deletes inboxes whose expiry has passed. Retention applies to what a workspace stores, not to the things that store it: an inbox without an expiry stays until you delete it, and so does an authenticator, while the rows of its code log go the same way messages do. Tests should not depend on old mail: read what a test needs with wait while the test runs, and delete a run’s inboxes when it ends (tags and the per-run purge).
Pinned patterns
Section titled “Pinned patterns”Free holds two pinned patterns; adding a third is refused with
403 pattern.limit_reached. Team and Business hold any number.
Authenticators
Section titled “Authenticators”Free holds three authenticators; a fourth is refused with
403 authenticator.limit_reached, which names the limit and the tier.
Team and Business hold any number.
An authenticator counts while it exists, so deleting one or letting its expiry pass frees its place at once; a suite that purges its run’s authenticators by tag therefore never runs the number down. A downgrade keeps every existing authenticator serving codes and refuses new ones past the number, as it does for pinned patterns. The code log follows the retention above.
Rate limits
Section titled “Rate limits”The same on every plan: each API key may make 60 wait calls and 600 other calls a minute, with an authenticator’s
create and code requests counting against the wait allowance
(API keys and scopes).