A disposable email address, right now

Live address — no signup
connecting… messages appear on their own, no refresh
Waiting for the first message. It will show up here by itself, verification code first.

Messages and the address are deleted after one hour. Nothing is kept beyond that.

Building something? There's an API. Read the documentation →

How it works

  1. Take the address above. It already exists — nothing to create, nothing to confirm.
  2. Paste it into whatever signup form is asking you for an email.
  3. The code shows up here in large type with a copy button. You never have to open or read the message.

For your automated tests

The same service exposes an API. The route that matters is wait: it blocks until the message lands, instead of making you guess at sleep durations in your end-to-end tests.

// Playwright — a whole signup, code included
const { address, id } = await sink.createInbox();
await page.fill('#email', address);
await page.click('#signup');

const { message } = await sink.wait(id);   // unblocks when the mail arrives
await page.fill('#code', message.otp);     // the code is already extracted
Free API key

1,000 calls a month, no card asked. Enough to wire it into your test suite and see if it holds.

Then, when your tests start getting refused: a domain of your own is published nowhere, so it lands on no blocklist — 29 € a month.

What we deliberately don't do

No sending

These inboxes receive, full stop. You cannot reply from a disposable address, and that is on purpose: such a message would not arrive anywhere anyway.

No tracking

Remote images in messages are blocked by default. HTML is rendered in isolation, with no scripts and no access to the page.

No retention

One hour, then erased. No archive, no backup, nothing to come asking us for later.