// pricing
Every plan captures mail the same two ways and inspects it with the same tools. The tiers differ in capacity — how many inboxes, how much mail, how long it stays — and in catch-all addresses. Open any row for what the feature means in practice. Whichever you pick starts with a 14-day free trial: cancel before it ends and you pay nothing.
| Feature | |||
|---|---|---|---|
| // capacity | |||
| 50 | |||
An inbox is one capture address. Inboxes on your subdomain are addressed as | |||
| 50,000 | |||
Your capture allowance for a calendar month, counted across every inbox in the organization. A message sent to recipients in several inboxes is filed in each of them and counts once per inbox. | |||
| 5,000 | |||
The most recent messages an inbox holds. When a new one would exceed the cap the oldest is evicted, first in, first out, so a test loop left running overnight fills one inbox rather than your whole account. | |||
| 25 MB | |||
The largest single message the listeners accept, attachments included. Anything larger is refused on the wire with a 552, so your app sees the rejection in its own log instead of a message that silently never arrives. | |||
| 30 days | |||
How long a captured message stays before a daily sweep deletes it, along with its attachments and raw source. Long enough to debug a failed CI run, short enough that stale test data does not pile up. You can delete messages or empty an inbox sooner from the dashboard or the API. | |||
| 10 | |||
Seats in the organization, the owner included. Everyone you invite sees every inbox, so QA, developers and support share one capture space instead of forwarding screenshots. | |||
| // ways in | |||
| Included | |||
Point your app at | |||
| Included | |||
Every organization gets | |||
| Included | |||
Point a domain you control — | |||
| Included | |||
| |||
| Included | |||
Send to any address on your subdomain and the inbox is created on first delivery, with no setup step in between — ideal for signup tests that mint a fresh address every run. Without catch-all, mail to an address you have not created yet is refused with “no such mailbox”. Auto-created inboxes still count toward the inbox limit. | |||
| Included | |||
Every message carries all three results, verified when it arrives. A test can assert that staging signs its mail correctly before production ever sends any. | |||
| // inspect | |||
| Included | |||
Messages appear in the dashboard the instant they are parsed, streamed over server-sent events. No refresh button, no polling interval to tune. | |||
| Included | |||
The rendered HTML, the plain-text part, the original | |||
| Included | |||
Links and one-time codes are pulled out of every message as structured data — one click to copy in the dashboard, | |||
| Included | |||
Listed with name, type and size, downloadable individually from the dashboard or the API. Inline images referenced from the HTML render in the preview. | |||
| Included | |||
Search subject, sender and body — a typo away still matches, ranked by relevance with the matching text highlighted — and filter by recipient, sender, tag, unread state or arrival time. | |||
| Included | |||
Rendered email is attacker-controlled HTML and is treated that way: sanitized server-side against a strict allowlist, with remote images blocked and counted, then displayed in a sandboxed iframe on a separate origin that runs no scripts. | |||
| // automate | |||
| Included | |||
Everything a test suite needs lives under | |||
| Included | |||
A typed JavaScript and TypeScript client. | |||
| Included | |||
Creating an inbox is idempotent: the same name returns the same inbox at the same address, and | |||
| Included | |||
Named keys you create and revoke individually, with an optional expiry. A key carries access to the whole organization, so one key serves every inbox a suite touches. | |||
| Included | |||
The API reference is generated from the same contracts the server validates against and served at | |||
| // team | |||
| Included | |||
Owner, admin and member. Owners handle billing; owners and admins manage members, roles and the SMTP credentials; members read every inbox and manage the inboxes they create. | |||
| Included | |||
Invite a teammate by email. The link they receive is the credential, so they join the organization in one click with no separate signup to complete. | |||
| Included | |||
One username and password for the whole organization, shown in the dashboard whenever you need them and rotated by an owner or admin at any time. Every configured mailer on the team uses the same pair. | |||
| Included | |||
Every request is scoped to your organization on the server; no endpoint accepts an organization id from the client, so cross-tenant access is structurally impossible rather than something each handler remembers to check. | |||
| // billing | |||
| Included | |||
Pay month to month, or annually and save 20%. Payments are processed by Stripe. | |||
| Included | |||
Move between tiers or cancel from the dashboard. Your limits update the moment the subscription changes, and a cancelled plan keeps capturing until the end of the period you paid for. | |||
| Included | |||
Captured mail stops here. There is no forwarding and no relay, so a misconfigured staging environment cannot reach a real customer through mailQA on any plan. | |||
// faq
Every plan can be changed from the dashboard, and your limits follow the moment the subscription does. Nothing to migrate.