Guides
Reading a verification code from a test
Your suite can fill the signup form. It cannot open an inbox. These are the recipes for the other half.
Each guide is a working file you can paste in, not a tour. All of them run against a disposable inbox created on demand, so there is no account to make, no API key to store and no mail server to run in CI.
The guides
Playwright email verification without an API key
A test-scoped fixture that hands every test its own address and a waitForCode() that blocks until the mail lands. Includes the worker-scoped variant for suites big enough to feel the rate limit.
Cypress OTP testing without a mail server
Two custom commands, createInbox and waitForOtp, both built on cy.request. No cy.task, no MailHog container, no shared Gmail account.
Anything else: the API reference
Four endpoints and a curl example for each. The same flow in bash is six lines, and there is an MCP server if what you are automating is an AI agent rather than a browser.
The shape of it, in any language
Every guide is the same three calls underneath. If your stack is not covered above, this is the whole thing:
# 1. an inbox, no auth required
curl -sX POST https://dev-mail.com/v1/inboxes
# {"address":"...@diyapn.com","token":"...","ttl_seconds":...}
# 2. sign up with that address, however your test does it
# 3. block until the code arrives, already extracted
curl -s -H "Authorization: Bearer $TOKEN" \
"https://dev-mail.com/v1/inboxes/$ADDRESS/code?wait=60"
# {"found":true,"code":"309154","from":"Acme","subject":"Confirm your email"}
Step 3 holds the connection open until the message is stored, up to 60 seconds, so nothing in your test ever sleeps on a guessed timer. Limits are 60 requests per minute and 20 new inboxes per hour, per IP.