OTPWireotpwire.dev
Private testing Docs

Coming soon

Your end-to-end test stops at
“We’ve sent you a code.”

OTPWire gives your test suite a real inbox on a domain you own, over an API — and hands back the verification code already extracted. No IMAP parser. No shared team mailbox. No test.skip().

Not open for sign-up yet. Write to us and we’ll tell you when it is.

Three calls, and the code is in your hands

Create an inbox, drive your sign-up flow at the address it gives you, then ask for the code. The parsing, the HTML-only emails, the “click here to confirm” links that are not the code — that is our problem, not yours.

GET /otp is the endpoint no one else exposes as a first-class thing. It is a few dozen lines of heuristics on our side, and one line that disappears from every customer’s test suite.

# 1 — an inbox on your own domain
POST /v1/inboxes
{ "id": "b7f…", "address": "qa-4f2a@mail.yourapp.com" }

# 2 — your app sends the email. Meanwhile…

# 3 — the code, not the message
GET /v1/inboxes/b7f…/otp
{
  "otp": "448812",
  "links": ["https://yourapp.com/confirm?t=…"]
}

Built for the test that has to pass, every time

01

The code, already parsed

One request returns the one-time code and the confirmation links, cleaned of unsubscribe noise. Or take the raw message if you prefer.

02

Your domain, self-service

Point a subdomain at us, publish one TXT record, and receive. No sales call, no ticket, no waiting.

03

Long-poll, not polling loops

Ask for the next message and wait. No sleep(5) scattered through your suite, no flaky retries.

04

Made for agents too

An MCP server and an n8n node are on the roadmap, so an automation can read a one-time code without anyone writing glue.

Europe, by construction

The API is served from points of presence inside EU member states, and the service is designed to keep inbox contents in the Union. Retention is a property of your plan, and deleting an inbox deletes its messages.

We will publish the specifics — processors, regions, retention — before we take anyone’s money, not after.

What this is not

It is not throwaway mail for signing up to other people’s services. Disposable-mail domains get blocklisted within weeks, and that is fatal for a consumer service — but close to irrelevant when you are testing your own application.

That choice is why we can keep domains healthy, and it is deliberate.

Want to be among the first?

Tell us what you are testing and how it breaks today. We are shaping the first release around real suites, not guesses.