MailSlurp platform overview
Documentation navigation
Understand how MailSlurp combines programmable email and SMS, inbox APIs, testing, automation, monitoring, and team controls in one platform.
MailSlurp gives your team real inboxes, phone numbers, event hooks, testing tooling, monitoring, and governance controls in one platform. Use this page to choose the right docs path first, then jump into the workflow closest to your job.
Choose the docs path that matches your job
- Quick start for the shortest hands-on path from API key to first inbox or phone number.
- Features hub if you want to browse the platform by capability instead of by endpoint.
- Guides hub if you know the workflow you want but not the right MailSlurp page yet.
- API reference and SDK libraries if you are implementing directly in code.
- Examples, Postman, Bruno, and Insomnia if you want runnable clients and API collections.
Start by team
Browse the platform by capability
Key docs in each pillar
Messaging
- Inboxes for creating isolated email addresses for apps, tests, and automations.
- Emails for sending, receiving, previewing, and inspecting messages.
- TXT/SMS for real phone numbers and OTP or notification flows.
- Attachments for file upload, download, and processing.
- Custom domains and Plus addresses for production-style address management.
- External mailboxes and IMAP / SMTP for integrating with existing mailbox infrastructure.
Testing and QA
- Testing for integration and end-to-end message workflows.
- Wait for methods for deterministic email and SMS assertions without sleeps.
- Device previews, Email audit, and Email compatibility for release confidence.
- Deliverability tests for pass/fail checks across inbox or phone cohorts.
- Test interface and framework guides such as Playwright and Selenium for concrete test implementations.
- MFA/TOTP devices when authentication flows include one-time codes.
Monitoring
- Monitoring for the overall post-launch monitoring surface.
- Domain Monitor for DNS posture and sender-health drift.
- Campaign Probe for live campaign capture and review.
- Reputation for bounce, complaint, and suppression-aware sender protection.
Automation
- Webhooks for event-driven integrations.
- Routing rules for allow or block logic on inbound traffic.
- Forwarding and Auto reply for operational mailbox workflows.
- Alias proxy for masked address routing.
- AI transformers and AI results for turning messages and attachments into structured data.
Team and governance
- Organizations for shared team accounts.
- Roles and permissions for custom roles and per-user access control.
- Environments for staging and production separation.
- SAML SSO for identity-provider based sign-in.
- Storage for retention and lifecycle expectations.
- Guest portals when external users need controlled access.
Developer tooling
- Authentication for API key setup and safe auth patterns.
- API reference for endpoint groups and request models.
- SDK libraries and language docs such as JavaScript, Python, Java, C#, and Go.
- Pagination for safe list and sync loops.
- Postman, Bruno, and Insomnia for API collection workflows.
- Examples for end-to-end reference implementations.
How MailSlurp fits together
Most teams follow the same flow:
- Provision a fresh inbox, phone number, or mailbox connection.
- Run the workflow that should send or receive a real message.
- Inspect the message synchronously with wait methods or asynchronously with webhooks.
- Add monitoring, access controls, and environment separation as the workflow moves toward production.
Get an SDK running
Start with an SDK setup snippet in your language. The same workflows are also available over the REST API.
Javascript
gen_javascript_setup
C#
gen_csharp_setup
Go
gen_go_setup
Java
gen_java_setup
PHP
gen_php_setup
Python
gen_python_setup
Ruby
gen_ruby_setup
Representative code samples
Examples below use JavaScript because the snippets are shortest there. The same flows exist across the SDKs and direct HTTP API.
Create an inbox
// create an inbox
const inbox = await mailslurp.inboxController.createInboxWithDefaults();
expect(inbox.emailAddress).toMatch(/.+@.+/);
Wait for a real email
// send an email
await mailslurp.inboxController.sendEmailAndConfirm({
inboxId: inbox.id,
sendEmailOptions: {
to: [inbox.emailAddress],
subject: "First email",
}
})
// wait for the first unread email to arrive
const email = await mailslurp.waitController.waitForLatestEmail({
timeout: 120_000,
inboxId: inbox.id,
unreadOnly: true
})
expect(email.subject).toContain('First email')
Push events to your server
const inbox = await mailslurp.createInbox();
const webhook = await mailslurp.webhookController.createWebhook({
inboxId: inbox.id!,
createWebhookOptions: {
eventName: CreateWebhookOptionsEventNameEnum.NEW_EMAIL,
url: testEndpoint.url!!,
},
});
Add SMS coverage
const phone = await mailslurp.phoneController.createPhoneNumber({
createPhoneNumberOptions: {
name: 'Sales inbound',
phoneCountry: CreatePhoneNumberOptionsPhoneCountryEnum.US,
}
})
expect(phone.phoneNumber).toContain('+1')
What to read next
- Building product messaging flows: Inboxes, Emails, Custom domains, and Verification.
- Shipping release checks: Testing, Wait for methods, Device previews, and Deliverability tests.
- Automating downstream actions: Webhooks, Forwarding, Routing rules, and AI transformers.
- Rolling out to teams safely: Organizations, Roles and permissions, Environments, and Storage.