Skip to content

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.

Plans and their limits, per workspace
PlanPriceEmails per monthRetentionPinned patternsAuthenticators
Free$01001 day23
Team$29 per workspace per month5,00030 daysUnlimitedUnlimited
Business$79 per workspace per month25,00090 daysUnlimitedUnlimited

A new workspace starts on Free, and an organisation holds one Free workspace. See pricing.

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 wait for 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.

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).

Free holds two pinned patterns; adding a third is refused with 403 pattern.limit_reached. Team and Business hold any number.

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.

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).