Skip to main content
Free for solo developers

Stop mocking.
Start simulating.

Private email addresses for testing your app. Create unlimited inboxes, verify emails via API or web dashboard, works with CI/CD or just manual testing.

Get Started
Free tier includes: ✓ Unlimited sandboxes ✓ Unlimited webhooks ✓ Unlimited forwarders ✓ 1 custom domain ✓ No credit card required
Sub-second Latency
Cloud Native
e2e-test.ts — VS Code
import { MailboxesApi } from '@dev-inbox/client-api';

const inbox = await mailboxesApi.createMailbox();
await page.fill('#email', inbox.data.key + '@devinbox.io');
await page.click('#submit');

expect(msg.data.body).toContain("Verify Account");

Complete observability.

Test emails your way. Use the API for automated testing, or just check emails in the dashboard — no code required. Perfect for CI/CD pipelines, manual QA, or solo devs testing their apps.

Dashboard / Inboxes
System Operational

Active Inboxes

Inbox ID / Email
Created
Messages
8f92-ka20-auth-flow 8f92-ka20@devinbox.io
2 mins ago
14
e2e-staging-billing billing-test@devinbox.io
1 hour ago
3
qa-manual-testing qa-manual@customdomain.com
2 days ago
152

Simple to Use.
Powerful When You Need It.

Create a test inbox in seconds. Check emails in the dashboard or automate with our API. Works with any stack — or no stack at all.

Isolated & Thread-Safe

Each createInbox() generates a unique email and SMTP credential set. No cross-contamination.

Zero-Config SMTP

We handle the SMTP infrastructure. You just grab the username and password from the response.

Template Matching

Verify content using Mustache syntax or Regex. Extract magic links and OTPs instantly.

Native SDKs & Integrations:

// npm install @dev-inbox/client-api
import { MailboxesApi, MessagesApi } from '@dev-inbox/client-api';

// 1. Create isolated inbox
const inbox = await mailboxesApi.createMailbox();

// 2. Trigger auth flow with unique email
await page.fill('#email', inbox.data.key + '@devinbox.io');

// 3. Verify OTP instantly via API
const msg = await messagesApi.getLastMessage(inbox.data.key);
# 1. Generate ephemeral SMTP credentials
inbox = client.create_inbox()

# 2. Inject into app & send verification
app.config.smtp = inbox.smtp_credentials
app.send_verification(inbox.email)

# 3. Assert content matches template
msg = inbox.wait_for(subject="Verify")
assert "Welcome" in msg.html
# 1. Create inbox via REST API
curl -X POST https://api.devinbox.io/inboxes

# 2. Response includes unique SMTP creds
{
  "email": "test_8f92@devinbox.io",
  "smtp_user": "user_8f92",
  "smtp_pass": "sec_99a8d..."
}

Mobile Testing?
We've got you covered.

Automate your React Native and Flutter email authentication flows. Generate test accounts on the device, perform actions, and verify emails without ever leaving the test runner.

// npm install @dev-inbox/client-api
import { MailboxesApi, MessagesApi } from '@dev-inbox/client-api';

// Create inbox for mobile testing
const inbox = await mailboxesApi.createMailbox();

// Fill Native Input
await element(by.id('email_input')).typeText(inbox.data.key + '@devinbox.io');

// Wait for email & verify via API
const msg = await messagesApi.getLastMessage(inbox.data.key);
Coming Soon - Flutter SDK is currently in development
// Flutter Integration Test
final inbox = await DevInbox.create();

await tester.enterText(find.byType(TextField), inbox.email);
await tester.tap(find.text('Sign Up'));

// Verify Email Arrival
final email = await inbox.waitForEmail(subject: 'Welcome');
expect(email.body, contains('Verification Code'));

Create Account

Sign up to get started

Verification Sent
Check your inbox

Frequently Asked Questions

Do I need CI/CD or automated tests to use DevInbox?

Not at all! Many developers use DevInbox simply to get a private email address for testing their app manually. Just create an inbox, use the email address in your app, and check incoming emails in our dashboard. The API and automation features are there when you need them, but they're completely optional.

How does DevInbox help with integration testing?

DevInbox provides a REST API that allows you to create disposable email addresses programmatically. You can then trigger your system to send emails to these addresses and verify the content, recipients, and timing through our API. This makes it easy to automate email testing in your CI/CD pipeline.

Can I use DevInbox with Playwright or other testing frameworks?

Absolutely! DevInbox integrates seamlessly with Playwright, Selenium, Cypress, and other testing frameworks. You can generate unique email addresses for each test run, ensuring test isolation and preventing conflicts between parallel test executions.

How long are emails retained in the system?

Email retention varies by plan: Developer (1 hour), Team (24 hours), Business (7 days), and Enterprise (15 days). This ensures you have enough time to verify your tests while keeping storage costs manageable. All emails are automatically purged after the retention period.

Is my email data secure and private?

Yes, absolutely. All emails are encrypted in transit and at rest. We never share your data with third parties. Each inbox is completely isolated, and emails are automatically deleted after the retention period for your plan.

Can I use my own custom domain for email addresses?

Yes! All paid plans include custom domain support. Simply add your domain, configure the required DNS records (MX, SPF, DKIM), and start generating email addresses like test@yourdomain.com. This is perfect for staging environments and realistic testing scenarios.

What's the difference between DevInbox and other email testing services?

DevInbox is built specifically for CI/CD automation with sub-second inbox creation, thread-safe isolation, and comprehensive API access. Unlike traditional email testing tools, we provide real SMTP credentials, webhook support, and are designed for high-scale parallel test execution.

Does DevInbox work with mobile app testing?

Absolutely! DevInbox works great with React Native, Flutter, and native iOS/Android testing frameworks. Generate test email addresses programmatically, trigger authentication flows in your app, then verify email delivery through our API - all without leaving your test environment.

Can I upgrade or downgrade my plan anytime?

Yes, you can upgrade or downgrade your plan at any time. Upgrades take effect immediately with prorated billing. When downgrading, the change takes effect at your next billing cycle, so you keep your current plan's benefits until then. The free Developer plan has no time limits.

Simple, transparent pricing. Generous free tier.

Start free with unlimited sandboxes, webhooks, and forwarders. Upgrade when you need more operations or longer email retention.

Developer

POPULAR FOR SOLO DEVS
Free

Everything you need to test your app

For individual hacking.

Get Started
  • 1,500 operations/mo
  • Unlimited Sandboxes
  • 1hr Email Retention
  • 1 Custom Domain
  • Unlimited Forwarders
  • Unlimited Webhooks
  • API Access
  • Google Auth
  • Community Support

Team

$12 /mo Save 20%
billed annually

For small collaborative teams.

Sign Up
  • 10,000 operations/mo
  • Unlimited Sandboxes
  • 24hr Email Retention
  • 3 Team Users
  • Unlimited Custom Domains
  • Unlimited Forwarders
  • Unlimited Webhooks
  • Email Support
MOST POPULAR

Business

$39 /mo Save 20%
billed annually

Scalable volume for growing businesses.

Get Started
  • 25,000 operations/mo
  • Unlimited Sandboxes
  • 7-Day Email Retention
  • Unlimited Team Users
  • Unlimited Custom Domains
  • Unlimited Forwarders
  • Unlimited Webhooks
  • Email Support

Enterprise

$99 /mo Save 20%
billed annually

Dedicated capacity & support.

Contact Sales
  • 100,000 operations/mo
  • Unlimited Sandboxes
  • 15-Day Retention
  • Unlimited Team Users
  • Unlimited Custom Domains
  • Unlimited Forwarders
  • Unlimited Webhooks
  • SSO Integration
  • Email Support

What counts as an operation?

1) Any email received, forwarded, or webhook triggered is counted as a single operation by the SMTP Server.

2) Any call to the API server (for example the verification of the last message received) counts as a single operation.

*Rate limiting applies to all plans.