email infrastructure · built for autonomous agents

The email account your agent signs up with.

Your agent verifies OTPs, follows magic links, and finishes signups, all to do the work you asked. Hand it one API key and it opens real inboxes on demand. No captcha gate, no bot fingerprinting, no automation clauses in our ToS. We queue instead of refusing, and your plan sets the pace.

MCP server included GPT / Claude / LangChain wait_for_otp built in
mail.mailflat.net/x7k2m

Your address

x7k2m3

Message retention

1h 47m

Encryption

end-to-end
research-agent-8f3@mailflat.net
Works with your stack
PlaywrightCypressSeleniumpytestGitHub ActionsGPTClaudeLangChain
01 · Four ways to use it

One product. Four jobs.

The same encrypted infrastructure powers a clean web inbox, a built-for-code API, a tool your AI agents can call directly, and addresses on your own domain. Pick the surface, switch any time.

For everyone

A spare inbox
for everyday life.

For when a website wants your "real" email but doesn't deserve it. Sign in, paste your address wherever you need to. Two hours later every message in it is gone, but the address is still yours.

  • Free to start, no card needed
  • End-to-end encrypted on receipt
  • Messages auto-deleted every 2 hours
  • Spin up extra addresses any time
Open your inbox
x7k2m@mailflat.netcopy
1h 47m left
For developers

An API for
your email tests.

When your test suite needs a different inbox every run. One call to create, one to read. The OTP your app just sent is one line away. No flaky polling, no shared mailbox state.

  • SDKs for every major language
  • Works with any real email service
  • Per-test isolation
  • 2,500 emails / month free
Read the API docs
# 1 · spin up an inbox
inbox = mailflat.create_inbox()
# → signup@x7k2m.mailflat.net
# 2 · grab the OTP
otp = inbox.wait_for_otp()
For AI agents

A tool your
agent can call.

When your agent has to sign up, verify, or fetch an OTP to do its job. Hand it one API key and it opens real inboxes on demand. No captcha gate, no bot fingerprinting, no automation clauses. We queue instead of refusing, and your plan sets the pace.

  • One key: 3 inboxes free, more on every Pro tier
  • Real mailboxes, SPF and DKIM signed
  • Tool spec for GPT, Claude, LangChain
  • Drop-in for any agent framework
Built for agents
# agent registers MailFlat as a tool
tools = [MailFlat(api_key=…)]
# agent decides it needs an email
inbox = mailflat.create()
otp = inbox.wait_for_otp()
For your domain

Inboxes
on your own domain.

When you want inboxes on a domain you control. Verify it once, then spin up addresses on the fly. Addresses stay permanent, messages auto-clean after 30 days. No setup time for new mailboxes.

  • Verify once, then create addresses on demand
  • SPF & DKIM verified delivery
  • Permanent addresses, messages auto-clean in 30 days
  • Bring as many domains as you like
Add your domain
billing@acme.comcopy
acme.com · SPF & DKIM verified
02 · Features

Built once,
useful twice.

The same encrypted, auto-purging infrastructure under both surfaces. Use the web inbox, the API, or both. Your account works the same either way.

End-to-end encrypted

Every email is encrypted the moment it lands, with a key that only your device holds. We can't read your mail, and neither can anyone who'd subpoena us.

everyone

Auto-purge, by design

Every message expires on a timer. 2 hours by default for free accounts, configurable up to 30 days on paid plans. Your address stays put.

everyone

Addresses on demand

Spin up a new address whenever you want, with no waiting and no provisioning step. One account holds all of them, and every address stays yours until you delete it.

everyone

Built for code

Create, list, read, delete inboxes from your code. Drop-in SDKs for every major language: a few lines and you're done.

developers

Real email delivery

Real mailboxes on authenticated domains with SPF, DKIM and DMARC in place, so the mail your tests and agents are waiting for is delivered instead of bounced.

developers

No tracking, no ads

No analytics on inbox content. No ads inside emails. Anonymous-by-default for free users, encrypted sync for paid.

everyone
02.5 · Built for AI agents

An email account
for the agents acting on your behalf.

Your agent signs up for tools, verifies OTPs, clicks magic links, all day, every day. It needs a real, working email. We hand it one. No captcha gate, no bot fingerprinting, and we queue instead of refusing.

One key. Inboxes on demand.

Hand your agent an API key and it spins up addresses as it needs them: newsletter confirmations, free-trial logins, third-party verifications. No provisioning step, no waiting.

No bot detection on our side.

We don't fingerprint your agent. No captcha gate and no "are you a human" challenge. Automation is a supported use case here, not an exception, so there is no automation clause in the ToS. What an agent can do is set by your plan, the same as for any other client.

Works everywhere your agent needs it.

Real mailboxes on real domains with SPF, DKIM and DMARC in place, so the verification mail your agent is waiting for arrives instead of bouncing.

Auto-purge keeps context clean.

Old messages clear themselves every two hours, so your agent's email tool returns recent, relevant mail only, not a 10,000-line wall stuffed into its context window.

No per-request throttling No automation clauses Free tier for hobby agents
research_agent.pyrunning
# 1 · register MailFlat as a tool
tools = [MailFlat(api_key=env("MAILFLAT_KEY"))]
 
# 2 · agent decides it needs to sign up for something
inbox = mailflat.create(label="deep-research")
# → deep-research-8f3@mailflat.net
 
# 3 · agent submits the form using that address
browser.fill("#email", inbox.address)
browser.click("Sign up")
 
# 4 · wait for verification code, parse, continue
otp = inbox.wait_for_otp(timeout=30)
browser.fill("#code", otp)
 
# inbox auto-clears in 2h, no cleanup needed
PythonTypeScriptLangChainVercel AI SDKMCP server
Install

Start from your terminal.

Official clients for the runtimes agents actually use. Same API underneath, same inbox.

npm i @mailflat/sdk
@mailflat/sdkon npmJavaScript and TypeScriptAll SDKs and setup →
03 · How it works

Pick a flow. Same plumbing.

Whether you're clicking through a web UI or curling the API, you're hitting the same encrypted inbox under the hood.

Person flow
1
Open the page

mailflat.net. Your inbox is already waiting.

2
Copy your address

x7k2m@mailflat.net, one tap to clipboard.

3
Paste it anywhere

Newsletter signup, free trial, app download.

4
Let it auto-clear

Two hours later every message is wiped. Your address stays.

Developer flow
1
Grab an API key

Free key, scoped to dev / staging / prod.

2
POST /api/inboxes

One call. Unique subdomain. Ready before your next line.

3
Run your test

Use the address in your signup flow. Emails arrive in real time.

4
Fetch & assert

GET /emails, extract the OTP, assert the outcome.

Agent flow
1
Register as a tool

One agent key, MCP server or SDK. Drop it into GPT, Claude, or LangChain.

2
Agent spins up an inbox

mailflat.create(label="research"). Real address, ready in < 80ms.

3
Sign up, click, verify

Agent fills the form, waits for the OTP, parses the magic link, all in one tool call.

4
Context stays clean

Inbox auto-clears after 2h. No cleanup logic, no 10k-line context pollution.

Domain flow
1
Verify your domain once

Add one TXT record and we confirm SPF & DKIM.

2
Spin up addresses on it

billing@acme.com. Random or named, on the fly.

3
Use them anywhere

Same encrypted inbox under the hood, your branding on top.

4
Temporary or permanent

Auto-clear like the rest, or keep an address forever. Your call.

04 · Privacy

We can't read your mail. By design.

Zero-knowledge isn't a marketing line. It's the architecture. Your inbox key is generated and held only in your browser (or your CI runner). Without it, what's on our disk is encrypted noise. Even subpoenaed, there's nothing to hand over but ciphertext.

mail.mailflat.net/x7k2m
This inbox
x7k2m
1h 47m left
e2e on
Actions
New address
Copy address
Burn now
Filters
signups
codes
newsletters
Contoso Design2s
Verify your email to start designing
Litware Notes14s
Your free trial starts now
Wingtip Games32s
Get 20% off your first order
Relecloud Drive1m
Your download link is ready
Tailspin Forums3m
Confirm your account to keep posting
05 · Custom Domains (BYOD)

Bring your own domain. Keep your identity.

Run inboxes on a domain you own, so the address your customers and your test suites see is yours. Connect the domain in seconds, verify your DNS records, and start receiving mail directly on your domain prefixes or sending DKIM-signed email from your code.

mail.mailflat.net/dashboard?tab=domains
Your Domains
acme.corp
staging-env.io
test-app.dev
Status
3 domains active

acme.corp

✓ Verified

DNS records correctly configured. DKIM signatures are active for all outbound mail sent from this domain.

TypeHostValueStatus
MX@mail.mailflat.net. (Priority: 10)✓ Active
TXT@v=spf1 include:mailflat.net ~all✓ Active
TXTmail._domainkeyv=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w...✓ Active
DNS Provider Instructions
CloudflareHetznerNamecheapGoDaddyAWS Route53Other Providers

Make sure "Proxy status" is set to "DNS only" (grey cloud) for the MX and SPF records to allow direct SMTP mail delivery to MailFlat's servers.

05 · Pricing

One plan that scales with you.

Drag the slider to your monthly email volume (received + sent). The plan that fits rises to the top; Free covers everyday inboxes, Pro grows with you, and we'll talk for anything over 500k.

How many emails per month?
10,000 emails

Volume is total emails per month: received + sent. One plan, every surface: web inbox, agent keys, and test environment share the same allowance.

06 · How we compare

Why not just use something else?

Plenty of disposable-email and email-testing services exist. Here's where MailFlat lines up, and where it doesn't. We named the alternatives on purpose; it's the comparison we'd want to see.

MailFlat
real receive · e2e · agents
Mailtrap
captured in sandbox
Mailosaur
QA-only · enterprise
10minutemail
disposable · burner
Gmail +alias
real mail · no privacy
Real SMTP receipt
Mail actually lands in a real mailbox, not a sandbox.
sandbox only
~often blocked
Inboxes included
How many addresses you can keep permanently.
3 free / unl. paid
~1 per project
Auto-purge by design
Messages clear themselves on a timer, nothing accumulates.
2h → 30d
10 min
End-to-end encrypted
Server holds ciphertext only. We can't read your mail.
API + SDKs for tests
Create, list, read, delete inboxes from code.
AI agent tooling
MCP server + tool spec for GPT / Claude / LangChain.
MCP + tool spec
Verification mail arrives
Real mailboxes on real, authenticated domains, so signup mail is delivered.
·
blocklisted
Custom domain
Use your own brand on the inbox addresses.
free plan too
·
Free tier with real limits
Usable without paying, not a 7-day trial in disguise.
2,500 mails / mo
~100/mo
~14-day trial
yes   ·  ~ partial / limited   ·   no   ·  · not applicable
07 · FAQ

Questions, answered.

Don't see yours? Email hi@mailflat.net and a human replies, usually within a day.

Who is MailFlat for?+
Three kinds of users. People who want a spare inbox for newsletters, free trials, and one-time signups without giving up their real email. Developers who need fresh inboxes inside their tests. And AI agents that have to verify codes or click magic links to do the work you asked them to do. Same account, same encrypted infrastructure. Pick the surface that fits.
Do I need to sign up?+
Yes. A quick sign-in keeps your inbox address tied to you across devices, so you don't lose it when you close the tab. The address is permanent. Only the messages it receives auto-clear every two hours (or longer on paid plans).
Why do messages only last two hours?+
Because the longer data lives, the more there is to lose. Two hours is enough to catch a verification email, a download link, or a one-time code, but short enough that there's no real archive to leak, subpoena, or sell. Your inbox address sticks around; only the contents auto-clear. On any paid plan you can raise the retention window up to 30 days per inbox.
Are my emails really private?+
Yes. Every email is encrypted on receipt with a key your device generates locally. The key is never sent to our servers. We hold ciphertext we can't decrypt; even if we wanted to read it, we couldn't.
How is this different from a disposable email service?+
A disposable address is built to disappear, usually within minutes, and it takes your mail with it. A MailFlat address stays yours until you delete it. Only the messages expire: two hours on Free, up to 30 days on paid plans. That is the difference between a throwaway and an inbox a test suite, a script, or an agent can come back to tomorrow. Every message is also encrypted with a key your device holds, so what we store is ciphertext we cannot read.
Can my AI agent use MailFlat?+
Yes, that's a first-class use case. Hand your agent an API key and it can open inboxes, read verification codes, and follow magic links on its own. Agents are supported by design rather than tolerated as an exception, so there are no automation clauses in the terms and no bot checks standing in the way. How much an agent can do is set by your plan, the same as for any other client.
What do I get on each plan?+
Free: 2,500 emails a month, a 2-hour retention window, and one of our shared domains, enough to catch a code or a confirmation. Pro: one plan where you pick your monthly volume (from 5,000 up to 500,000 emails) and pay only for the tier you need. Every Pro tier includes the same features: retention up to 30 days, saved inbox addresses that scale with your tier, custom inbox names, your own domain (BYOD), API keys, and webhooks. Enterprise: custom monthly volume (1M+), the same 30-day retention, and a contract priced for your team. Talk to sales.
How many emails can I receive on each plan?+
Free is 2,500 emails per month. Pro is a single plan with volume tiers: slide from 5,000 up to 500,000 emails a month and the price scales with it, so you only pay for what you use. Enterprise covers 1M and beyond with a custom contract. There's no per-inbox quota, only the total monthly volume. If you hit the cap we just pause new mail until next cycle (or you bump your tier); we never charge you overage.
Can I use my own domain?+
Yes, on every plan including Free. Point a record at us and we'll accept mail for inboxes like signup@yourcompany.com. Free connects one domain; Pro plans go from 3 up to 250, and Enterprise is unlimited. You can also stay on one of our shared domains if you'd rather not set up DNS.
Is there a free tier for open-source / students?+
Yes. Public OSS projects and verified students get a Pro tier free of charge. Email us with a link to your repo or your .edu address.

Three ways in.
One inbox.

Open the page and start typing, curl the API and start scripting, or hand the key to your agent. Same encrypted backend, same free tier, same zero setup.