Disposable email,
from your code.
A small, fast JSON API. Create an inbox, receive mail, get verification codes back as plain fields, and stream new messages the instant they land. No account required.
Quickstart
Get a verification code out of a sign-up email in three calls.
Authentication
Most endpoints are open: an inbox is identified by its address, and anyone who knows the address can read it. The exceptions are private inboxes, which only their owner can read, and premium domains, which need a paid plan. To raise your rate limit, send an API key in the X-API-Key header. Get your own key in seconds: create a free account, open it, and press Create key.
Rate limits
| Caller | Sustained | Burst |
|---|---|---|
| Anonymous, per IP | 2 requests / second | 20 |
| Free plan key | 20 requests / second | 100 |
| Relay plan | 60 requests / second | 300 |
| Vault plan | 200 requests / second | 1,000 |
Going over a limit returns 429 with a Retry-After header. The live stream is not rate limited, but each plan limits how many inboxes can be open at once. When the server is busy, free requests wait and may return 503, while paid requests go first. See plans.
IMAP
On a paid plan, create an IMAP login for a private inbox from your account. Connect to mail.<domain> on port 993 (SSL/TLS) or 143 (STARTTLS), using the full address as the username. IMAP is read-only access to INBOX, and mail cannot be sent from it.
Errors
Errors return a JSON body like {"error":"invalid address"} with a matching HTTP status.
| Status | Meaning |
|---|---|
400 | Invalid input: bad address, unknown domain, or a reserved or malformed name. |
401 | The X-API-Key you sent is not valid. |
403 | The address is blocked by the operator. |
404 | Message or domain not found. |
429 | Rate limit exceeded. Wait Retry-After seconds. |
Full example
Create an inbox, then wait for the verification code over the live stream.