REST API · Webhooks · CI/CD Ready

Email testing infrastructure for developers.

Create isolated test inboxes, send emails from your test suite, verify via API. No SMTP config. No shared inboxes. Just a clean API.

email.test.ts
// 1. Create an isolated inbox
const inbox = await api.post("/inboxes")
// → { id: "ix_3f9a", address: "[email protected]" }
// 2. Trigger your app
await myApp.register({ email: inbox.address })
// 3. Assert the email arrived
const [msg] = await api.get(`/inboxes/${inbox.id}/messages`)
expect(msg.subject).toBe("Welcome to MyApp!")
Instant inbox creation
Isolated per test
Webhook support

Used by developers at fast-moving teams

100K+
Inboxes Created
5M+
Messages Tested
99.9%
Uptime
<100ms
API Response
Free
To Start

How it works

Four API calls. That's it.

01

Get your API key

Sign up and grab your API key from the dashboard. Takes 30 seconds.

02

Create a test inbox

POST /inboxes to spin up an isolated inbox with a unique email address.

03

Send your test email

Trigger your app to send to that address. Works in CI, local, or staging.

04

Assert via API

Fetch messages, check subject, body, attachments. Assert and move on.

Works with your stack

Drop into your existing test suite. No new framework, no extra config.

// email.test.ts
it('sends welcome email', async () => {
const inbox = await createInbox()
// trigger your app
await myApp.register({ email: inbox.email_address })
// assert — blocks until mail arrives
const [msg] = await waitForMessage(inbox.id)
expect(msg.subject).toBe('Welcome to MyApp!')
})
Full examples in the docsView guides

How Inboxical compares

Webhooks, long-polling wait, Playwright & Cypress SDKs — free to start, no self-hosting required.

FeatureInboxicalMailtrapMailosaurMailHogMailpit
Cloud hosted
REST API
Webhooksunclear
Wait for message
Playwright SDK
Cypress SDK
Free tier50/mo
OTP extraction$80/mo
Message retention1 yearunclearunclearsession500 msg
Self-host optionsoon
Starting price$0$14/mo$9/mofreefree

Simple, transparent pricing

Start free. Scale when your tests do.

MonthlyYearly 2 months free

Free

Free
  • 50 emails / month
  • 1 test inbox
  • 3-day message retention
  • 1,000 API calls / day
  • REST API + SDK access
  • Community support

Starter

$9/mo
  • 1,000 emails / month
  • 5 test inboxes
  • 30-day message retention
  • 10,000 API calls / day
  • Webhooks
  • Email support
Most Popular

Pro

$29/mo
  • 10,000 emails / month
  • 25 test inboxes
  • 90-day message retention
  • 100,000 API calls / day
  • Custom domain
  • Team access (10 seats)
  • Priority support

Business

$79/mo
  • 50,000 emails / month
  • Unlimited test inboxes
  • 1-year message retention
  • Unlimited API calls
  • SSO + SLA
  • Unlimited team seats
  • Slack support

Frequently Asked Questions

A test inbox is an isolated, temporary email address created via the API. Each inbox has a unique address and can receive emails independently. Perfect for parallel test runs.

Create an inbox before your test, pass the address to your app, trigger the email flow, then query the API to assert messages arrived. Works with Jest, Pytest, RSpec, or any test framework.

Free: 3 days. Starter: 30 days. Pro: 90 days. Business: 1 year. You can also delete messages manually via the API.

Yes, on Starter plan and above. Set a webhook URL per inbox and we'll POST to it the moment a message arrives — great for real-time test assertions.

Absolutely. Each inbox is fully isolated. Create one per test case, run thousands in parallel, no interference.

Yes! Official SDKs for Node.js, Playwright, and Cypress are available on npm. The REST API also works with any HTTP client.

Start testing email today.

Free to start. No credit card required. Your first inbox in under a minute.