10-minute address you can send mail to. No GitHub, no card. Sign up later if you want to keep your inbox + raise the TTL to 24h.
No signup, no billing. Use this address for the next 10 minutes — drop it into a signup form, or feed it to an AI agent and watch the live stream below.
Anonymous mode uses cookie-bound auth — same address works across these three snippets.
// Wait for the OTP and submit it to your signup form const r = await fetch( 'https://api.mailsink.dev/v1/anon/inbox/wait-for-code', { credentials: 'include' } ); const { code } = await r.json(); await page.fill('[name=otp]', code); await page.click('button[type=submit]'); // → Test passes. No IMAP, no fake SMTP, no flaky polling.
Waiting for first poll…
This is what GET /v1/anon/inbox/{id}/messages returns. Full docs →
Your test inbox has expired. Sign up free for 50 inboxes / month, 1-hour TTL, and the MCP server.
The anonymous inbox lives for 10 minutes from creation. When it expires, the address and any captured mail are removed. Sign up free with GitHub to extend to a 1-hour TTL (Free plan, 50 inboxes/month) or 24-hour TTL (Pro plan).
No. Click "Create my test inbox" and you get a working address immediately. The address is bound to a session cookie, so you can poll it via the API or watch the live stream on this page. No GitHub, no card, no email required.
Yes. Every message is scanned for 4-8 digit OTPs and the first signup-style link. Use GET /v1/anon/inbox/wait-for-code for a long-poll that returns when the code arrives, or /wait-for-link for verification URLs. Same pattern works for authed accounts.
Yes. Anonymous mode uses a cookie-bound session so the same address persists across requests in your test or agent loop. For AI agents, the @mailsink/mcp npm package exposes 8 tools via MCP. For test runners, the fetch() snippet on this page works in any JS environment.