Limits

Everything that is capped, in one place. Published rather than discovered — a limit you meet by surprise is a bug in the documentation.

At a glance

  • 1/sec

    API requests, per address

    Polling once a second is the intended pattern.

  • 5days

    Message retention

    From arrival, read or not. Hard limit.

  • 5MB

    Maximum message size

    Refused at SMTP time, so the sender is told.

  • Addresses per domain

    Nothing is created in advance, so nothing is counted.

  • 200

    Messages returned per call

    Default 50. This caps one response, not the mailbox: next pages through the rest, however many there are.

  • 0

    Outbound messages

    There is no sending endpoint. By design.

Rate limit

One request per second, per address. The limit is per mailbox, not per IP, so a shared CI runner polling twenty different mailboxes is not competing with itself.

Over the limit you get 429 with a Retry-After header in whole seconds. There is no daily quota, no monthly quota and no burst credit to manage.

There is a second ceiling, and it is stated here rather than left to be discovered: 1200 requests a minute from one source address. That is exactly the twenty-mailboxes-a-second example above, so ordinary automation never meets it — it exists so a single host cannot walk ten thousand addresses a second.

HTTP/1.1 429 Too Many Requests
Retry-After: 1
Content-Type: application/json

{
  "error":   "rate_limited",
  "message": "one request per second, per address"
}

Back off on Retry-After rather than a fixed sleep. If the limit ever changes, code that reads the header keeps working.

Message size

Messages up to 5 MB, attachments included. That ceiling is enforced by the mail server during the SMTP conversation, which matters: the sending server is told at the moment it tries, and reports a real failure to its user, instead of the message vanishing.

What counts
The whole encoded message — headers, body and every attachment after MIME encoding. Base64 inflates a binary by about a third, so a file of roughly 3.5 MB already fills the ceiling.
What happens over the line
A 552 at SMTP time. The message is never stored and never appears in the mailbox.
Attachments per message
Twenty. The size ceiling is what you meet first in practice — but a message carrying more than twenty parts with filenames keeps the first twenty.

Retention

A message is deleted 5 days after it arrives, whether or not it has been read, and the clock starts at delivery rather than at first read.

Every message carries expires_at, so a client never has to compute that date or track the policy.

It is a hard limit, not a setting: no parameter, plan or account extends it. If something must outlive the window, fetch it and store it on your side.

Addresses and domains

Addresses per domain
Unlimited, and not counted. Since a mailbox is never created, there is no list of them to grow.
Local-part rules
One to 64 characters: letters, digits, dot, dash, underscore and plus. It must start and end with a letter or digit. Anything else is rejected before it reaches the mail server, in the browser and again on the server.
Plus addressing
name+tag@domain is a distinct mailbox here, not an alias of name@domain. That is deliberate — tags are how people separate signups, and folding them together would merge inboxes that were meant to stay apart.
Case
Everything is lower-cased. Name@ and name@ are the same mailbox.
Custom domains
No limit on how many you point here. Each needs its own MX record.

Premium pool quotas

Everything above describes the free service, and it stays free: the public domains and any domain of your own carry no message quota and no address cap, on every plan.

A paid plan adds 92 private .com domains, kept off the disposable-mail blocklists. Only messages arriving on THOSE domains count against a quota: Premium USD 24/month (2,000 premium messages/month, 1 API key, 2 req/s); Pro USD 78/month (15,000 premium messages/month, 5 API keys, 3 req/s); Scale USD 148/month (36,000 premium messages/month, 20 API keys, 5 req/s).

They are read through the same endpoints, with an Authorization: Bearer key. Without one, a premium address answers 402 or 403 — never a mailbox.

Fair use

There is no quota to buy your way past, and no plan that raises these numbers. What there is instead: if a single source makes the service worse for everybody else, it gets stopped.

Bulk polling
Thousands of mailboxes polled every second from one source will be throttled at the edge before it reaches the API.
Mail floods
A sending host that opens an unreasonable number of SMTP connections is parked for ten minutes. Normal senders never come close.
Using us as a relay
Impossible rather than forbidden: the mail server only accepts messages addressed to domains hosted here, so it cannot forward anything anywhere.

None of this is aimed at ordinary automation. Poll once a second, all day, across thousands of mailboxes — that is the intended use, not the edge of it.

Welcome back

Your inboxes and your domains, in one place.