const sms = await mailslurp.waitController.waitForLatestSms({
waitForSingleSmsOptions: {
phoneNumberId: phone.id,
timeout: 30_000,
unreadOnly: true,
},
});
expect(sms.body).toContain('Here is your code');
expect(sms.fromNumber).toEqual('+13252527014');
Real phone numbers for SMS testing and automation.
Receive verification codes and incoming texts on dedicated, non-VoIP mobile numbers. Complete OTP and MFA tests or route SMS into your applications through APIs and webhooks, with every message visible in your dashboard.

Trusted by top companies worldwide
Phone number dashboard
Create phone numbers from the webapp or API
Developers can provision phone numbers in code while admins and QA leads use the MailSlurp app to choose regions, line types, quality presets, tags, and team access for shared phone/SMS workflows.

Give every OTP test its own mobile number
Allocate a dedicated number by environment, region, test worker, or customer journey. MailSlurp keeps the real number, inbound SMS, extracted OTP, and final verification result tied to the same run so parallel tests stay isolated and failures are easier to debug.
Provision, reserve, read, and release phone numbers from code
Control the full phone-number lifecycle in an automated test: provision or assign a number, reserve it for one run, wait for inbound SMS, extract the OTP, inspect message history, and release or retain the number when the workflow completes.
Phone checks are running
0 of 4 phone checks complete
Waiting for SMS verification checks
CI will unblock once the real SMS challenge completes.
CI phone testing
Gate phone-number workflows before they ship
Run allocation, SMS receipt, OTP extraction, webhook, and browser-completion checks in CI so signup, recovery, MFA, and inbound-message releases fail with useful evidence instead of timing noise.
Integrate MailSlurp Seamlessly
Integrate with any framework
Official plugins and SDKs for all major programming languages, frameworks, and test platforms. All functionality available via API or dashboard.

CI/CD Native
MailSlurp fits right into your existing development, testing, and CI/CD workflows. Deploy and iterate with confidence and actionable feedback.
Real mobile number workflows MailSlurp supports
Use dedicated numbers for the product paths where SMS timing, ownership, routing, and cleanup need to be observable.
Dedicated test numbers
Provision numbers for QA, staging, CI workers, or regional journeys without relying on shared phones or unmanaged inboxes.
Open SMS verification APIOTP and phone verification
Capture one-time codes from real SMS messages and assert signup, login, recovery, and MFA outcomes.
Open auth testingInbound SMS APIs
Receive, inspect, search, and route inbound SMS messages through APIs, webhooks, and application workflows.
Number pools and locks
Reserve numbers while a flow is running so parallel test jobs and repeated verification attempts stay isolated.
Regional coverage
Choose numbers for country-specific formatting, sender behavior, market tests, and customer-facing SMS workflows.
Explore UK numbersWebhooks and cleanup
Send inbound SMS events to your systems and keep lifecycle cleanup visible when a run or workflow finishes.
Real mobile numbers for automated OTP tests
Use dedicated, OTP-friendly phone identities instead of shared handsets or unmanaged verification numbers.
Are MailSlurp phone numbers real mobile numbers?
Yes. MailSlurp provisions dedicated, non-VoIP mobile numbers across supported networks and countries. Use them to receive real SMS verification messages, extract OTPs in code, and test signup, login, MFA, and account recovery from end to end. Explore the SMS verification API.
Can I control a real phone number in an automated OTP test?
Yes. Create or assign a MailSlurp phone number, reserve it for the current test, submit it to the application, wait for the inbound SMS, extract the OTP, complete the verification step, and release or retain the number according to your test policy. Run an OTP test with Playwright. Run an OTP test with Cypress.
Do automated tests have to share the same phone number?
No. Allocate numbers by environment, worker, suite, tenant, or customer journey. Number pools, locks, tags, and message history keep parallel runs isolated and make failures easier to trace. Review the SMS verification API workflow.
Can one test cover email and SMS verification together?
Yes. MailSlurp provides programmable inboxes and phone numbers under one API model, so a test can validate email confirmation, SMS fallback, OTP, MFA, and recovery paths in the same suite. Explore programmable email and SMS APIs. Explore authentication testing.
Can I keep a phone number after the OTP test finishes?
Yes. Use short-lived allocation for isolated test runs or retain a dedicated number for stable environments, regional journeys, support workflows, and repeatable product testing. Open the phone and SMS docs.
Phone-number workflows at release scale
Mobile networks
20+
Test SMS workflows against real carrier behavior.
Messages processed
500 million+
Infrastructure for message-driven product journeys.
Developer APIs
SDKs
Create numbers, wait for SMS, and route events from code.


